再帰型ニューラルネットワークとは



機械学習

分類(classification)

ニューラルネットワーク(NN)

クラスタリング

強化学習

敵対的生成ネットワーク

公開日:2021/8/7

前提知識
 ・ニューラルネットワーク
 ・python


■再帰型ニューラルネットワークとは
再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)とは、時系列で意味のあるデータ対して、現在のデータから将来の値を推測するニューラルネットワークです。

例えば以下のようなバネの減衰振動を示すデータに対して、現在の値から将来のバネの動きを推測することができます。



■原理
以下の様に、これまで取得した過去何サンプルかのデータから将来のデータを予測します。予測した値は次のデータを予測する際に用います。



取得したデータは以下の様にニューラルネットワークに入れ、予測値と正解値を比較し学習させることによって、予測精度を高めることができます。



上記ニューラルネットワークを簡易表記すると以下の様になります。



■python(pytorch)による実装
上記で示したバネの減衰振動を表したデータから将来の動きを予測します。必要なファイル、環境は以下のとおり。

 ・python : 3.9.5 , pytorch:1.8.1
 ・テストデータ、訓練データ:rnn_data.zip
 ・プログラムファイル:rnn.zip

<シミュレーション結果> pytorchのRNNの関数はこちらを使用。
以下のとおり。中間層のノードを128個、活性化関数にreluを用いました。エポック数は20,000回で、精度良く予測することができました。なお本来はx軸で100以降区間を予測したいのですが、 ニューラルネットワークとしては全区間の予測をしております。また一度予測値がずれると、そのずれた予測値を用いて演算するため、先の予測値がどんどんずれていきます。











サブチャンネルあります。⇒ 何かのお役に立てればと

関連記事一覧



機械学習

分類(classification)

ニューラルネットワーク(NN)

クラスタリング

強化学習

敵対的生成ネットワーク