FE EXAM

正則化(L1 / L2)

モデルの複雑さに罰則を加えて過学習を防ぐ手法

INTERACTIVE VISUALIZATION
当てはまり誤差
罰則項
当てはまり誤差
0.234
罰則項
6.162
合計損失 / 0になった重み
6.396 / 0
正則化の種類
正則化の強さ λ0.50
0(弱い)3(強い)
プリセット
損失 = 当てはまり誤差 + λ × 罰則項L2 は罰則項に Σw²(2乗の和)を使い、すべての重みを一様に小さく縮める(縮小)のが特徴です。λ を上げるほど曲線が滑らかになります。
各重み w の大きさ(λ で縮小/スパース化)
w1w2w3w4w5w6w7w8+
L2: 全バーが一様に短くなる(縮小)
フィッティング曲線の滑らかさ
入力 x →
λ を大きくすると重みが抑えられ、曲線が滑らかになります。滑らかな曲線ほどデータの細部(ノイズ)に振り回されず、未知データへの予測が安定します。ただし λ が強すぎると、今度はデータの傾向すら捉えられない未学習になる点に注意。
解説

⚖️
正則化とは

当てはまり誤差+λ×罰則=損失

正則化(regularization)とは、モデルの複雑さに罰則(ペナルティ)を加えることで、過学習を防ぐ手法のことです。学習で最小化する「損失」に、重みが大きいほど増える罰則項を足し込みます。

損失 + λ×Σ|w| (L1) または 損失 + λ×Σw² (L2)

身近な例で言うと、荷物の重さに応じて料金がかかる宅配便に似ています。荷物(重み)を増やせば便利になる(訓練データに合う)一方で、料金(罰則)が高くつく。だから「本当に必要なものだけを厳選して詰める」ようになり、結果として身軽で扱いやすいモデルになります。

ここで λ(ラムダ)は罰則の強さを決める調整つまみです。上のツールで種類(L1/L2)と λ を変えると、各重みのバーの大きさとフィッティング曲線の滑らかさが連動して変わります。λ=0 では罰則がなく過学習気味、λ を上げるほど重みが抑えられて曲線が滑らかになります。

🔀
L1とL2の違い

L1(スパース化)L2(縮小)

L1 と L2 は罰則の計算方法が違い、その結果重みへの効き方が変わります。

項目L1(ラッソ)L2(リッジ)
別名ラッソ(Lasso)リッジ(Ridge)
罰則項λ × Σ|w|(絶対値の和)λ × Σw²(2乗の和)
重みへの効果不要な重みを 0 に潰す(スパース化)全体を一様に縮める(縮小)
得意なこと特徴選択(重要な変数だけ残す)過学習の安定した抑制

L1(ラッソ):絶対値の和を罰則にするため、重要でない重みをちょうど 0 に潰します。0 の重みは「その特徴を使わない」という意味なので、自動的に重要な特徴だけを選ぶ「特徴選択」の効果があります
L2(リッジ):2乗の和を罰則にするため、すべての重みを0 に近づけつつも 0 にはしません。全体をバランス良く縮め、安定して過学習を抑えます

上のツールで L1 を選んで λ を上げると、いくつかの重みのバーがピッタリ 0(グレー)になります。L2 では同じことをしても全バーが一様に短くなるだけで 0 にはなりません。これが L1 と L2 の本質的な違いです。なお両方を組み合わせた Elastic Net という手法もあります。

🛡️
過学習防止の効果

罰則なし(波打ち)正則化後(滑らか)

正則化が過学習を防ぐ仕組みはシンプルです。重みが大きいほど罰則で損失が増えるので、学習は「重みをできるだけ小さく保ちながら、データにも合わせる」というバランスを取るようになります。

重みが小さいと、入力が少し変わっても出力が大きく跳ねません。つまり「滑らかでなだらかなモデル」になります。滑らかなモデルは訓練データの細かなノイズに振り回されにくく、未知データに対しても安定して良い予測ができます(=汎化性能が上がる)。

ただし注意点があります。
λ が小さすぎる:罰則がほぼ効かず、過学習のまま
λ がちょうどよい:訓練・検証ともに良いバランス(理想)
λ が大きすぎる:重みを抑えすぎてデータの傾向すら表せない未学習になる

つまり λ は「強ければ良い」わけではなく、ちょうどよい値を探すことが大切です。要点をまとめると、正則化は重みに罰則を与えて過学習を抑える手法であり、λ が大きいほど罰則が強くなります。

関連コンテンツ