Now Loading...

Now Loading...

はじめに

画像などのデータ点が独立しているものは畳み込みニューラルネットワークなどのニューラルネットワークを用いて分類予測を行うことができます。しかし、現実には前後のデータ点同士に順番が存在するような時系列データがあり、従来のように点を独立なものをして扱うと前後の相互作用を無視することになり、適切に分類予測ができません。このような系列のデータの扱いを得意とするニューラルネットワークについて今回は学習します。後半では、売上予測を題目とした時系列予測の問題に取り組んでみましょう。

用いるデータセットについて

Monthly Retail Reportと呼ばれる団体が提供している文房具売り上げの時系列データ(1992年の1月から2022年の3月まで1か月ごとに集めたデータ)を用います。 このデータセットの目的は、小売店および外食店の売上と小売店が保有する在庫の最新推計値を提供することであり、オープンデータセット化されております。

データセットのソース

データセットの読み込み

今回は、実データを用いますので、データセットを予測に使える形まで形を整えてあげる必要があります。 データセットのダウンロードページからは、時系列データをまとめたcsvファイルを得ることができます。csvファイルを読み込んで、データの変形、Tenforflowに読み込ませるデータ型(Tensor)への変更までのプロセスを以下示します。 csvファイルを読み込むために pandas と呼ばれるライブラリーを使用します。可能ならば、何が行われているか追ってみてください。

まずは、上のデータセットをcsvファイルからPandasのDataFrameと呼ばれる形式で読み込みます。

 

時系列データの年月日と売上値(~百万ドル)が表として出力されました。次にDATEの部分を1992/1/1から何か月経過したかの指標で置き換えたいと思います。まずは、DataFrameからNumpy Arrayへと変換します。そして、横軸に1992/1/1から何ヶ月経過したか示す量を、縦軸に売上値をプロットしてみましょう。

 

時系列予測

今から取り組む課題はニューラルネットワークの中でも時系列データの予測に特化したリカレントニューラルネットワーク(通称RNN)と呼ばれるものです。売上予測等の時系列データの予測タスク等において力を発揮するモデルです。今回はRNNについてあまり深入りせずに概要を少し説明した後、どのように使用できるのかに重きをおいて説明したいと思います。

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

予測する量が過去の値に依存する場合は通常の独立したデータを入力として取るニューラルネットワークでは適切な予測をすることはできません。もう少しわかりやすく説明するために、人が文章を読むという動作について考えてみましょう。文章を読む際に、私たちは過去の出来事の理解をもとに未来の出来事を予測します。文章の各単語を理解する際に前の記憶がリセットされるということはありません。機械学習を用いて時系列のデータの予測をする際にも、データの連続性を考慮する必要があります。過去の情報を保持し、未来の予測に反映させることができるネットワークをリカレントニューラルネットワーク(RNN)と呼びます。

図1. RNNの概念図

数式導入

図1において、xは各グループの入力データであり、過去の情報を複数状態保持しております。hはxに行列Uを作用させ線形変換させた隠れ状態を表します。oはhに行列Wを作用させ線形変換させた量です。これらを数式で表すと以下のようになります。

時刻tにおける隠れ層、出力の計算式

出力までの計算が理解できたら、後は通常のニューラルネットワークと同じで誤差逆伝播法、勾配降下法はRNNにおいても使えます。 次に、RNNにおけるデータの形状について見ていきましょう。

RNNにおけるデータ形状

RNNは過去の情報を一定数保持するネットワークだと説明しました。それに伴い、入力データも予測したい時刻より前の時刻のデータを複数保持します。今回使用するデータセットで具体的に説明したいと思います。まずは、売上値データを50個ずつの窓に分割します。この50個のデータは予測する時刻の値の50個前までのデータで構成されます。そして、データのペアを入力として取り、入力の値の最後の値(50番目)を出力とします。言葉ではよくわからないと思いますので、以下の図を参照してください。

図2. 窓処理の概要図

ではこの説明をもとにデータの分割を行ってみたいと思います。

 

データの形状は(バッチ数、窓数、特徴量次元)で表されます。

RNNモデルを用いた予測

今回はRNNモデルの中でもモデル内に忘却ゲートを含むLSTMと呼ばれるネットワークを使用します。ここではLSTMの説明は省略します。AI用語集の「LSTM」を参考にしてください。

では、今回用いるLSTMネットワークを構成していきます。今回は、LSTMブロックを2つ、バッチ正則化、全結合層を組み合わせたネットワークを用います。

 

RNNブロック2つと線形層1つでネットワークを構成しました。モデルの定義ができたら、最適化手法の選択を行い学習を開始させます。しかし、今回は時間の都合上事前に学習を行った学習済みのモデルをロードして、推論のみ行います。

 

正解データの波形と予測データの波形を比較してみると、yの位置のずれはありますが、全体的な波形は比較的正確にトレースされていることがわかります。その根拠をもう少しわかりやすく可視化してみましょう。

 

上の図はx軸に売上予測値を、y軸に売上の正解値をプロットしたものです。正解と予測が完全に一致していれば、の式で記述されるはずです。しかし、今回学習させたRNNモデルでは、の式で記述されます。2式を比較してみると、傾きはほぼ等価で、切片が異なることがわかります。このことより、全体の波形の傾向は再現できていますが、波形の位置が若干異なることが定量的にわかります。データの傾向を見たい場合は、詳細な値の把握はそこまで重要ではないので、今回のようなモデルでも特に問題ありません。

まとめ

今回は回帰結合型ネットワークを用いて時系列のデータ予測を行いました。各点のデータを独立に扱う通常の全結合ニューラルネットワークと異なり、過去のデータも予測に用いる回帰結合ニューラルネットワークは時系列データの予測を高精度で行うことを可能にしました。今回は売上値の予測問題に取り組みましたが、その他の活用例としては株価の予測などが挙げられます。興味がある人は、自分で勉強してみることをお勧めします。

参考文献

[1] U.S. Census Bureau, Retail Sales: Office Supplies and Stationery Stores [MRTSSM45321USN], retrieved from FRED, Federal Reserve Bank of St. Louis retrieved from https://fred.stlouisfed.org/series/MRTSSM45321USN, December 2, 2022.

\ シェア /

E資格スピードパッケージ

E資格スピードパッケージ2023#2修了者合格率100%達成

zero to one E資格 jdla

zero to oneの「E資格」向け認定プログラム

日本ディープラーニング協会の実施するE資格の受験ならzero to oneの「E資格」向け認定プログラム (税込165,000円) をおすすめします。当講座は、東京大学大学院工学系研究科の松尾豊教授と東北大学大学院情報科学研究科の岡谷貴之教授が監修する実践的なプログラムとなっています。
厚生労働省の教育訓練給付制度対象のE資格認定プログラムの中では最安値※となり、実質負担額49,500円~(支給割合70%の場合)で受講可能です。※2023年弊社調べ zero to one E資格 jdla

人工知能基礎講座を提供中

人工知能の第一人者である東京大学の松尾豊教授が監修した人工知能基礎講座を受講してみませんか? 人工知能の歴史から自然言語処理、機械学習、深層学習といった最先端のトピックやAIに関わる法律問題まで網羅しているので全てのビジネスパーソン・AIの初学者におすすめです。

サンプル動画

人工知能基礎講座はこちら↓ zero to one G検定 人工知能基礎 jdla

AI初学者・ビジネスパーソン向けのG検定対策講座

G検定受験前にトレーニングしたい方向けの問題集「G検定実践トレーニング」も提供中です。 zero to one E資格 jdla