はじめに
製造業におけるデータ分析において,時系列分析は重要かつ頻出課題の1つである。時系列分析の理論とPythonによる実装の両方を学ぶために,最近注目を集めている馬場真哉 著 「Pythonではじめる時系列分析入門」を読むことにした。
本記事は,第6部「機械学習法」の第2章「ニューラルネットワークと深層学習」の読書メモである。
- 本書の紹介ページ
第6部 第2章 ニューラルネットワークと深層学習
本章では,画像認識や自然言語処理においてた大胆る貢献を果たした深層学習(Deep Learning)時系列解析に適用することについて説明している。
深層学習のフレームワークとして,tensorflowやpytorchが用いられるが実装のハードルが高いため,本書ではsktimeとsklearnの組合せ,およびdartsを用いて実装している。
2.1 ニューラルネットワーク
本節では,ニューラルネットワークのうち,フィードフォワードニューラルネットワーク(順伝搬型ニューラルネットワーク,多層パーセプトロン)について説明している。
ポイントとしては以下の通りである。
- 基本的なネットワーク構造は,入力層・隠れ層・出力層から構成される。
- 活性化関数は,モデルを複雑にするために用いられる。1つ前の層の出力の重み付き線形和を入力にして,活性化関数の出力を次の層に渡す。代表的な活性化関数には,ロジスティック関数やReLUなどがある。
2.2 パラメータ推定における工夫
本節では,深層学習におけるパラメータ推定に関する様々な工夫について説明している。代表的な手法として,以下のようなものが挙げられていた。
2.4 深層学習と時系列分析
本節では,深層学習と時系列分析に関する著者の考えが紹介されていた。ポイントとしては以下の通りでる。
- 時系列予測に深層学習を使った事例は古くからあるが,その評価はまちまちである。計算負荷が高くなるにもかかわらず飛躍的な精度改善ができる保証はなく,敬遠されることもある。
- 勾配ブースティング木と比べてハイパーパラメータ(層の深さやユニット数など)が多く扱いづらい。
- 膨大なデータがある場合,深層学習が最適な可能性もあり,予測手法の候補として無視するのはもったいない。
2.5 リカレントニューラルネットワーク(RNN)
本節では,深層学習による時系列予測でしばしば利用されるリカレントニューラルネットワーク(Recurrent Neural Network; RNN)について説明している。
RNNの特徴は,隠れ層の出力を,次の時点の隠れ層の入力とする点である。
2.6 LSTM
本節では,RNNを拡張させたLSTMを導入する。
RNNの問題点は,隠れ層の出力は,離れた時点の出力に影響が及びにくいという点である。
LSTM(Long Short-Term Memory)は,メモリーセル,入力ゲート,出力ゲート,忘却ゲートで構成され,隠れ層の出力を,離れた時点の出力に影響を及ぼす,すなわち長期記憶を実現する。
まとめと感想
深層学習による時系列予測のの難しい点と特徴を理解することができた
深層学習は,画像処理や自然言語処理においては,今やなくてはならない存在となっている。
時系列解析においても強力な手法だと考えていたが,本書においては「現時点では既存の手法の方が,計算負荷などの観点で扱いやすいことが多い」ということが説明されていた。
たしかに,説明性を求める場合は状態空間モデルが有利そうであるし,説明性を求めない場合でも計算量などの観点からSARIMAXが有利であるかもしれない。
Transformerなどの動向を把握したい
一方で,深層学習は研究者も多いので,何年かしたら,時系列解析における主流になるかもしれない。
本書では,RNNとLSTMが扱われていたが,自然言語処理で力を発揮したTransformerなどには触れられていなかったので,特にTransformerなどの深層学習よる時系列解析についても情報を集めていきたい。
本記事を最後まで読んでくださり,どうもありがとうございました。