【第2弾】LSTMで時系列分析に挑戦【諦めずに毎日コツコツと】
LSTMで時系列データ分析に挑戦中。
少しでもAIの技術力を高めたい一心で取り組んでいるような気がする。
テーマは、「1949年1月から1960年12月 の国際線での乗客数」
■エラー番号①:「ValueError: Only provide the `shape` OR `batch_input_shape` argument to Input, not both at the same time.」
`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)
Bidirectional layer (keras.io)
・8:出力空間の次元?
・return_sequences:最後の出力を返すかどうかを決める変数?
・activation:活性化関数
・Bidirectional:双方向LSTM層、精度向上が図れる
続きは、明日以降に。