2017年9月21日木曜日

RNN(Recurrent Neural Network)による時系列データ予測の分かりやすい例

RNN(Recurrent Neural Network)を使った時系列データの予測(推定)を理解するための良い例題(アプリ)がGoogleから提供されています。とても参考になるように思います。

https://magenta.tensorflow.org/sketch-rnn-demo

We taught this neural net to draw by training it on millions of doodles collected from the Quick, Draw! game. と書かれています。


以下の例は、「人の手」の簡単なイラストです。これを無数に用意して、RNNに学習させているはずです。RNNの学習とは、「P1, P2, P3, ... , Pn-1」まで描いた次はPnへ行きます、という時系列データセットP = {P1, P2, P3, ... , Pn-1, Pn }を十分多く用意します。そして、このようなデータセット群の全てについて、以下を満たすような一つの近似関数Fを求めることです。
 Pn = F(P1, P2, P3, ... , Pn-1)

十分満足できるようなFに到達するには、多くの学習回数が必要となるでしょう。以下は、そのような学習が済んだRNNを使っているはずです。

[Case1] マウスで、親指から人差し指の途中まで描くと、RNNはうまく、残りの部分を描いてくれました。



[Case2] 今度は、小指から薬指の途中まで描くと、これについてもRNNはうまく、残りの部分を描いてくれました。

[Case3 今度はうまく描けません!親指と人差し指あたりを強調するため、何度も行ったり来たりしたためです。そのような点列のデータは、このRNNは学習していなかった!


0 件のコメント:

コメントを投稿