|
前提知識
・ニューラルネットワーク
・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以降区間を予測したいのですが、
ニューラルネットワークとしては全区間の予測をしております。また一度予測値がずれると、そのずれた予測値を用いて演算するため、先の予測値がどんどんずれていきます。

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