L1、L2 の正則化とスムーズな L1 損失

   1. L1、L2 正則化

サンプルの特徴が多く、サンプルの数が比較的少ない場合、学習プロセスは簡単に過剰適合に陥る可能性があります。過学習の問題を軽減するために、損失関数に正則化項を追加できます。正則化項には多くの Lp ノルムがあり、一般的なものは L1 ノルムと L2 ノルムです。

    データセット D = {(x1, y1), (x2, y2), ..., (xm, ym)} があるとします。ここで、x は d 次元の特徴を持ち、y ∈ R を持ちます。二乗誤差を損失関数とする最も単純な線形回帰モデルを考慮すると、最適化の目的は次のようになります。

     ① p=1 とする、つまり L1 ノルムを使用します。

 ここで、正則化パラメータ λ>0。上の式は LASSO (Least Absolute Shrinkage and Seclction Operatro) と呼ばれます。直訳すると「最小絶対短縮選択演算子」と訳され、LASSO と呼ばれることが多いです。

    ② p=2、つまり L2 ノルムを使用します。

 ここで、正則化パラメータ λ>0。上の式はリッジ回帰と呼ばれます。

    L1 ノルムと L2 ノルムの正則化は両方とも、過学習のリスクを軽減するのに役立ちます。対照的に、L1 ノルムは、x>0 の場合は常に 1 の変化率を持ち、x<0 の場合は -1 の変化率を持ちます。トレーニングの後半段階では、導関数は定数 1 であるため、学習率 σ が変わらない場合、損失関数は安定した値の周りで変動し、安定させるのが難しく、極値付近で「バウンス」することもあります。L2 ノルムの微分値は 2x で、これは入力値に関連します。微分値は最初は非常に大きく、トレーニングの初期段階では不安定になります。

L1 ノルムには追加の利点もあることに言及する価値があります。後者よりも「スパース」(スパース) 解を取得するのが簡単です。つまり、取得される w の非ゼロ ベクトルが少なくなります(実際には、「疎な制約」がwに課されます。つまり、 wの非ゼロ成分が可能な限り少ないことが期待されます。最も自然なのは L0 ノルムを使用することですが、L0 ノルムは不連続です解を最適化するのは難しいため、一般的に近似には L1 ノルムが使用されます。)

    これを理解するために、以下に例を示します。x には 2 つの属性しかないとします。つまり、L1 正規解でも L2 正規解でも、w には w1 と w2 の 2 つのコンポーネントのみがあり、これを 2 つの座標軸とみなします。次に、L1 規則性と L2 規則性の第 1 項の「等高線」、つまり (w1, w2) 空間上で二乗誤差項の値が同じ点を結ぶ線を描きます。ノルムと L2 ノルムの等値線、つまり (w1, w2) 空間内の L1 ノルムの同じ値を持つ点を結ぶ線と、次の図に示すように、L2 ノルム:

 

図からわかるように、L1 ノルムを使用した場合、二乗誤差項の輪郭と正則化項の輪郭の交点が座標軸上に現れることが多く、つまり w1 または w2 が 0 となり、L2 ノルムが 1 の場合には、の交点は特定の象限に現れることがよくあります。つまり、w1 も w2 もゼロではありません。言い換えれば、L1 ノルムを使用すると、L2 ノルムよりも疎な解を取得するのが簡単になります。

 二、smooth L1 loss

    L1 と L2 の欠点を克服するために、スムーズな L1 があります。スムーズ L1 の定義は次のとおりです。

 |x|<1 の場合、区間 [-1, 1] における x の勾配も比較的小さくなり、x=0 の場合、関数は導出可能になります。

 |x|>1 の場合、L2 のようなノイズの影響を受けにくくなり、安定した値 ±1 であればネットワーク パラメータが破壊されることはありません。

x = -10:0.01:10;
y1 = x.*x;
y2 = abs(x);
y3 = 0.5*x.^2.*(x<1&x>-1)+(x-0.5).*(x>=1)+(-x-0.5).*(x<=-1)      ;
plot(x,y1,'r');
hold on;
plot(x,y2,'b');
hold on;
plot(x,y3)
hold on

おすすめ

転載: blog.csdn.net/m0_64007201/article/details/127647119