このセクションでは、誤差逆伝播法の失敗例と、ニューラル ネットワークを正則化する最も一般的な方法について説明します。
失敗ケース
誤差逆伝播法がうまくいかない一般的な方法はいくつかあります。
消失するグラデーション
下位レイヤ(入力に近いレイヤ)の勾配は非常に小さくなる場合があります。ディープ ネットワークでは、これらの勾配の計算に多くの小さな項の積を取る必要があります。
下位レイヤの勾配が 0 に向かって消失すると、これらのレイヤのトレーニングは非常に遅く、またはまったくトレーニングされません。
ReLU 活性化関数は、勾配消失の防止に役立ちます。
勾配が爆発する
ネットワークの重みが非常に大きい場合、下位レイヤの勾配には多くの大きな項の積が含まれます。この場合、勾配爆発(大きすぎて収束できない勾配)が発生する可能性があります。
バッチ正規化は、学習率の低下と同様に、勾配爆発を防ぐのに役立ちます。
デッド ReLU ユニット
ReLU ユニットの加重合計が 0 を下回ると、ReLU ユニットは停止する可能性があります。活性化は 0 を出力するため、ネットワークの出力には何も寄与しません。また、誤差逆伝播中に勾配が通過できなくなります。勾配のソースがカットされていると、ReLU への入力は、加重合計を 0 より大きくするのに十分な変化がない場合があります。
学習率を低くすると、ReLU ユニットが機能しなくなるのを防ぐことができます。
ドロップアウト正則化
また、ニューラル ネットワークには、ドロップアウトと呼ばれる別の形式の正則化が有用です。これは、単一の勾配ステップで、ネットワーク内のユニット活性化をランダムに「ドロップアウト」させることで機能します。ドロップアウトすればするほど、正則化が強くなります。
- 0.0 = ドロップアウトの正則化なし。
- 1.0 = すべてをドロップアウトする。モデルは何も学習しません。
- 0.0 ~ 1.0 の値ほど便利である。