LSTMは消失勾配の問題をどのように防止しますか?


35

LSTMは、消失勾配の問題を回避するために特に発明されました。これは、以下の図で(Greffらによる)Constant cell Carousel(CEC)を使用してcellの周りのループに対応するものと想定されています。

LSTM
(ソース:deeplearning4j.org

そして、その部分は一種の恒等関数として見ることができるので、導関数は1であり、勾配は一定のままであることを理解しています。

私が理解していないのは、他のアクティベーション機能のためにどのように消えないのですか?入力、出力、および忘却ゲートはシグモイドを使用します。この微分は最大で0.25で、gとhは伝統的にtanhでした。それらを逆伝播すると、勾配が消えないのはどうしてですか?


2
LSTMは、長期的な依存関係を記憶するのに非常に効率的で、勾配の消失問題に対して脆弱ではない、リカレントニューラルネットワークモデルです。私は、あなたが探している説明の種類を確認していない
TheWalkingCube

LSTM:長期短期メモリ。(参照:Hochreiter、S. and Schmidhuber、J.(1997)。Long Short-Term Memory。Neural Computation 9(8):1735-80・1997年12月)
-horaceT

LSTMの勾配は消失し、バニラRNNの場合よりも遅くなり、より遠くの依存関係をキャッチできるようになります。勾配の消失の問題を回避することは、依然として活発な研究の領域です。
アルテムソボレフ

1
参照で遅い消失をバックアップすることに注意してください?
バイエルジ

回答:


22

消失勾配は、1次元の場合に最もよく説明されます。多次元はより複雑ですが、本質的に類似しています。この優れた論文[1]で確認できます。

タイムステップtに隠れ状態があると仮定します。物事を単純化し、バイアスと入力を削除すると、 h t = σ w h t 1)になります。 その後、あなたはそれを示すことができますhtt

ht=σ(wht1)

でマークされた因数分解!重要なものです。重みが1に等しくない場合、次のように指数関数的に高速でゼロに減衰します。

htht=k=1ttwσ(whtk)=wtt!!!k=1ttσ(whtk)
で増加しますtt

LSTMでは、セルの状態はです。誘導体は次の形式がある st ここで、vtは忘却ゲートへの入力です。ご覧のとおり、指数関数的に速い減衰因子は関係していません。その結果、勾配が消えないパスが少なくとも1つあります。完全な導出については、[2]を参照してください。

stst=k=1ttσ(vt+k).
vt

[1]パスカヌ、ラズバン、トマスミコロフ、ヨシュアベンジオ。「リカレントニューラルネットワークのトレーニングの難しさについて」ICML(3)28(2013):1310-1318。

[2]バイエル、ジャスティンサイモン。学習シーケンス表現。ディス ミュンヘン工科大学、ミュンヘン、Diss。、2015、2015。


3
lstmの場合、h_tもh_ {t-1}に依存していませんか?ds_t / d_s {t-1}が「勾配が時間とともに流れる唯一の部分である」と言うとき、あなたの論文では何を意味しますか?
user3243135

@ user3243135 h_tは、h_ {t-1}に依存します。ただし、ds_t / d_s {t-1}が保持されていると仮定します。他の勾配フローが消失しても、勾配フロー全体は消失しません。これにより、勾配の消失が解決されます。
soloice

私はいつも主な問題は、長期的であったと考え 場合ので、σ 'zは通常シグモイドの誘導体(又は1未満誘導体有するもの)であります確かに消失勾配(例えばシグモイドは、大きさが1 <であり、それらの誘導体である引き起こさσ 'X = σ Z 1 - σ Z
ttσ(whtk)
σ(z)σ(x)=σ(z)(1σ(z))これは確かに1未満です)。それが、ReLUがCNNで受け入れられた理由ではありませんか?これは、フィードフォワードモデルとリカレントモデルで消失勾配がどのように扱われるかの違いを常に混乱させていた1つのことです。これについての説明はありますか?
ピノキオ

シグモイドの勾配も問題になる可能性があります。入力の分布が大きい分散および/または0から離れていると仮定します。ただし、ReLUを使用する場合でも、主な問題は持続します。 )勾配が消失するか、場合によっては、正則化が適切でない場合に勾配が爆発します。
運動失調

3

GreffらのLSTMブロックの写真。(2015)著者がバニラLSTMと呼ぶ変種について説明しています。Hochreiter&Schmidhuber(1997)の元の定義とは少し異なります。元の定義には、忘却ゲートとのぞき穴の接続は含まれていませんでした。

元の論文では、Constant Error Carouselという用語を使用して、セル状態の繰り返しの接続を示しています。入力ゲートが開いたときに、セルの状態が加算によってのみ変更される元の定義を検討してください。より早い時間ステップでのセル状態に関するセル状態の勾配はゼロです。

エラーは、出力ゲートおよびアクティベーション機能を介してCECに入力される場合があります。アクティベーション機能は、CECに追加される前にエラーの大きさを少し減らします。CECは、エラーが変更されずに流れる唯一の場所です。繰り返しますが、入力ゲートが開くと、入力ゲート、アクティベーション関数、およびアフィン変換を介してエラーが終了し、エラーの大きさが減少します。

したがって、エラーは、CSTMに出入りする場合にのみ、LSTMレイヤーを介して逆伝播されるときに減少します。重要なことは、CECがどれだけ長く移動してもCECで変化しないことです。これにより、各タイムステップでアフィン変換と非線形性が適用されるという基本的なRNNの問題が解決されます。つまり、入力と出力の間の時間距離が長くなるほど、エラーが小さくなります。


2

http://www.felixgers.de/papers/phd.pdf 切り捨てられたエラー部分が説明されているセクション2.2および3.2.2を参照してください。セルメモリからリークが発生した場合(つまり、閉じられた/アクティブ化された入力ゲートがある場合)、エラーは伝播しませんが、その時点でのみエラーに基づいてゲートの重みを更新します。その後、さらなる逆伝播中にゼロになります。これは一種のハックですが、その理由は、ゲートに沿ったエラーフローが時間の経過とともに減衰するためです。


7
これについて少し拡張してもらえますか?現時点では、リンクの場所が変更されたり、論文がオフラインになった場合、回答には値がありません。少なくとも、リンクが機能しなくなった場合に論文を再度見つけることができる完全な引用(参照)を提供するのに役立ちますが、この回答を自己完結させる短い要約が最善です。
シルバーフィッシュ

2

受け入れられた回答に詳細を追加したいと思います。それは少しニュアンスがあり、RNNについて最初に学んだ人にはそのニュアンスが明らかでないかもしれないからです。

htht=k=1ttwσ(whtk)

stst=k=1ttσ(vt+k)

  • tt
  • 答えはyesです。これが、LSTMが勾配の消失にも苦しむ理由ですが、バニラRNNほどではありません。

wσ()σ()

σ()1
vt+k=wxwxw

x=1w=10 vt+k=10σ()=0.99995

(0.99995)tt

wσ(whtk)1

htk=1wσ(w1)0.224w=1.5434

(0.224)tt

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.