前回我々はリカレントニューラルNetwoks(RNN)を学び、なぜ言語モデルとしてニューラルネットワークRNNに仕上げ、またはする前に、言語モデル(LM)についてthey'er偉大な、重要な点はご理解を多重W、及び状態にあります次の状態の入力として、出力する。言語モデルの少なすぎる理解した場合、その後、RNN、論理的なネットワークのための自然な変化があり、それは複雑ではありません。
ここの下では、問題の最も基本的なRNNは、そのような勾配が消える話のタイトル、またはグラデーション爆発など、解決すべきです。そして、それらをどのように修正する。そして、RNN変異体より複雑に導入議論したかった(他のRNNのようなバリアントアプリケーション内などLSTM、GRU)、RNN I感、それはまだかなり良いです。
それは、このような双方向-RNNように、それらも変化をLSTM GRUをリード...と消失グラデーション問題(勾配消失)についてである; - レイヤ - マルチRNN ...
グラデーションが消えると爆発
訓練は主にBPアルゴリズムに基づいているので、これは、問題となることがあるニューラルネットワークである数学的変数関数の偏微分、および派生プロセスチェーンルールアプリケーションです。我々は、すべてのであれば、多くの中間の用語は、まあ乗算され、非常に小さな数字が乗算され、全体的な結果は近い0ああ、ない勾配になること。
この図のように傾斜消滅(勾配消失)問題を引き起こし、全体的な結果こと...小項目の中央にあるかのように表されます。
勾配証明スケッチを消失
ビューから隠された層の手がかり。
\(H ^ {(T)} = \シグマ(W_hh ^ {(T-1)} + W_xx ^ {(T)} + B_T)\)
隠された層によって、そのonehot最初の埋め込みに入力xを与えられ、そして右多重化行列WはAへの最後の値の関数として活性を入力する値Hと点時間と再び製品W_h乗算されます彼らは[0、1]との間のベクトルです。
次に\(H ^ {(T- 1)} \) 誘導体(鎖ルールOH)に
$ \ FRAC {\部分H ^ {(T)} {1} {\部分H ^ {(T-1)} = $ \(DIAG \(\シグマ'(W_hh ^ {(T-1)} + W_xx ^ {(T)} + B_T))W_h \)
- それは、Z = AX、Y = H(Z)に相当する連鎖ルール、xのyの項偏導関数、即ち:H(Z)「* Xの部分部分Z値....
- シグモイド関数のために(略称(\シグマ(X)\ \ ) 結果の導出は、ある\(\シグマ(X)[1- \シグマ(X)] \)
頭痛を書かれたラテックスは...彼女をマークし、特に、この複雑な上下、マップを忘れてました。
とき\(W_h \)が非常に小さく、それは(IJ)だ乗、この値はそう非常に小さくなる。注W_h行列は、我々がで言うことである小行列のダイを指し、非常に小さいです \ (| W_h | \)またはマトリックス分解特性(固有値、固有ベクトル)、その最大の特徴値の絶対値の特性の最大値であれば、1未満ゼ\(|| W_h || \)ランク値の型が小さくなる。(前任者との結論に最初のレコードの上に、私は知りませんでした、実証された)最大の固有値1より大きい場合は、それが問題(爆発勾配)勾配爆発を引き起こす可能性があり。
なぜ勾配に問題を消失さ
一つの説明:からの派生の意味。
戻り、以下に示すように勾配が、性能を消滅「の変化率」を測定するために使用される、誘導体の意味 \(\ FRAC Dyを} {} {DTを\)
ゼロ勾配は、次いで、生じる小さな増分時間、jは何の影響されていないようなjと、あまりにも遠く離れている地図表示から(4)は、実質的に影響を受けたH(1)は。これを言うことができ聖歌や詳細:
以下からの勾配信号遠いが失われ、それが近いバイから勾配信号よりもはるかに小さいですので、
だから、モデルの重みだけに関してのみ更新され、近くに効果はない長期的な影響を。
2説明:
勾配のANS尺度(測定)見ることができる未来にONに過去の影響では。文字通り、勾配、現在小節の将来として見ることができる。勾配が小さい場合、それは現在、将来にあまり影響を意味します。
将来への影響は今??私は、このタイムラインを感じ、ああ理解していないようです
短いハでは、基本的な事実は、非常に小さな勾配に反映されます。
- nが大きい場合、T段階及びt + Nステップ、「関連性」で、次いでワードこれら二つの状態は比較的小さいです
- したがって、私たちは、計算されたパラメータは、ああ、正しくありません。
なぜ勾配に問題を爆発さ
同様に、爆発の勾配は、大きな問題である。(パラメータを更新するために勾配降下法が直感的に見ることができます)
勾配が大きすぎるなった場合は、SGD(随机梯度下降法)更新ステップが大きすぎになります。
\(\シータ^ {新規} = \シータ^ {古い} - \アルファ\ナブラ_ \シータJ(\シータ)\)
これは、MLの基本的な理解が泥棒馴染みのHAであるである。本質的に1つの調整パラメータベクトルさて、勾配\(\ナブラ_ \シータJ (\シータ)\) 特に大きい場合、全体のパラメータはすべて、そのリズムを壊すためにバンドを振ります。
これは、引き起こす可能性が悪いのアップデートを:私たちはあまりにも大きなAのステップを取ると(大きな損失で)悪いparamenter構成に到達します
コードの実行の観点から、
最悪の場合には(さらに悪い)、ウィルによってこの中に結果INFまたはNaNそして、あなたが持っているが、AN以前のチェックポイントから再起動する必要があなたのネットワーク。トレーニングでは。コードを書き換えるために配られている、数時間を実行してリライトそれは過ぎた...これは私が学習の深さを学ぶにしたくない理由の一つです。
解決 - 勾配が消滅し、爆発
消失解決
パス
爆発解決
方法の種類は、グラデーションのクリッピングと呼ばれる:勾配のノルムが一部threshhold(閾値)よりも大きい場合、SGD更新を適用する前にそれを縮小します。
パラメータベクトルモジュロG以下に示すように、それが一定の閾値を超えた場合、それは(下記)を更新する(小さい)スケーリングしたGと同等でした
ベクトルをスケーリングすることを特徴と、それはSGDに、その元の方向を変更されていない、またはOH勾配方向に沿ってパラメータを調整します。
つまり、同じ方向への一歩が、小さな一歩を踏み出す。ああ、ささいなことを。
概要
- 熟練RNN網目構造と、そのようなW多重出力などの特性、 - >入力
- 勾配消失は、BPのトレーニングパラメータは、チェーン・ルールの導出は、テーブル弱いワードとの間の直接的な非常に小さなアイテムの製品ではなく、全体の方程式勾配、関連があるかもしれません
- 勾配爆発は、直接に係合するNaNまたはInfを、コードの崩壊、その結果、調整パラメータの更新のペースが大きすぎる、これです
- 勾配が消滅を解決します...
- 爆発勾配を解決するには、その方向を変えずにベクトルをスケーリングする方法をクリッピング使用することができます。