AI研究所 - AI(人工知能)に脅かされないために、AI(人工知能)を作る側の人間になる -

  • お問い合わせ

HOME  >  ニューラルネットワークによる売り上げ予測の仕組みを徹底解説

公開日:2020.10.20 

ニューラルネットワークによる売り上げ予測の仕組みを徹底解説

機械学習

現在の私たちの生活のなかで、AI(人工知能)はさまざまな場面で実用化されています。
その中でも、商品の売り上げ予測や、お店への来店予測、飛行機の乗客数予測など、予測問題につていの技術はすでにたくさん活用されています。
今回は、AIの中の機械学習の1つ、ニューラルネットワークによる売り上げ予測の仕組みを解説していきます。

本記事の内容

売り上げ予測
・POSデータ
ニューラルネットワークによる時系列データの扱い
リカレントニューラルネットワーク(RNN)について
LSTMについて
まとめ

売り上げ予測

まずは売り上げ予測についてです。
売り上げ予測とは、過去から現在までのあらゆるデータを用いて、今後の売り上げを予測することを言います。
これは、企業が経営戦略や営業戦略を考える際に参考になる重要なデータになります。
売り上げ予測は根拠に基づいた計算を行い、客観的な正確さを持つことが求められます。
ここで、売り上げ予測は売り上げ目標とは違うこともポイントの1つです。
売り上げ予測を行う際に使用するデータは、業種や状況によって異なります。
例としては、前年同月や直近数か月の売り上げデータ、商品別の売り上げデータ、天気のデータ、業界や市場の動向、外部環境などがあり多岐にわたります。
また売り上げに関してはPOSデータと言うデータを使用することもあります。

POSデータ

POSとは「Point of Sales」の略で、「売り上げデータ」とも言われます。
POSデータには、
「いつ」
「どの点で」
「どの商品が」
「いくらで」
「いくつ」
売れたのかという情報が入っています。
POSデータは、POSレジやPOSサーバなどのPOSシステムで記録されます。

ニューラルネットワークによる時系列データの扱い

では、これらのことを踏まえて、ニューラルネットワークによる売り上げ予測について見ていきましょう。
売り上げ予測では、過去から現在までのあらゆるデータを用いることは上で説明しました。
つまり、この売り上げ予測は時間軸に対して何かパターンを持っているということになります。
このようなデータを時系列データと呼びます。
時系列データを用いてニューラルネットワークで何か予測しようとしたとき、時系列データをベクトルとして入力すると、時間の順序の情報が抜けてしまいます。
通常のニューラルネットワークでは、「過去の重み」を表現することができなくなるのです。
時系列データを用いて予測を行う場合、時間軸に沿っての入力データと時間情報を反映できる仕組みが必要です。
そこで、ニューラルネットワークで時系列データを扱う場合、これらのことを含んだリカレントニューラルネットワークを使用します。

 

リカレントニューラルネットワーク(RNN)について

リカレントニューラルネットワーク(RNN)では、過去の情報などを考慮して未来の情報を予測することができます。
つまり過去の売り上げデータを用いて、売り上げ予測を行うことができる手法になります。
リカレントニューラルネットワーク(RNN)は1980年代には提唱されていましたが、これまでは学習に時間がかかるということで、あまり利用されてきませんでした。
しかし、GPUの性能向上などがあり、最近ではよく使われる手法となっています。構造としては、通常のニューラルネットワークに対して、過去の隠れ層が追加されたもので、時間情報を持ち、次の入力と合わせて学習に用いられる形になっています。
すなわち、隠れ層が再帰的に接続されていることになります。
これは、現在の入力と過去の入力がそれぞれどのくらい現在の出力に影響するのか学習することができるということです。
また、リカレントニューラルネットワークでも通常のニューラルネットワークと同様に誤差逆伝番法が用いられます。
この誤差は過去に遡って反映するので、Back-Propagation Through Time(BPTT)と呼ばれています。
しかし、時間の方向に深くなったリカレントニューラルネットワークでは、時系列の古いデータ部分で勾配が消失してしまうという勾配消失問題が起きやすくなります。
他にも、時系列データであるが故の問題も発生します。
時系列データを扱う場合、今の時点と将来の時点での重みの関係性に矛盾が生じることがあるのです。
この問題のことを入力重み衝突と出力重み衝突と言います。
これらの問題を解決するために考えられたのが次に説明するLSTMになります。

LSTMについて

LSTMでは、LSTMブロックと呼ばれるものを導入し、時系列情報をネットワーク内にうまく保持することができるようになりました。
隠れ層の構造を変えることで、勾配消失問題と入力・出力重み衝突の問題も同時に解決できるようになりました。
構造は、セルとゲートという2つの機構からできています。
セルは、CEC(Constant Error Carousel)とも呼ばれ、誤差を内部にとどめ、勾配消失を防ぐためのものになります。
また、ゲートは入力ゲート・出力ゲート・忘却ゲートの3つから構成されます。
入力ゲートと出力ゲートはそれぞれ重み衝突のためのゲートになります。
また、忘却ゲートは誤差が過剰にセルに溜まるのを防ぐ役割を果たしています。
しかしながら、このLSTMは、セルとゲートを最適化しなければならないので、計算に時間を多く要しました。
そこで、LSTMを簡略化したGRU(Gated Recurrent Unit)と呼ばれる手法も用いられます。
GRUでは、LSTMの入力ゲート・出力ゲート・忘却ゲートの代わりにリセットゲートと更新ゲートから構成されます。

売り上げ予測の手順

これらの手法を使って、売り上げ予測を行う手順を見ていきましょう。

  1. データの準備
  2. データの整形
  3. モデル作成(リカレントニューラルネットワーク,LSTM、GRUなど)
  4. 検証
  5. モデルと学習結果を保存
  6. 予測に使用
  7. 予測値と実測値の差をみる

このような手順で、学習と売り上げ予測を行っていきます。

まとめ

今回はニューラルネットワークによる売り上げ予測の仕組みを説明しました。
売り上げデータは時系列データとなるので、リカレントニューラルネットワークを用いるのが基本になります。
売り上げ予測は、さまざまな分野において重要な指標となります。
できるだけ正確な売り上げ予測をすることで、商品を作りすぎたり仕入れすぎたりを阻止することが可能になります。
既存の商品だけでなく新商品の開発においてその商品がどのくらい売れるかの売り上げ予測もでき、サービスの向上にもつながります。
また、できるだけ精度の良いモデルを設計して、売り上げ予測に使用していくことも重要になってきます。
しっかりとしたデータを用いて予測することも大切です。
データを用いた回帰分析の記事はこちらにあります。
また、ニューラルネットワークの予測技術の動画はこちらです。

最後までご覧いただきありがとうございました。


参考になったら「いいね!」と「シェア」をお願いします!!

このエントリーをはてなブックマークに追加
AI(人工知能)セミナー開催中