ニューラルネットワーク:重量変化の運動量と重量減衰


41

Momentumは、連続した反復での重量変化の変動を小さくするために使用されます。α

Δωi(t+1)=ηEwi+αΔωi(t),
ここではエラー関数、 -重みのベクトル学習率。E(w)wη

重量減衰は、重量の変化にペナルティを与えます。λ

Δωi(t+1)=ηEwiληωi

問題は、逆伝播中に両方のトリックを組み合わせることが理にかなっているか、そしてそれがどのような効果をもたらすのか?

Δωi(t+1)=ηEwi+αΔωi(t)ληωi

1
Δωi(t + 1)=ωi-η∂E/∂wi+αΔωi(t)ではなく、ωi(t + 1)=ωi-η∂E/∂wi+αΔωi(t)と言うつもりですか?
博多又

回答:


48

はい、両方のトリックを使用することは非常に一般的です。彼らはさまざまな問題を解決し、うまく機能します。

それについて考える1つの方法は、重量減衰が最適化されている関数を変更し運動量が最適な経路を変更することです

係数をゼロに向けて縮小することにより、重み減衰により、大きさの小さいパラメーターで局所的な最適値を見つけることができます。これは通常、過剰適合を回避するために重要です(ただし、重みに対する他の種類の制約も機能します)。副次的な利点として、目的関数をより凸型にすることで、モデルの最適化を容易にすることもできます。

目的関数を取得したら、その上をどのように移動するかを決定する必要があります。勾配の最急降下は最も簡単なアプローチですが、変動が大きな問題になる可能性があることは確かです。勢いを追加すると、その問題を解決するのに役立ちます。バッチ更新を使用している場合(通常、ニューラルネットワークでは悪い考えです)、ニュートンタイプのステップは別のオプションです。新しい「ホット」アプローチは、Nesterovの加速勾配と、いわゆる「ヘッシアンフリー」最適化に基づいています。

ただし、使用するこれらの更新ルール(運動量、ニュートンなど)に関係なく、エラー関数(2乗誤差など)およびその他の制約(重みの減衰など)によって決定される同じ目的関数を引き続き使用します。 。これらのどれを使用するかを決定する際の主な質問は、どれだけ早く適切な重みのセットに到達するかです。


「また、目的関数をより凸型にすることで、モデルを最適化するのが簡単になります」-重みが小さいほどこれが可能になることを説明してください。
アレックス

ポイントを説明する簡単な例を次に示します。元の目的関数が場合、無限に多くの極小値があります。あなたが追加した場合目的関数に、そして約0.2よりも大きい、古い局所最適解のすべてが消え、あなただけの1最小0近くに残されるだろうsin(x)ax2a
デヴィッド・J.ハリス

いい答えです、ありがとう。Adam Optimizerはどうですか?重量減衰と運動量の組み合わせよりもパフォーマンスが向上しますか?
A.ピロ

Adamは勢いに似ていますが、体重減少には似ていません。目的関数のナビゲート方法に影響しますが、目的関数自体には影響しません。
デビッドJ.ハリス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.