RNNの勾配消失・爆発問題

TransformerのようなモデルはNLPの多くの領域を席巻していますが、LSTMやGRUのようなRNNモデルは、シーンによってはそれなりの価値を持っていますので、やはり見習うべきモデルです。RNN勾配の相関分析は、最適化の観点から分析モデルを考える優れた例であり、よく理解する必要がある。「LSTMはどうして勾配消失/爆発を解決できるのか」などの問題は依然として今流行の面接問題の1つです。

f:id:cassialsun:20220214093729p:plain

RNN

RNNと勾配

RNNの定義は

                                                    h_{t} = f(x_{t}, h_{t-1};θ)

ここで、 h_{t}は各ステップの出力であり、現在の入力 x_{t}と直前の出力h_{t-1}とによって決定され、 θはトレーニング可能なパラメータである。最も基本的な分析をする時、我々は h_{t}, x_{t}, θはすべて1次元であると仮定することができて、これは我々に最も直観的な理解を得ることができて、そしてその結果はまだ高次元の状況に対して価値があります。勾配を考慮する理由は、現在主流の最適化器は勾配降下とその変種であるため、我々が定義するモデルにはより合理的な勾配が要求されるからである。求めることができ:

                                         \dfrac{dh_{t}}{dθ} = \dfrac{∂h_{t}}{∂h_{t-1}} \dfrac{dh_{t-1}}{dθ} + \dfrac{∂h_{t}}{∂θ}

実際には、RNNの勾配もRNNであり、現在時刻勾配 \dfrac{dh_{t}}{dθ}は、直前の時刻勾配 \dfrac{∂h_{t-1}}{∂θ}と現在の演算勾配 \dfrac{∂h_{t}}{∂θ}の関数であることがわかる。同時に、上式から分かるように、勾配消失または勾配爆発現象は、実際にはほぼ必然的に存在する: \left| \dfrac{∂h_{t}}{∂h_{t-1}}\right| \lt 1の場合、歴史的な勾配情報が減衰することを意味し、したがって歩数が多くなると勾配は必然的に消滅する(例えば \lim _{n\rightarrow \infty }0.9^{n}\rightarrow 0)。  \left| \dfrac{∂h_{t}}{∂h_{t-1}}\right| \gt 1では、歴史的勾配情報が徐々に強化されるので、ステップ数が多くなると勾配は必然的に爆発する(例えば \lim _{n\rightarrow \infty }1.1^{n}\rightarrow \inftyのように。いつまでも \left| \dfrac{∂h_{t}}{∂h_{t-1}}\right| = 1というわけにはいかないだろう。もちろん、1より大きいときもあれば、1より小さいときもあり、最終的には1の近くで安定する可能性もあるが、そのような確率は非常に低く、精巧にモデルを設計する必要がある。

消失?爆発?

RNNの勾配消失/爆発とは何か?勾配の爆発はよく理解して、勾配の数値は発散して、さらにゆっくりとNaNになりました;勾配がなくなるということは勾配がゼロになるということですか?そうではありません先ほど説明したように \left| \dfrac{∂h_{t}}{∂h_{t-1}}\right|は常に1より小さく歴史的な勾配は絶えず減衰しますが全体の勾配が0になるわけではありません。具体的には反復し続けることで

        \dfrac{dh_{t}}{dθ} = \dfrac{∂h_{t}}{∂h_{t-1}}\dfrac{dh_{t-1}}{dθ} + \dfrac{∂h_{t}}{∂θ}

          =\dfrac{∂h_{t}}{∂θ} + \dfrac{∂h_{t}}{∂h_{t-1}} \dfrac{dh_{t-1}}{dθ} + \dfrac{∂h_{t}}{∂h_{t-1}} \dfrac{∂h_{t-1}}{∂h_{t-2}}  \dfrac{∂h_{t-2}}{∂θ} + ...

明らかに、実際には \dfrac{∂h_{t}}{∂θ}が0でない限り、全体勾配が0である確率は実際には小さい。しかし反復を続けると、 \dfrac{∂h_{1}}{∂θ} という項の前の間引きは t - 1項の連乗 \dfrac{∂h_{t}}{∂h_{t-1}} \dfrac{∂h_{t-1}}{∂h_{t-2}}  \cdots \dfrac{∂h_{2}}{∂h_{1}} であり、もしそれらの絶対値がすべて1よりも小さいならば、結果は0に近づくことになる。そうなると、 \dfrac{∂h_{t}}{∂θ}は最初の勾配 \dfrac{∂h_{1}}{∂θ}の情報をほとんど含まなくなる。現在の時間ステップから長ければ長いほど、そのフィードバックの勾配信号は目立たなくなり、最後には全く機能しなくなる可能性がある。これは、RNNが長距離セマンティックを捕捉する能力が無効になることを意味する。

つまり、長距離からのフィードバックとは関係なく、学習したモデルが長距離を効果的に捉えることができるのか。