楽しんで学習するITエンジニアの備忘録ブログ

~日常生活の中にも楽しみを見出したい~

【第2弾】LSTMで時系列分析に挑戦【諦めずに毎日コツコツと】

LSTMで時系列データ分析に挑戦中。

 

少しでもAIの技術力を高めたい一心で取り組んでいるような気がする。

 

テーマは、「1949年1月から1960年12月 の国際線での乗客数」

 

f:id:takanarukodou2:20210629012031p:plain

 

 

■エラー番号①:「ValueError: Only provide the `shape` OR `batch_input_shape` argument to Input, not both at the same time.」

Input object (keras.io)

 

`shape`を削除した結果、エラーが解消した。

なぜ、サンプルプログラムは動いていたのか不思議なくらいだ。

 

■エラー番号②:「KeyError: 'metrics'」

 

「callbacks=[cb_reset_states, TQDMNotebookCallback(leave_inner=True)]」

 

に、問題があることが判明した。

 

上記において、「TQDMNotebookCallback(leave_inner=True)]」を削除すると、

 

エラーが発生しなくなった。

 

keras-tqdmは、経過を綺麗に表示する機能なので、

 

該当する部分を削除して先に進むことにした。

 

ここも同様に、どうしてサンプルプログラムは動いていたのか?

 

もしかして、keras-tqdmのバージョンなどに依存するのだろうか?

 

■ハイパーパラメータの調整

 

とりあえず、一通り動いたと思うので、

 

ウィンドウサイズ、LSTMの隠れ層の数などの、

 

ハイパーパラメータを調整することになる。

 

ただ、何とか動かしたものの、ほとんど理解できていないので、

 

少しずつ理解を深めていきたいと思う。

Kerasを用いたディープラーニング(LSTM)による株価予測:ディープラーニング習得、次の一歩 - @IT (atmarkit.co.jp)→EarlyStoppingのヒント有り

 

■LSTMへの理解

 

out = Bidirectional(LSTM(8, return_sequences = True, activation='tanh'))(inputs)

LSTM layer (keras.io)

Bidirectional layer (keras.io)

・8:出力空間の次元?

・return_sequences:最後の出力を返すかどうかを決める変数?

・activation:活性化関数

・Bidirectional:双方向LSTM層、精度向上が図れる

 

続きは、明日以降に。