自転車共有データセットを使用して、入力が与えられた 1 日のレンタル数を予測しています。2011 年のデータをトレーニングに使用し、2012 年のデータを検証に使用します。線形回帰モデルの構築に成功しましたが、現在、リカレント ニューラル ネットワークを使用して時系列を予測する方法を見つけようとしています。
データ セットには 10 の属性 (月、営業日かどうか、温度、湿度、風速など) があり、すべて数値ですが、属性は日 (日曜日: 0、月曜日: 1 など) です。
ある日は前の日によって変わる可能性があり、おそらくそうなると思います (そして、10 個の属性すべてが必要になるわけではありません)。そのため、RNN を使用することを考えました。私はあまり知りませんが、いくつかのものとこれも読みました。このような構造を考えています。
10 input neurons
とがa hidden layer
あり1 output neuron
ます。隠れ層に含まれるニューロンの数を決定する方法がわかりません。
t-1
入力層を非表示層に接続するための行列、非表示層を出力層に接続するための行列、および隣接する時間ステップで非表示層を接続するための行列が必要t
だt
と思いますt+1
。合計 3 つの行列です。
あるチュートリアルでは、アクティベーション関数は でしたがsigmoid
、正確にはわかりませんが、シグモイド関数を使用すると、0 と 1 の間の出力しか得られません。アクティベーション関数として何を使用すればよいですか? 私の計画は、これをn
何度も繰り返すことです:
- 各トレーニング データについて:
- 順伝播
- 入力を非表示層に伝播し、それを前の非表示層から現在の非表示層への伝播に追加します。これをアクティベーション関数に渡します。
- 隠れ層を出力に伝播します。
- エラーとその導関数を見つけて、リストに保存します
- 逆伝播
- リストから現在のレイヤーとエラーを見つける
- 現在の隠れ層エラーを見つける
- 体重の更新を保存する
- 重み (行列) を学習率で乗算して更新します。
- 順伝播
これは正しい方法ですか?出力として、0 ~ 1 の数値ではなく、実際の数値が必要です。