【せいそくか】

正則化 とは?

最終更新:
💡 訓練データへの合わせすぎを抑える工夫

機械学習で過学習を抑え、未知のデータへの当てはまりを改善するための手法。パラメーターへの罰則や学習の早期停止などを使う。

📌 このページのポイント
合わせすぎを抑える:効果は検証する点を追いすぎる例当てはめを抑えた例罰則を足す例最小化するもの = 損失 + λ × 罰則λで当てはめと罰則のバランスを調整L1(Lassoの例)重みの絶対値の和ゼロが多い解を促すL2(Ridgeの例)重みの二乗の和大きい重みを抑える別の方法:早期停止検証データの損失などを監視して止める強すぎる制約は、学習不足にもつながる
曲線は計算結果ではなく、当てはめ方の模式例。λは0以上の強さを表し、実装のパラメーター名や指定方法は異なります。未知のデータでの改善は検証が必要です。
ひよこ ひよこ
正則化は何のためにあるの?
ペンギン先生 ペンギン先生
訓練データに合わせすぎて、新しいデータでうまく働かない過学習を抑えるためだよ。訓練データの誤差を減らすだけでなく、未知のデータでも役立つモデルを目指すんだ。正則化を入れれば必ず良くなる、というわけではないよ。
ひよこ ひよこ
どうやって合わせすぎを抑えるの?
ペンギン先生 ペンギン先生
代表的な方法は、訓練データの損失に重みへの罰則を足して、その合計を小さくすること。図の「損失+λ×罰則」では、λが両者のバランスを調整するんだ。罰則の形や強さによって学ばれる解が変わるよ。
ひよこ ひよこ
L1とL2は何が違うの?
ペンギン先生 ペンギン先生
L1は重みの絶対値の和、L2は重みの二乗の和を罰則にする。線形回帰のLassoはL1で、一部の重みをゼロにする疎な解を促すよ。RidgeはL2で、大きい重みを抑えるけど、L1のように疎な解を狙うものではない。ゼロになった特徴が現実でも必ず不要だ、と証明するわけでもないんだ。
ひよこ ひよこ
どのくらい強くすればいい?
ペンギン先生 ペンギン先生
弱すぎれば過学習が残り、強すぎれば必要な関係まで学べなくなることがある。検証データや交差検証で候補を比べて選ぶんだ。強さの指定方法は実装によって違い、scikit-learnのRidgeやLassoではalphaを使う。L1とL2を組み合わせるElastic-Netもあるよ。
ひよこ ひよこ
罰則を足す方法だけなの?
ペンギン先生 ペンギン先生
ほかに早期停止もあるよ。検証データの損失などを監視し、過学習が進む前に学習を止める方法なんだ。停止時点も調整の対象なので、訓練データへの当てはまりだけで良し悪しを決めないことが大切だよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「正則化」って出てきたら「訓練データへの合わせすぎを抑える工夫」と思えばだいたいOK!
📖 おまけ:英語の意味
「Regularization」 = 正則化
💬 機械学習では、学習に制約を加えて過学習を抑える方法を指すよ。罰則を追加する方法だけでなく、早期停止などもあるんだ。

参考資料

← 用語集にもどる