web-dev-qa-db-ja.com

Caffeの「weight_decay」メタパラメーターとは何ですか?

例を見る 'solver.prototxt' 、BVLC/caffe gitに投稿、トレーニングメタパラメーターがあります

weight_decay: 0.04

このメタパラメータの意味は何ですか?そして、どの値を割り当てる必要がありますか?

24
Shai

weight_decayメタパラメータは、ニューラルネットの正則化項を管理します。

トレーニング中に、正則化項がネットワークの損失に追加され、backprop勾配が計算されます。 weight_decay値は、この正則化項が勾配計算でどの程度支配的であるかを決定します。

経験則として、トレーニングの例が多いほど、この用語は弱くなります。より多くのパラメーター(つまり、より深いネット、より大きなフィルター、より大きなInnerProductレイヤーなど)があるほど、この用語は高くなります。

Caffeでは、L2正則化(デフォルト)およびL1設定による正則化

regularization_type: "L1"

ただし、ほとんどの場合、重みは小さい数値(つまり、-1<w<1)、L2重みのノルムは、L1標準。したがって、regularization_type: "L1"調整が必要な場合がありますweight_decayを大幅に小さな値に。

学習率はトレーニング中に変化する可能性があります(通常は変化します)が、正則化の重みは全体的に固定されています。

44
Shai

重量減衰は、大きな重量にペナルティを科す正則化用語です。重み減衰係数が大きい場合、大きな重みのペナルティも大きくなります。小さな重みの場合、自由に成長できます。

より良い説明については、この答え(カフェに固有ではありません)を参照してください: ニューラルネット "weight decay" "learning rate"の違い

14
Tal Darom