📌 過学習(オーバーフィッティング)とは?
🧠 一言で言うと…
モデルが「訓練データを覚えすぎてしまって、新しいデータに弱くなる」こと!
📉 なぜ悪いの?
- 訓練データには強いけど、テストデータや実際のデータには弱い。
- テストでは良い点が取れない、本番に弱い生徒のような状態。
🎲 例え話で理解!
あなたが漢字テストを勉強しているとします。
- 「出題される例文」を丸暗記してしまえば、テストでは高得点が取れるかも。
- でも、「見たことのない文」では答えられない…。
これが過学習です!
⚠️ 過学習が起きやすいケース
- データ量が少ない
- 特徴量(説明変数)が多すぎる
- モデルが複雑すぎる(パラメータが多すぎ)
🔧 正則化(せいそくか)とは?
✨ 一言で言うと…
モデルが「覚えすぎないように制限をかける」テクニック!
💬 正則化をする理由
- モデルが複雑すぎると過学習しやすい
- 正則化でモデルに「罰則(ペナルティ)」を与えて、シンプルにする
🧠 イメージ
「細かすぎることまで覚えないで!」
「テストに出そうなところだけに集中して!」
とモデルに言ってあげること。
🛠 正則化の仕組み
学習時に使う「損失関数(エラー)」に、ペナルティ項(正則化項)を追加する。
最小化するもの = 誤差 + 正則化項
✅ よく使われる正則化の種類
| 種類 | 特徴 | 効果 |
|---|---|---|
| L1正則化 | 重みの絶対値の合計 | 不要な特徴量を0にして削除(特徴選択) |
| L2正則化 | 重みの2乗の合計 | 大きな重みを抑える(なだらかなモデルに) |
| L0正則化 | 重みの「数」に罰則をかける | 理想的だけど計算コストが高い |
🔄 過学習 vs 正則化 まとめ
| 過学習(Overfitting) | 正則化(Regularization) |
|---|---|
| モデルが覚えすぎる状態 | 覚えすぎを防ぐ仕組み |
| 訓練データに強いが本番に弱い | モデルをシンプルにして本番に強くする |
| 複雑なモデルや特徴量が多いと起きやすい | モデルにペナルティを与えて調整する |
💡 ポイント
- 過学習を防ぐには、正則化以外にも以下の対策が有効:
- データ量を増やす(データ拡張など)
- 特徴量を減らす(スパース化)
- モデルの複雑さを調整する
- クロスバリデーションを行う
📖 一言まとめ
過学習:覚えすぎたモデルはテストで失敗する!
正則化:覚えすぎを防ぐ「ブレーキ」のようなもの!