ニューラル ネットワーク: 誤差逆伝播を使用したトレーニング

誤差逆伝播は、ニューラル ネットワークで最もよく使用されるトレーニング アルゴリズムです。これにより、マルチレイヤ ニューラル ネットワークで勾配降下が可能になります。多くの ML コード ライブラリ(Keras など)はバックプロパゲーションを自動的に処理するため、基盤となる計算を自分で行う必要はありません。バックプロパゲーションの仕組みの概要については、次の動画をご覧ください。

ニューラル ネットワークのトレーニングのベスト プラクティス

このセクションでは、バックプロパゲーションの失敗ケースと、ニューラル ネットワークを正規化する最も一般的な方法について説明します。

消失する勾配

下位のニューラル ネットワーク レイヤ(入力レイヤに近いレイヤ)の勾配が非常に小さくなる可能性があります。ディープラーニング(複数の隠れ層を持つネットワーク)では、これらの勾配の計算に、多くの小さな項の積を求める処理が含まれる場合があります。

下位レイヤの勾配値が 0 に近づくと、勾配は「消失」します。勾配が消失するレイヤは、トレーニングが非常に遅くなるか、まったくトレーニングされません。

ReLU 活性化関数は、勾配消失を防ぐのに役立ちます。

爆発するグラデーション

ネットワーク内の重みが非常に大きい場合、下位レイヤの勾配には多くの大きな項の積が含まれます。この場合、勾配爆発が発生する可能性があります。勾配が大きすぎて収束しなくなることです。

バッチ正規化は、学習率を下げるように、勾配の急増を防ぐのに役立ちます。

使用されていない ReLU ユニット

ReLU ユニットの重み付き和が 0 を下回ると、ReLU ユニットが停止する可能性があります。0 を出力し、ネットワークの出力に何も貢献しません。また、バックプロパゲーション中に勾配を流すことができなくなります。勾配のソースがカットされると、ReLU への入力が変化しても、重み付きの合計が 0 を超えることはありません。

学習率を下げると、ReLU ユニットが機能しなくなるのを防ぐことができます。

ドロップアウト正則化

ニューラル ネットワークには、ドロップアウト正則化と呼ばれる別の正則化も役立ちます。これは、1 つの勾配ステップにおいて、ネットワーク内のユニット活性化をランダムに「ドロップアウト」することで機能します。ドロップアウトが多いほど、正則化は強くなります。

  • 0.0 = ドロップアウト正則化なし。
  • 1.0 = すべてのノードをドロップアウトします。モデルは何も学習しません。
  • 0.0 ~ 1.0 の値 = より有用。