RNN - 勾配が消え、爆発

前回我々はリカレントニューラルNetwoks(RNN)を学び、なぜ言語モデルとしてニューラルネットワークRNNに仕上げ、またはする前に、言語モデル(LM)についてthey'er偉大な、重要な点はご理解を多重W、及び状態にあります次の状態の入力として、出力する。言語モデルの少なすぎる理解した場合、その後、RNN、論理的なネットワークのための自然な変化があり、それは複雑ではありません。

ここの下では、問題の最も基本的なRNNは、そのような勾配が消える話のタイトル、またはグラデーション爆発など、解決すべきです。そして、それらをどのように修正する。そして、RNN変異体より複雑に導入議論したかった(他のRNNのようなバリアントアプリケーション内などLSTM、GRU)、RNN I感、それはまだかなり良いです。

それは、このような双方向-RNNように、それらも変化をLSTM GRUをリード...と消失グラデーション問題(勾配消失)についてである; - レイヤ - マルチRNN ...

グラデーションが消えると爆発

訓練は主にBPアルゴリズムに基づいているので、これは、問題となることがあるニューラルネットワークである数学的変数関数の偏微分、および派生プロセスチェーンルールアプリケーションです。我々は、すべてのであれば、多くの中間の用語は、まあ乗算され、非常に小さな数字が乗算され、全体的な結果は近い0ああ、ない勾配になること。

rnn4

この図のように傾斜消滅(勾配消失)問題を引き起こし、全体的な結果こと...小項目の中央にあるかのように表されます。

勾配証明スケッチを消失

ビューから隠された層の手がかり。

\(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)] \)

rnn5

頭痛を書かれたラテックスは...彼女をマークし、特に、この複雑な上下、マップを忘れてました。

とき\(W_h \)が非常に小さく、それは(IJ)だ乗、この値はそう非常に小さくなる。注W_h行列は、我々がで言うことである小行列のダイを指し、非常に小さいです \ (| W_h | \)またはマトリックス分解特性(固有値、固有ベクトル)、その最大の特徴値の絶対値の特性の最大値であれば、1未満\(|| W_h || \)ランク値の型が小さくなる。(前任者との結論に最初のレコードの上に、私は知りませんでした、実証された)最大の固有値1より大きい場合は、それが問題(爆発勾配)勾配爆発を引き起こす可能性があり。

なぜ勾配に問題を消失さ

一つの説明:からの派生の意味。

戻り、以下に示すように勾配が、性能を消滅「の変化率」を測定するために使用される、誘導体の意味 \(\ FRAC Dyを} {} {DTを\)

Rnn6

ゼロ勾配は、次いで、生じる小さな増分時間、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と同等でした

rnn7

ベクトルをスケーリングすることを特徴と、それはSGDに、その元の方向を変更されていない、またはOH勾配方向に沿ってパラメータを調整します

つまり、同じ方向への一歩が、小さな一歩を踏み出す。ああ、ささいなことを。

概要

  • 熟練RNN網目構造と、そのようなW多重出力などの特性、 - >入力
  • 勾配消失は、BPのトレーニングパラメータは、チェーン・ルールの導出は、テーブル弱いワードとの間の直接的な非常に小さなアイテムの製品ではなく、全体の方程式勾配、関連があるかもしれません
  • 勾配爆発は、直接に係合するNaNまたはInfを、コードの崩壊、その結果、調整パラメータの更新のペースが大きすぎる、これです
  • 勾配が消滅を解決します...
  • 爆発勾配を解決するには、その方向を変えずにベクトルをスケーリングする方法をクリッピング使用することができます。

おすすめ

転載: www.cnblogs.com/chenjieyouge/p/12508078.html
おすすめ