RNNはディープニューラルネットワーク(DNN)であり、各レイヤーは新しい入力を取得できますが、同じパラメーターを持ちます。BPTは、このようなネットワークでのBack Propagationの凝った言葉であり、それ自体はGradient Descentの凝った言葉です。
言うRNN出力すなわちY Tの各ステップとにおける
E R R O 、R T = (Y T - Y T )2y^t
errort=(yt−y^t)2
重みを学習するには、「パラメーターの変更が損失関数にどの程度影響するか」という質問に答える関数の勾配が必要です。そして、次のように指定された方向にパラメーターを移動します。
∇ E R R O Rt= − 2 (yt− y^t)∇ Y^t
つまり、各レイヤーで予測がどれほど優れているかについてフィードバックを得るDNNがあります。パラメーターの変更はDNNのすべてのレイヤー(タイムステップ)を変更するため、すべてのレイヤーが今後の出力に貢献するため、これを考慮する必要があります。
単純な1ニューロン1層ネットワークを使用して、これを半明示的に確認します。
y^t+1=∂∂ay^t+1=∂∂by^t+1=∂∂cy^t+1=⟺∇y^t+1=f(a+bxt+cy^t)f′(a+bxt+cy^t)⋅c⋅∂∂ay^tf′(a+bxt+cy^t)⋅(xt+c⋅∂∂by^t)f′(a+bxt+cy^t)⋅(y^t+c⋅∂∂cy^t)f′(a+bxt+cy^t)⋅⎛⎝⎜⎡⎣⎢0xty^t⎤⎦⎥+c∇y^t⎞⎠⎟
学習率1つのトレーニングステップがある:
[ 〜A 〜B 〜C ] ← [ B C ] + δ (Y T - Y T)∇ Y Tδ
⎡⎣⎢a~b~c~⎤⎦⎥←⎡⎣⎢abc⎤⎦⎥+δ(yt−y^t)∇y^t
∇y^t+1∇y^tt
error=∑t(yt−y^t)2
おそらく、各ステップは集約に十分な粗雑な方向性に貢献するでしょうか?これはあなたの結果を説明するかもしれませんが、私はあなたの方法/損失関数についてもっと聞いてみたいです!また、2つのタイムステップでウィンドウ化されたANNとの比較にも興味があります。
edit4:コメントを読んだ後、あなたのアーキテクチャはRNNではないようです。
ht
モデル:ステートレス-各ステップで再構築された非表示の状態
edit2:DNNに参照を追加edit3:gradstepと表記法を修正edit5:回答/明確化後のモデルの解釈を修正