過学習対策の定番中の定番がL2正則化です。「重みを小さく保つとなぜ過学習が防げるのか」という理屈まで理解できると、L1正則化との違いも一気にクリアになります。試験頻出の対比ポイントを含めて解説します。
📖 ひと言でいうと
L2正則化とは、損失関数に「パラメータの二乗の合計(L2ノルム)」をペナルティとして加える正則化手法です。重み全体を小さな値に保つことでモデルの複雑さを抑え、訓練データへの過剰な適合(過学習)を防いで、未知のデータへの対応力(汎化性能)を高めます。
例えるなら、音楽のミキシングで特定の楽器の音量だけが突出しないようリミッターをかけるようなものです。どの楽器も鳴ってはいるけれど、極端に大きな音は抑えられるので、全体としてバランスの取れた滑らかな仕上がりになります。厳密には、二乗のペナルティは大きな重みほど急激に重い罰を与えるため、「突出した重みを許さない」方向に働きます。
🖼 1枚でわかるL2正則化
📘 公式テキストの説明
L2正則化は、過学習を抑制するための方法で、リッジ回帰とも呼ばれる。この正則化は、機械学習モデルの損失関数にL2ノルム(二乗和)を加えることで、モデルの複雑さを抑える働きをする。具体的には、L2正則化ではパラメータ(重み)それぞれの二乗を合計し、それに正則化係数を掛けたものを損失関数に追加する。これにより、モデルが訓練データに過度にフィッティングするのを防ぎ、未知のデータにも対応できるようにする。L2正則化の効果は、モデルの重みを小さく保つことで、過学習を防ぎ、モデルがより汎化されるようにする点にある。重みが小さいと、データの変動に対してモデルが敏感になりすぎないため、訓練データ以外にも強く対応することが可能になる。
流れとしては「二乗和×正則化係数を損失関数に追加→重みが小さく保たれる→データの変動に敏感になりすぎない→過学習を防ぎ汎化する」という一本道です。なお「リッジ回帰とも呼ばれる」とあるとおり、L2正則化を線形回帰に適用した手法がリッジ回帰です。
🔍 しっかり理解する
なぜ「重みが小さい」と過学習しにくいのか
過学習したモデルは、訓練データの細かなノイズまで拾って予測をぐねぐねと曲げています。このような極端な曲がり方を作るには、一部の重みが非常に大きな値を取る必要があります。逆にいえば、重みを小さく保てば、入力が少し変わっても出力が急変しない「滑らかな」モデルになり、ノイズへの過剰反応が物理的に起こせなくなります。
L2正則化はまさにこれを実現します。重みの二乗がペナルティなので、重みが2倍になれば罰金は4倍。大きな重みほど急激に高くつくため、モデルは「どうしても必要な場合以外は重みを大きくしない」よう学習されます。
二乗ペナルティの働き方——L1との対比で理解する
L1正則化(絶対値の合計)との違いは、重みが0に近づいたときの挙動に現れます。
- 大きな重みほど急激に重い罰金
- 重みは全体的に縮むが0にはならない
- すべての特徴量を少しずつ使う滑らかな解
- 回帰に使うと「リッジ回帰」
- 重みの大小によらず一定の力で0へ押す
- 不要な重みはちょうど0になる(スパース)
- 特徴選択・次元圧縮に向く
- 回帰に使うと「LASSO(ラッソ回帰)」
L2のペナルティは重みが0に近づくほど罰金の傾きが緩くなるため、0への最後のひと押しが働かず、重みは「小さいが0ではない」値に落ち着きます。結果として、すべての特徴量が少しずつ予測に寄与する、まろやかなモデルになります。一発でどれかを切り捨てるのではなく、全員の発言力を均等に抑える方式です。
使いどころと調整
L2正則化は線形回帰(リッジ回帰)だけでなく、ニューラルネットワークの学習でも広く使われます。ディープラーニングの文脈では、勾配更新のたびに重みを少しずつ縮める「重み減衰(weight decay)」という形で実装されることが多く、実質的にL2ペナルティと同じ働きをします。
ペナルティの強さを決める正則化係数はハイパーパラメータです。大きくしすぎると重みが縮みすぎて学習不足になり、小さすぎると正則化の意味がなくなるため、検証データでの性能を見ながら調整します。
💡 具体例で考える
住宅価格の予測モデルを、間取り・築年数・駅距離など50個の特徴量で作るとします。訓練データが少ないと、たまたま訓練データ内で価格と相関したノイズ的な特徴量に大きな重みがつき、訓練データでは高精度なのに新しい物件ではまるで当たらないモデルができがちです。L2正則化を入れると、特定の特徴量への極端な依存が抑えられ、50個の特徴量がバランスよく効く安定した予測になります。
また、特徴量同士に強い相関がある場合(例:「部屋数」と「延床面積」)、通常の線形回帰では係数が不安定に暴れることがありますが、L2ペナルティが係数の暴走を抑えてくれます。これがリッジ回帰が多重共線性に強いとされる理由で、詳しくはリッジ回帰の記事で扱います。
⚠️ よくある誤解・紛らわしい用語
- 「L2正則化は重みを0にする」は誤り — 重みを0に近づけて小さく保ちますが、ちょうど0にはなりません。重みを明確に0にしてスパースな解を作るのはL1正則化です
- L2⇄リッジ、L1⇄ラッソの対応 — L2正則化を回帰に適用した手法がリッジ回帰、L1正則化ならラッソ回帰です。この対応を入れ替えた選択肢が誤答の定番です
- 正則化(一般)との関係 — 正則化は過学習を防ぐ枠組みの総称で、L2はその代表的な一種です。「L2正則化=正則化のすべて」ではありません
- 「ペナルティは誤差に足すのではなく掛ける」は誤り — L2正則化は二乗和に正則化係数を掛けたものを損失関数に「加算」します
📝 試験でのポイント
- 「損失関数にパラメータの二乗和を加えて過学習を抑える手法はどれか」という定義問題が基本形です
- L1との対比で「重みが0になるか否か」「スパースになるか否か」を判定させる問題が最頻出です。L2は「0に近づくが0にならない」側です
- 「リッジ回帰とも呼ばれる」という別名の対応(L2=リッジ、L1=ラッソ)は確実に押さえましょう
- 「重みを小さく保つ→データの変動に敏感になりすぎない→汎化性能が上がる」という因果の流れを説明する記述の正誤判定が想定されます
📚 まとめ
L2正則化は、損失関数に重みの二乗和(L2ノルム)×正則化係数を加えることで、重みを小さく保ちモデルの複雑さを抑える正則化手法です。重みが小さいとモデルはデータの変動に過敏に反応せず、過学習が抑えられて汎化性能が向上します。L1と違って重みはちょうど0にはならず、すべての特徴量を少しずつ使う滑らかな解になります。回帰に適用した手法はリッジ回帰。「L2=二乗・縮めるが消さない・リッジ」で整理しておきましょう。
