In the article Understanding the Backpropagation Algorithmでは 、backpropagation アルゴリズムの一般的な考え方と利点が一般的に説明されています. この記事では、最も単純な RNN ネットワークを使用して backpropagation アルゴリズムを導出します.
計算図と計算式
簡単な導出のために、次のように最も代表的な RNN ネットワーク図を見てみましょう。
上の図は計算グラフです。式導出の便宜上、式を書き出します。各ステップ t の計算プロセスは次のとおりです。
各ステップの損失関数、全損失関数 L は次のとおりです。
各ステップで、 はベクトル形式の変数、 はベクトル 形式の変数、 はベクトル形式の変数、 はベクトル形式の変数、 はベクトル形式の変数、W は行列形式の変数、V は行列形式の変数、Uは行列形式の変数です (次に、各ステップで t、W、V、U、b、c は同じであることに注意してください);は実数値の変数です。
各ステップでの加算によって得られる最終的な L は、実数値の変数です。
その中で、パラメーター行列変数は W、V、U です。切片変数は b、c です。
逆伝播アルゴリズムの導出
上記の基礎を基に、推論を開始できます. 導出の前に、関連する tanh 関数に慣れる必要があります.
タン関数:
tanh 関数の導関数: (独立変数に関する導関数は 1 - 関数の 2 乗)
後ろから前に始めましょう:
1. 最初に、各ステップ t の最終損失Lが導出されます。式 10.13 に従って導出されます。
2. 次に、L を見つけて、各ステップ t の勾配を見つけます。これはベクトルなので、ベクトル内のすべての実数値変数に対する Lの導関数が必要です. 連鎖律 に従って、最初の項目 と 2 番目の項目は、 式 10.11 に従って導出でき、交差エントロピー損失 関数が得られます。 softmax Calculatedにより、softmax 関数は、多分類問題に対する softmax 関数クロスエントロピー損失関数の導出を参照できます. 最終結果だけを見たい場合は、最後まで見てください. 最後に、次のように取得できます。
3. 次に、L を見つけて勾配 を見つけます。ここで、T は最後のステップ t です 。同様に、 これもベクトルであり、ベクトル内のすべての実数値変数に対する L の勾配が必要です。の導関数は からのみ導出され、式 10.10 で比較的簡単に得られることが計算図からわかります。コードの式は面倒なので、手書きの式は次のようになり、各次元の勾配が得られました。それらを統合して計算すると、正しい勾配ベクトルが得られます。これは、その後の他の勾配の計算に便利です。
最後のステップ T では、L ペアの勾配を計算するときに、 L から V への勾配と L から c への勾配も同時に計算できます。各ステップの V と c は同じですが、最後のステップ T の V を、最後のステップ T の c を として思い出すことができます。
L から V への勾配は、式 10.10 から推定できます。これは少し曲がっています。見てみましょう。
L から c への勾配は、式 10.10 から推定できます。
4. L ペアの勾配を計算したら、 L から U への勾配、L から W への勾配、L から b への勾配を 計算できます .各ステップの U、W、b は同じですが、最後のステップ T の U、W、および b は、、です。
式 10.8 と式 10.9、および tanh 関数の導関数から、L から U への勾配を次のように推定できます。
L から W への勾配の計算は、L から U への勾配の計算とまったく同じですが、 に変更する 。
L から b への勾配の計算は、基本的に L から U への勾配の計算と同じですが、次のように最後の項目が欠落しています。
5. 最後のステップ T で変数に対する L の勾配を計算した後、先に進み、中間の各ステップの変数に対する L の勾配を計算する必要があります。中間の各ステップの計算プロセスは同じであるため、t を使用して中間の各ステップを表します。
最初に、各ステップ t でL 個のペア の勾配を計算できます 。
ここでのグラデーションは2 つの部分で構成されています。一方の部分は から 、もう一方の部分は から来ています。
6. L ペア の勾配を計算したら、L ペア、、、の勾配を計算できます 。最後のステップ T を求めるときとまったく同じです。
7. RNN では、、、、および 各ステップ t は同じベクトル/行列であるため、最終的な勾配は、各ステップで得られた勾配を加算することによって取得できます. たとえば、L から V への勾配は、各ステップの合計勾配の 、他のパラメーターは同じです。
これで RNN のバックプロパゲーションの導出は終わりです. ようこそコメント欄にメッセージを残してください~