私はニューラル ネットワーク クラスを書いていますが、理解できない 2 つの概念に出くわしました。bias
and とmomentum
は何か、何をするのか誰か教えてくれませんか?
3 に答える
バイアスは、ニューロンに与えられる一定の入力です。たとえば、通常のフィード フォワード ネットワークでは、2 つの入力ユニット、2 つの隠れユニット、および 1 つの出力ユニットがあるとします。入力ユニットからの入力に加えて、一定のバイアス値 (1 としましょう) が非表示ユニットと出力ユニットに入ります。
Momentum は、学習を高速化するために学習の開始時に使用される追加の学習率です。たとえば、学習エラーは通常、最初は非常に大きいため、勢いをつけて開始し、重みをより積極的に調整します。後で学習中にエラーが減少すると、運動量も減少するため、学習は遅くなりますが、ターゲットをオーバーシュートする可能性は低くなります.
バイアスにより、ニューロンはより広い範囲の入力値を受け入れることができます。モメンタムは、勾配降下中のステップ サイズと考えることができます。
典型的なノードでは、バイアスと前のレイヤーからのすべての入力が重み付けされ、合計され、出力値に押しつぶされます。スカッシング関数はゼロ付近に集中し、加重合計が非常に正または非常に負になると、感度が劇的に低下します。ただし、場合によっては、スカッシュの敏感な部分をゼロ付近以外の入力領域にしたいことがあります。バイアス入力により、学習アルゴリズムはノードの応答をシフトしてそれを達成できます。
チャールズ・マーが説明したことに加えて、モメンタムは、学習アルゴリズムを局所最小値に沿って実行して、より良い解を見つけるのにも役立ちます。
バイアスを直感的に考える方法は、線形方程式の b 項のようなものです。次のように定義されています。
y=mx+b
m 項は勾配で、b は線が y 軸と交差する場所を示します。この項を増減すると、線は y 軸に沿って上下に移動します。ニューラル ネットワークはクラスターを分離するために超平面を作成するため、バイアスはトレーニング中に最小値に収束し、うまくいけばトレーニング サンプルに適切な一致が見つかるまでそれを上下に動かします。
前に説明したように、モーメントは勾配降下中の振動を減らします。トレーニングの開始時にステップ サイズを増やし、最後に向けて減らします。これは、最小値に向かって負の勾配方向に大きなステップを取り、それに近づくにつれて小さなステップを取ると考えることができます。これにはいくつかの利点があります。
- トレーニング速度が上がります。
- 特に学習率が高い場合は、最小値を超えて収束しないリスクが低くなります。
- 極小値を超える可能性があります。