グラデーション消失の説明と簡単な例

記事ディレクトリ

グラデーションが消える

勾配の消失は、ディープ ラーニング、特にディープ ニューラル ネットワークを使用する場合の重要な問題です。この問題の核心は、バックプロパゲーション プロセス中に勾配が徐々に小さくなり、重みの更新がほとんど行われなくなるため、モデルのトレーニングが困難になったり、収束速度が非常に遅くなったりすることです。この問題は通常、多くの層が積み重ねられているディープ ニューラル ネットワークで発生します。

勾配消失問題の主な原因は、深いネットワークでのチェーン導出です。バックプロパゲーション中、勾配はネットワークの上部から下部に伝播され、勾配は層ごとに計算されて前の層に渡されます。活性化関数の微分値が 0 に近い場合、または重み行列の固有値が 0 に近い場合、勾配は急激に減少し、最終的には 0 に近づき、重みはほとんど更新されなくなります。

勾配消失の問題の考えられる原因は次のとおりです。

  • 活性化関数の選択: Sigmoid や Tanh などの活性化関数を使用します。これらの関数の導関数は、入力が大きいか小さい場合にゼロに近くなり、勾配が消失します。この問題を解決するには、ReLU (Rectified Linear Unit) や Leaky ReLU など、より優れた特性を持つ活性化関数の使用を試みることができます。

  • 重みの初期化: 不適切な重みの初期化方法も、勾配消失の問題を引き起こす可能性があります。より小さいランダムな重みを使用して初期化するか、Xavier 初期化や He 初期化などの特別に設計された初期化方法を使用すると、勾配消失の問題を軽減するのに役立ちます。

  • バッチ正規化: バッチ正規化は、勾配消失の問題を軽減するために使用される手法で、各レイヤーの入力分布を正規化することで勾配の流れをよりスムーズにします。

  • 勾配クリッピング: トレーニング中に、勾配クリッピング技術を使用して勾配のサイズを制限し、勾配が小さくなりすぎないようにすることができます。

  • レイヤ設計: 場合によっては、ネットワークの深さを減らす、またはスキップ接続 (ResNet など) を使用するなどのアーキテクチャ設計により、勾配消失の問題を軽減できることがあります。

  • LSTM または GRU を使用する: シーケンス データを処理する場合、長短期記憶ネットワーク (LSTM) やゲート型リカレント ユニット (GRU) などのリカレント ニューラル ネットワーク構造を使用すると、勾配消失の問題を軽減できます。

簡単な例をてみましょう
:入力



计算y关于x'的梯度:

$\frac{dy}{dx'} = \frac{
    
    d}{
    
    dx'}(w_2x' + b_2) = w_2$

计算x'关于x的梯度:

$\frac{dx'}{
    
    dx} = \frac{
    
    d}{
    
    dx}(w_1x + b_1) = w_1$
最后,将它们相乘以获得y关于x的梯度:
$\frac{
    
    dy}{
    
    dx} = \frac{
    
    dy}{
    
    dx'} \cdot \frac{dx'}{
    
    dx} = w_2 \cdot w_1$

この例では、勾配が消えるということは、w_1 と w_2 を掛け合わせると、それらは非常に小さくなるということを意味します。

多層状況に相当する可能性があります。

おすすめ

転載: blog.csdn.net/weixin_46483785/article/details/132814010