過学習を防ぐ『正則化』はDLの必須技術。L1/L2正則化とドロップアウトの違いを押さえましょう。
過学習って、訓練データを覚えすぎちゃう現象のことだよね?
そう。
過学習(Overfitting) を防ぐ技術が正則化(Regularization)。
いくつか手法があるわ。
まずL1正則化(Lasso) とL2正則化(Ridge)。
損失関数にパラメータのノルムを加えて、過度に大きな重みを罰するの。
L1とL2って、どう違うんですかぁ?
L1はパラメータの絶対値の和、L2は二乗和。
L1は多くのパラメータをゼロに押しつぶすスパース性を生み出し、L2は全体的に小さく保つ効果があるわ。
L1は特徴量選択の効果があるので、不要な特徴量を自動で除外したい時に便利。
L2はweight decay(重み減衰) と呼ばれ、DLで広く使われるの。
へぇ〜、役割が全然違うんだね!
DL専用の強力な手法がドロップアウト(Dropout)。
学習時にニューロンをランダムに無効化する技術で、2014年にヒントンらが提案したわ。
確率p (例えば0.5) でニューロンを『ドロップ』することで、ネットワークが一部のニューロンに依存しすぎるのを防ぐ。
アンサンブル学習の効果に似ているわ。
ランダムにお休みさせちゃうんですかぁ?
おもしろ〜い♪
重要なのは推論時にはドロップアウトを使わないこと。
代わりに全ニューロンの出力をスケーリングするのよ。
他の正則化には早期終了(Early Stopping)、データ拡張、バッチ正規化などがあるわ。
早期終了って、途中で学習を打ち切っちゃうってこと?
そう。
検証データの損失が下がり続けている間は学習を続け、上昇に転じたら停止する。
過学習の兆候が見えたら止める賢い方法ね。
過学習と戦う武器、こんなにあるんだ!
G検定では『L1・L2正則化』『ドロップアウト(ヒントン, 2014)』『早期終了』はしっかり押さえておいてね!
確認クイズ
深層学習で学習時にニューロンをランダムに無効化することで過学習を防ぐ手法はどれか。
- ドロップアウト
- L1正則化
- バッチ正規化
- モメンタム
こたえを見る
正解: 1. ドロップアウト
ドロップアウト (Dropout)は、学習時にニューロンを確率的にランダム無効化する正則化手法です。2014年にヒントンらが提案し、DLの定番技術となりました。