読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】L1正則化で重みがちょうど0になるのはなんで?L2・ドロップアウトとの違い【G検定】

11レスカテゴリ:AI・機械学習
1: 名無しさん

正則化の種類、L0・L1・L2・ドロップアウトの違いがあいまい
L1だと重みがちょうど0になるって聞いたけど、なんで?

2: 名無しさん

前提のおさらい。過学習は、学習データには合ってるのに新しいデータで外れること。ホールドアウト検証や交差検証で、学習に使ってないデータで確かめると見つかる

3: 名無しさん

>>1
正則化は、誤差関数に「重みが大きいことへの罰」を足して、モデルが複雑になりすぎるのを抑える

は罰の強さ

4: 名無しさん

>>3
罰の種類
L0正則化:0でない重みの数
L1正則化:重みの絶対値の合計
L2正則化:重みの2乗の合計
重み (3, 0.1) なら、L1は 、L2は 。L2は大きい重みを特に強く罰する

5: 名無しさん

>>4
L0がいちばん分かりやすいのに、なんでL1やL2を使うん?

6: 名無しさん

>>5
L0は「0かどうか」の数やから、なめらかでなくて微分が使えん。どの重みを0にするかの組み合わせを全部試すことになって、重みが多いと計算できん

7: 名無しさん

L1で0になる理由は、重み1つの簡単な例で分かる
「 + 罰」を最小にする は
L2(罰 ):。 なら の半分。小さくはなるけど0にはならん
L1(罰 ): なら 、それより大きければ から を引く。 で なら0、 なら1.5

8: 名無しさん

>>7
L1の罰は、重みが0に近くても同じ強さで引っぱる。L2の罰の引っぱりは重みに比例するから、0に近づくほど弱くなる。この違いで、L1だけがちょうど0にできる

9: 名無しさん

>>8
線形回帰でいえば、L1をつけたのがラッソ回帰、L2をつけたのがリッジ回帰
ラッソは使わない変数の係数を0にするから、変数選びも一緒にやってくれる。リッジは全部の係数を少しずつ縮めて、相関の強い変数があっても安定する

10: 名無しさん

ドロップアウトは、学習のたびに隠れ層のユニットをランダムに一部止める
止める確率を0.5にすると、毎回違う半分のネットワークで学習することになって、特定のユニットに頼りすぎるのを防ぐ。たくさんのネットワークを平均するのに近い効果がある

11: 名無しさん

>>10
予測のときは全部のユニットを使うから、学習のときと出力の大きさが変わってまう
よくあるやり方は、学習のときに残ったユニットの出力を 倍にしておくこと。そうすれば予測のときはそのまま使える

管理人のひとこと