ディープラーニングで最頻出ワードのひとつ「過学習」。資格試験を受ける方にとっては、身近な課題ですよね。私自身も過去問を繰り返していると、同じ問題には強くなるのに、少しひねられた問題では正解率が一気に下がり、本番で失敗する──いわば「人間版・過学習」に陥ることが多々あります(笑)。
今回は、その過学習の対策としてAIが使う「正則化(Regularization)」を紹介します。なんとかこれを応用して人間にも使えないものか。。。(笑)
1. 正則化とは?──モデルに制約をかけて汎化性能を高める
正則化とは、モデルの重み(パラメータ)が必要以上に大きくならないよう制限を加える手法です。目的関数(損失関数)に「ペナルティ項」を加えて、学習の暴走を防ぎます。
人間も同じで、学びたての頃はシンプルな問題に強いのに、例外や応用に手を出すと混乱して精度が落ちる──そんな経験、ありますよね。レアケースを覚えすぎると本質を見失う。正則化はそれを防ぎ、モデルの複雑さを抑えて汎化性能(未知データへの対応力)を高めるための仕組みです。
$$\text{損失関数} = \text{誤差} + \lambda \times \text{ペナルティ項}$$
ここで λ(ラムダ)は「どれくらい制約を強めるか」を決めるハイパーパラメータです。
2. L2正則化(Ridge回帰)──大きな重みをなめらかに抑える
「Ridge(リッジ)」の意味は「尾根」だそうです。L2正則化は、「重み(パラメータ)の制約領域が円や楕円の形になるため、最適解が“尾根(ridge)”のような滑らかな形状上に決まることから」だそうですが、いまいちピンときませんね・・。リッジのRをRing(曲線的)と無理やりこじつけて おきましょう(笑)
さて、L2正則化は、重みの二乗和(Σ w²)をペナルティとして損失関数に加えます。二乗の特性上、小さい値では影響がほとんどありませんが、大きな値になるほどペナルティが急激に増大します。そのためモデルは「なるべく重みを小さくして誤差を最小にしよう」とする方向に働きます。
つまり、大きな重みをなめらかに抑え込むことで、特定の特徴量だけが過度に支配的になるのを防ぎ、全体としてバランスの取れたモデルになるわけです。
例えば w=0.5 のときペナルティは 0.25、w=2 のときは 4。大きな重みほど罰則が強く、結果として「全体の重みを均等に小さく保つ」効果になります。Ridgeの“なだらかな曲線”は、この二乗ペナルティが作り出しているのですね。
損失関数 = Σ(誤差²) + λΣ(w²)
3. L1正則化(Lasso回帰)──不要な重みをゼロにする
「Lasso(ラッソ)」はカウボーイの投げ縄のこと。制約領域がひし形になり、最適解が軸に引っかかって重みがゼロになることが多いため、「縄で不要な重みを捕まえる」イメージから名付けられたそうですが、、、こちらもラッソのLをLiner(直線的)と無理やりこじつけの方が頭に残りそうです。
L1正則化は、重みの絶対値(Σ|w|)をペナルティとして加えます。小さな重みには一定の罰がかかるため、「小さいならゼロにしてしまった方が得」とモデルが判断し、不要な特徴量(ノイズや相関の弱い変数)を自動的に削除します。
これによりモデルはスパース化(不要なものを削除)し、シンプルで解釈しやすい形になります。
損失関数 = Σ(誤差²) + λΣ|w|
4. L1とL2の違いを整理
| 項目 | L1正則化(Lasso) | L2正則化(Ridge) |
|---|---|---|
| ペナルティ | 重みの絶対値の和 | 重みの二乗和 |
| 効果 | 小さい重みをゼロ化(特徴選択) | 重みを全体的に小さくする |
| 特徴 | スパース化(不要なものを削除)でモデルを簡略化 | 全体をなめらかに抑制 |
| 覚え方 | 不要な重みを削る | 大きすぎる重みを抑える |
両者の長所を組み合わせた「Elastic Net」という手法もあり、L1とL2のバランスをとるように設計されています。
5. 正則化が過学習に有効な理由
モデルが複雑すぎるとバリアンス(variance:分散)が大きくなり、学習データに過剰適合します。逆に単純すぎるとバイアス(誤差)が増えます。正則化は、この「バイアス・バリアンスのトレードオフ」を調整し、ちょうど良い複雑さに保つことで過学習を防ぐのです。
6. 他の過学習対策との違い
- ドロップアウト(Dropout):学習中に一部のノードを無効化して汎化性能を高める
- 早期終了(Early stopping):検証データの誤差が悪化した時点で学習を打ち切る
- 交差検証(Cross Validation):データを分割して複数回学習・検証を行い、過学習を検出する
いずれも「モデルが覚えすぎないようにする」という点で共通しています。正則化とあわせて理解しておきましょう。
#人間も覚えすぎないように手を抜いて・・・ いや覚えすぎ まで 到着してなかったw
7. まとめ:L1・L2正則化は“覚えすぎ防止のしつけ”
- Ridge回帰=L2、Lasso回帰=L1、Elastic Net=両方
- L2は「二乗」で大きな重みを強く抑える
- L1は「絶対値」で小さい重みをゼロにして特徴選択
- 目的関数は「誤差+ペナルティ項」の形
- 「過学習」「バイアス・バリアンス」「汎化性能」との関係も要チェック
AIが“覚えすぎずに学ぶ”ための正則化。私も欲しい(笑)。
📘 シリーズ記事の流れ
次の記事 ▶️:

📚 シリーズトップ:



コメント