jiku log

JTCのデータサイエンス中間管理職の学び

「Pythonではじめる時系列分析入門」を読む ~第6部 第2章 ニューラルネットワークと深層学習~

第6部 第2章 ニューラルネットワークと深層学習

本章では,画像認識や自然言語処理においてた大胆る貢献を果たした深層学習(Deep Learning)時系列解析に適用することについて説明している。
深層学習のフレームワークとして,tensorflowpytorchが用いられるが実装のハードルが高いため,本書ではsktimesklearnの組合せ,および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)は,メモリーセル s,入力ゲート In,出力ゲート Out,忘却ゲート Forgetで構成され,隠れ層の出力を,離れた時点の出力に影響を及ぼす,すなわち長期記憶を実現する。

2.8 深層学習による飛行機乗客数予測

本節では飛行機乗客数データを対象に,多層パーセプトロン(MLP),RNN,LSTMによる予測結果を比較している。

多層パーセプトロン(MLP),RNN,LSTMによる予測結果は下図の通りである。

今回の場合,LSTMの精度が最もよかった。

まとめと感想

深層学習による時系列予測のの難しい点と特徴を理解することができた

深層学習は,画像処理や自然言語処理においては,今やなくてはならない存在となっている。
時系列解析においても強力な手法だと考えていたが,本書においては「現時点では既存の手法の方が,計算負荷などの観点で扱いやすいことが多い」ということが説明されていた。

たしかに,説明性を求める場合は状態空間モデルが有利そうであるし,説明性を求めない場合でも計算量などの観点からSARIMAXが有利であるかもしれない。

Transformerなどの動向を把握したい

一方で,深層学習は研究者も多いので,何年かしたら,時系列解析における主流になるかもしれない。
本書では,RNNとLSTMが扱われていたが,自然言語処理で力を発揮したTransformerなどには触れられていなかったので,特にTransformerなどの深層学習よる時系列解析についても情報を集めていきたい。


本記事を最後まで読んでくださり,どうもありがとうございました。

参考サイト

  • 本書のサポートページ

logics-of-blue.com

github.com