2016年10月23日日曜日

多層ニューラルネットワークと時系列予測

先のコードを確認しながら、水位予測結果の(綺麗すぎる)一致の原因を探ってみました。

過去10時間の水位データを使って、1時間先の水位を予測しようという方針になります(時系列は「分」でも「日」でも等間隔であれば、特に気にしなくてよい部分です)。

ただし、若干の変更を加えました。
・データ長をフルで読めるように修正した。
・隠れ層を追加した。
・エポック数を減らした。
・格納されたデータを表示し、確認できるようにした。

ネットの情報や買ってきたPython の本を見ながら1行づつ確認したのですが、おかしなところは見つけられません。うーん、でも、納得できません。
これ、1時間後という設定がまずいのでしょうか?人の感覚でも、データが得られるたびに直近の勾配を延長しとけばある程度の挙動は一致するような気がします。機械学習の結果、近傍の勾配を重視するようなモデルを作り上げたのかもしれません。
ただ、旅客データでは、ここまで一致しなかったことを考えると、データの質の相違に起因する可能性が考えられます。水位の方が単純でノイズが少なく、予測しやすいとか。あー、傍にプロが欲しいですね。

私の知識ではコレ以上は分かりませんが、ま、正しい結果として受け入れるべきなのでしょうね。良いことではありますが。

今後の方針としては、以下の通りでしょう。
1. 24時間先まで予測させてみる。
1時間後という設定がまずいのであれば、さらに先まで予測させて状況を見てみるのが次の手でしょう。出力が24個になるので少し考えないといけないですね。
うまくいけば、WEBベースでデータ収集から結果表示までが可能となりますので、河川の防災情報などに使えそうですね。

2. 雨量から予測させてみる。
複数の入力値から1つの値を予測するといったこのコードは、どちらかというと雨量からの予測に適しているように思えてきました。トレーニング等に使用した水位データを雨量に変更し、水位予測をしてみましょう。これまでの実効雨量計算に対し、多層ニューラルネットワークを利用するといった方針です。これがうまくいけば、施工の影響についても今まで通り、判定できますね。

*******************************************************
参考にしたネットの情報
https://keras.io/ja/optimizers/#adam
https://arxiv.org/pdf/1412.6980v8.pdf ←後で読むこと
https://keras.io/ja/activations/

0 件のコメント:

コメントを投稿