Ch.11

正則化:暗記の限界を超えて

モデルが問題集の答えを丸暗記する「暗記王」にならないようにするための核となる技術です。訓練データに合わせすぎると、少し違う新問が出ただけで崩れてしまいます。これが過学習(Overfitting)です。正則化(Regularization)は、データの誤差を減らしつつ、「複雑で無理やりな式を作らせない」ためのペナルティ(罰則)を加えます。枝葉を落とし本当に重要なパターンだけを学ばせることで、実戦(一般化)に強いモデルを作ります。

チャプター別 機械学習図

チャプターを選ぶと、下の図がそのチャプターの内容に切り替わります。機械学習の流れを一覧で確認できます。

データの誤差だけでなく「モデルが複雑になりすぎること」にペナルティを加え、暗記ではなく一般化するモデルにします。

正則化なし過学習正則化あり一般化
① 正則化なし — 訓練損失だけを減らすと過学習
② 正則化 — 損失 = データ損失 + λ×ペナルティ。λが大きいと重みが抑制される
③ L2 — ペナルティ wj2\sum w_j^2 で重みを小さく保つ
④ L1 — ペナルティ wj\sum |w_j| で一部の重みを0に(スパース)
⑤ 一般化 — 適切なλで訓練・検証ともによく当たるモデルを得る

正則化:損失+λ·ペナルティで過学習を抑え一般化を高める。

正則化:暗記の限界を超えて

正則化とは? 複雑さへの「罰則」
モデルが訓練データの細かいノイズや例外まで無理に合わせようとすると、式がぐにゃぐにゃして不要に複雑になります。正則化では総損失(Loss)を、「正解とどれだけ違うか(誤差)」だけでなく「モデルがどれだけ複雑か(重みの大きさ)」も足して罰則にします。罰則を避けたいモデルは、自然とより単純で整理された形を保ちます。
直感的な比喩:一夜漬け暗記王 vs 原理を掘る生徒
問題集(訓練データ)の数字まで丸暗記した一夜漬け生徒は模試では100点でも、本番(新しいデータ)では大敗します。一方、原理を理解した生徒は模試で一二問間違えても、本番では崩れず高得点です。正則化はモデルに「枝葉(過剰な重み)を切り落とし、太い幹(本質的なパターン)だけ見ろ」と強制し、実戦でのしなやかさを育てる先生のような役割をします。
数式の形:二つの「魔法の式」(L1とL2)
正則化は、モデルに罰則を課すやり方で大きく二種類に分かれます。
- L2(Ridge):重みの二乗を罰則に使います。目的関数は J=MSE+λjwj2J = \text{MSE} + \lambda \sum_{j} w_j^2 です。重みが大きくなりすぎるのを、まんべんなく穏やかに押さえます。
- L1(Lasso):重みの絶対値を罰則に使います。目的関数は J=MSE+λjwjJ = \text{MSE} + \lambda \sum_{j} |w_j| です。重要でない特徴の重みを0にし、重要な特徴だけ残す(スパース)性質があります。
身近な例:スパムフィルタと医療診断
スパムフィルタでは、訓練スパムに偶然含まれていた普通の語(「こんにちは」など)に高い重みをつけると、正常メールまでスパム扱いする大失敗をします。正則化をかけると、一つの語に固執する(重みが爆発する)のを防げます。医療診断でも、多数の患者データのうち「患者服の色」のような無意味な情報にAIが騙されないようにするのに役立ちます。
数式の読み方:初心者向け解剖
- 総損失(L2の例)J=MSE+λjwj2J = \text{MSE} + \lambda \sum_{j} w_j^2
- JJ:最終的にできるだけ小さくしたい「最終成績表」です。小さいほど良いモデルです。
- MSE\text{MSE}:予測と正解がどれだけ違うかを示す「誤差の点数」です。
- λ\lambda(ラムダ):私たちが決める「罰則の強さ」です。大きくすると厳しい先生のように複雑なモデルに重い罰則を課し、小さくするとほとんど課しません。
- jwj2\sum_{j} w_j^2(L2ペナルティ):モデルが持つ全重みwwを二乗して足した値です。重みが少しでも大きくなるとこの値が一気に増えてJJが大きくなるので、モデルは重みを小さく保とうとします。
- L1ペナルティ(λjwj\lambda \sum_{j} |w_j|
- L2が二乗を使うのに対し、L1は重みの絶対値wj|w_j|を使います。L1は厳しい整理整頓係のように、不要な重みを容赦なく0にします。
実戦(一般化)性能が本当の目標だから
機械学習の真価が発揮されるのは練習中ではなく、「初めて見るデータ(テストデータ)」に会ったときです。正則化をかけると訓練データでの精度は少し落ちることがありますが、実戦での精度は上がります。こうした未知データにもうまく対応する力を一般化(Generalization)といいます。
バランスの美学:バイアス・分散トレードオフ
モデルが単純すぎると問題を解けないバイアス(未学習)が大きくなり、複雑すぎるとノイズまで覚える分散(過学習)が大きくなります。この二つはシーソーで、一方が下がれば一方が上がります。正則化の強さλ\lambdaを調節するのは、このシーソーの水平(バランス点)を探す作業です。
人間の役割:λ\lambda(ハイパーパラメータ)を決める
λ\lambdaはモデルが自分で学習する値ではなく、人が直接セットするダイヤル(ハイパーパラメータ)です。ダイヤルを強くしすぎるとモデルが役立たずになり、弱すぎるとまた暗記王に戻ります。だから複数のλ\lambdaを試し、実戦で一番成績の良い値を見つけることが欠かせません。
基本モデルに翼をつける(Ridge & Lasso)
よく使う線形回帰ロジスティック回帰の式の末尾に、今学んだL1・L2の罰則をちょっと足すだけです。
- 線形回帰 + L2 = Ridge回帰
- 線形回帰 + L1 = Lasso回帰
計算機が罰則込みの総損失を減らす方向(勾配降下など)で学習し、重みを調整してくれます。
実務での3段階パイプライン
実務では次の順で正則化を扱います。
1. データ分割:データを[訓練用/検証用/テスト用]に分けます。
2. λ\lambdaオーディションλ\lambdaを0.01, 0.1, 1, 10などいろいろ変え、訓練データで複数モデルを作ります。
3. 勝者選出と実戦投入:検証データで試験し、一番点数の高いλ\lambdaのモデルを本採用にします。最後にテストデータで一度だけ最終実力を評価します。
正則化は過学習を抑えるため、損失にペナルティを足す方法です。
総損失=データ損失+λ×ペナルティ。λが大きいほど重みが抑制されモデルは単純に。L2は重みの二乗和、L1は絶対値の和でスパースな重みになり得る。実務ではRidge(L2)Lasso(L1)を線形・ロジスティック回帰に適用し、λは交差検証で選ぶ。