簡素化のための正則化: L2 正則化

次の一般化曲線について考えてみましょう。これは、トレーニングのイテレーション回数に対するトレーニング セットと検証セットの両方の損失を示しています。

トレーニング セットの損失関数は、徐々に減少します。対照的に、検証セットの損失関数は下降しましたが、その後上昇し始めます。

図 1. トレーニング セットと検証セットでの損失。

図 1 は、トレーニングの損失が徐々に減少するものの、最終的には検証の損失が増加するモデルを示しています。言い換えると、この一般化曲線は、モデルがトレーニング セット内のデータに過学習していることを示しています。内部の Ockham と連携し、複雑なモデルにペナルティをかけることで過学習を防ぐことができます。これは正則化と呼ばれる原則です。

つまり、単に損失を最小限に抑えること(経験的リスクの最小化)を目指すのではなく、

$$\text{minimize(Loss(Data|Model))}$$

損失と複雑さを最小限に抑えます。これは構造的リスクの最小化と呼ばれます。

$$\text{minimize(Loss(Data|Model) + complexity(Model))}$$

トレーニング最適化アルゴリズムは、モデルがデータにどの程度適合するかを測定する損失項と、モデルの複雑さを測定する正則化項の 2 つの関数になりました。

機械学習集中講座では、モデルの複雑さについて次の 2 つの一般的な(ただしある程度関連する)方法に焦点を当てます。

  • モデルの複雑さの度合い(モデル内のすべての特徴の重みの関数)。
  • 重みが 0 以外の特徴の合計数の関数としてのモデルの複雑さ。(後のモジュールでこのアプローチについて説明します)。

モデルの複雑さが重みの関数の場合、絶対値が高い特徴量の重みは、絶対値が低い特徴量の重みよりも複雑になります。

複雑さは、L2 正則化の式を使用して定量化できます。この式では、すべての特徴の重みの二乗の和として正則化項が定義されます。

$$L_2\text{ regularization term} = ||\boldsymbol w||_2^2 = {w_1^2 + w_2^2 + ... + w_n^2}$$

この式で、重みが 0 に近い場合、モデルの複雑さにほとんど影響しませんが、外れ値の重みは大きな影響を及ぼす可能性があります。

たとえば、次のような重みを持つ線形モデルがあるとします。

$$\{w_1 = 0.2, w_2 = 0.5, w_3 = 5, w_4 = 1, w_5 = 0.25, w_6 = 0.75\}$$

L2 正則化項は 26.915 である。

$$w_1^2 + w_2^2 + \boldsymbol{w_3^2} + w_4^2 + w_5^2 + w_6^2$$ $$= 0.2^2 + 0.5^2 + \boldsymbol{5^2} + 1^2 + 0.25^2 + 0.75^2$$ $$= 0.04 + 0.25 + \boldsymbol{25} + 1 + 0.0625 + 0.5625$$ $$= 26.915$$

しかし、 \(w_3\) (上の太字)は、25 という 25 という値により、ほぼすべての複雑さの原因となります。他の 5 つの重みすべての二乗の合計で、L2 正則化項に 1.915 だけ加算されます。