「訓練データでは高得点なのに本番では使い物にならない」——機械学習の宿敵・過学習に対する代表的な処方箋が正則化です。この記事ではL1・L2・ドロップアウトといった個別手法の親玉にあたる「正則化」という考え方そのものを解説します。
📖 ひと言でいうと
正則化とは、学習に使う式(損失関数)にペナルティ項を追加して、パラメータが大きくなりすぎないよう制約をかけることで、過学習を防ぐ手法の総称です。モデルが訓練データに過度に合わせ込むことを抑え、未知のデータでも通用する汎化性能を確保します。
例えるなら、テスト勉強で「過去問の答えの丸暗記」に走る生徒に、「暗記量に制限」をかけるようなものです。丸暗記が封じられると、生徒は仕方なく解き方の本質を理解しようとします。モデルも同じで、パラメータを自由に大きくできないと、訓練データのノイズまで記憶する芸当ができなくなり、データの本質的なパターンを学ばざるを得なくなるのです。
🖼 1枚でわかる正則化
📘 公式テキストの説明
学習の際に用いる式に正則化項を追加することで、パラメータ(通常は重みとバイアス)のノルムが大きくなりすぎないように制約をかける。これにより、モデルが訓練データに対してのみ過度に調整されること、すなわち過学習を防ぐ効果がある。この正則化項はL1正則化、L2正則化などがあり、それぞれ異なる制約をパラメータに課す。
「ノルム」とはパラメータの大きさを測る量のことです。つまり正則化とは「重みやバイアスの大きさに上限感覚を持たせる仕掛け」であり、その測り方の違い(絶対値の和か、二乗の和か)によってL1正則化・L2正則化と呼び分けられる、というのがこの説明の骨格です。
🔍 しっかり理解する
過学習はなぜ起こり、正則化はどこに効くのか
ディープラーニングのモデルは膨大なパラメータを持つため表現力が非常に高く、訓練データが限られていると、データに含まれる偶然のノイズまで忠実に再現してしまいます。これが過学習です。訓練データでの誤差は小さいのに、新しいデータでの誤差が大きい、という症状で現れます。
過学習したモデルの内部では、ノイズに合わせて予測を細かく曲げるために、一部の重みが極端な値を取っていることが多くあります。正則化は「大きな重みにはコストがかかる」というルールを学習に組み込むことで、この極端化を未然に防ぎます。
制約のかけ方で個性が分かれる
正則化項の設計にはいくつかの流儀があり、それぞれ効果の出方が異なります。
- L1正則化: 重みの絶対値の合計をペナルティにする。一部の重みがちょうど0になり、不要な特徴量を切り捨てるスパースなモデルが得られる。回帰に適用した手法はラッソ回帰
- L2正則化: 重みの二乗の合計をペナルティにする。重み全体がゼロに近づくよう滑らかに抑えられ、極端な値を持つパラメータが抑制される。回帰に適用した手法はリッジ回帰
- L0正則化: 0でない重みの個数そのものにペナルティをかける発想だが、計算コストが高く、実用ではL1で代替される
どのペナルティをどれくらいの強さでかけるかは正則化係数というハイパーパラメータで決まり、適切な値を見つけるには検証データでの試行錯誤が必要です。強すぎれば学習不足、弱すぎれば過学習と、さじ加減が要求されます。
ペナルティ項だけが正則化ではない
ディープラーニングでは、損失関数に項を足す方法以外にも過学習を防ぐ工夫が使われ、これらも広い意味で正則化と呼ばれます。代表がドロップアウトで、学習時にニューロンをランダムに無効化することで、特定のニューロンへの過度な依存を防ぎます。「正則化=過学習を防ぐための制約全般」という広い視点を持っておくと、シラバスの正則化の節にドロップアウトが含まれている理由も腑に落ちます。
💡 具体例で考える
多項式でデータ点をフィッティングする古典的な例が直感的です。10個のデータ点に9次の多項式を当てはめると、曲線はすべての点を完璧に通りますが、点と点の間で大きく暴れ、新しい点はまるで当てられません。このとき係数(重み)を見ると、プラスとマイナスの巨大な値が交互に並んでいます。L2正則化を入れて学習し直すと、係数は小さな値に抑えられ、曲線はデータの大まかな傾向をなぞる滑らかな形になります。「重みの暴走を止める=曲線の暴れを止める」という正則化の本質が目に見える例です。
ニューラルネットワークでも事情は同じで、画像分類モデルの学習では重み減衰(L2正則化に相当)とドロップアウトを併用して過学習を抑えるのが定番の構成になっています。
⚠️ よくある誤解・紛らわしい用語
- 「正則化=L1・L2のこと」という狭い理解 — L1・L2は代表例にすぎません。ドロップアウトのようにペナルティ項を使わない手法も、過学習を防ぐ広義の正則化に含まれます
- 標準化・正規化との混同 — 名前が似ていますが別物です。正規化(Normalization)や標準化はデータの尺度を揃える前処理、正則化(Regularization)はモデルの複雑さを抑える学習時の制約です
- 「正則化は精度を上げる魔法」ではない — 正則化は訓練データへの適合度をあえて犠牲にして汎化を取る取引です。強すぎれば必要なパターンまで学べなくなります
- 「過学習してから使うもの」ではない — 正則化は学習の仕組みに最初から組み込む予防策です。学習後に後付けするものではありません
📝 試験でのポイント
- 「損失関数に正則化項を追加してパラメータのノルムに制約をかけ、過学習を防ぐ手法」という定義の穴埋め・正誤判定が基本形です
- 正則化の目的として「汎化性能の向上」を選ばせる問題が想定されます。「訓練誤差の最小化」は目的ではない点に注意しましょう
- L1・L2・ドロップアウトを「いずれも過学習対策」とまとめたうえで、各論の違い(0にする/小さくする/ニューロンを無効化)を判別させる問題に備えましょう
- 「正規化(データの前処理)」との用語の混同を突く選択肢は定番の引っかけです
📚 まとめ
正則化は、損失関数に正則化項を追加してパラメータのノルムが大きくなりすぎないよう制約をかけ、過学習を防ぐ手法の総称です。制約の測り方によってL1正則化(重みを0にしスパース化)やL2正則化(重みを滑らかに縮小)に分かれ、広義にはドロップアウトなども含まれます。強さの調整はハイパーパラメータとして試行錯誤が必要です。「暗記を制限して本質を学ばせる仕掛け」という一言で覚えておきましょう。
