はじめに
数学素人の「機械学習の学習」メモです。
今回は、リッジ回帰とラッソ回帰について、数学素人が「最短で」理解できることを目指しています。
※このグラフ↓をみて意味が理解できなかったので、素人なりに解釈を頑張ってみた記録です。
1. 過学習とは
過学習とは**「訓練データに対する誤差は小さいが、テストデータに対する誤差が大きい状態のこと」です。
機械学習では過学習がしばしばおこるらしいです。
我々は「未知のデータ」に対する誤差を小さくしたいので、訓練データに過度にフィット(過学習)しないように調整**する必要があります。
過学習状態の誤差関数
過学習となっている誤差関数は、グラフが大きく振れる形をとることが多いそうです。大きく振れる、ということは、重み(回帰係数)が大きい状態です。
過学習を抑えるためには、重みを小さくしたほうがよさそうです。
2. 正則化法
目的の関数(誤差関数)にペナルティ項を加えた関数を最小化する方法のことです。
ペナルティ項ですが、重みは小さいほうがよさそうなので、「重みの大きさに相当するもの(→ノルム)」を設定することにします。
ノルムとは
ベクトルの「大きさ」をざっくり表すものです。
【定義】
$$\vec{x} = (x_1, x_2, \dots, x_n) \hspace{10mm} 1 \leq p < \infty $$
に対し
$$(|x_1|^p + |x_2|^p + \dots + |x_n|^p)^{\frac{1}{p}}$$
を$\vec{x}$のLpノルムという。
L1ノルム、L2ノルム
L1ノルム
$$|x_1| + |x_2| + \dots + |x_n|$$
L2ノルム
$$\sqrt{|x_1|^2 + |x_2|^2 + \dots + |x_n|^2}$$
nが2の場合のL1ノルム、L2ノルムイメージがこちらです↓。 確かに大きさっぽいです。
3. リッジ回帰、ラッソ回帰
誤差関数$E$に正則化項を加えた、
$$ S = E + \lambda(Lpノルム) \lambdaは正則化パラメータ、\lambda>0$$
を考えます。この時、
- L1ノルムを使ったものがラッソ(Lasso)回帰
- L2ノルムを使ったものがリッジ(Ridge)回帰
となります。
4. そして、あのグラフの解釈
新たな関数
$$ S = E + \lambda(Lpノルム) \lambdaは正則化パラメータ、\lambda>0$$
のSが最小になる重みを考えます。重みWとして二次元(w1,w2)の場合で考えます。
正則化項の値の取り方
①誤差関数Eが最小の場合
②誤差関数Eが最小より少し大きい場合
誤差関数の最小値よりα(なんでもよい)だけ大きい場合の、w1,w2は複数考えられます。(みんな楕円で書いているので、きっとそうなるんだと思います。)
誤差関数が決まっているので、正則化項が小さいほど$S$が小さくなります。その楕円を形成するw1,w2の中で正則化項が最小になるところは、グラフの正方形・円が一番小さくなるw1,w2です。
正則化項が①の時より小さくなりました。もしかしたら①より②のほうが$S$が小さくなるかもしれません。
③誤差関数がもう少し大きい場合、を考えていくと…
以下のグラフになります。(見づらいですが)オレンジ色の線のどこかで、$S = E + \lambda(Lpノルム)$が最小となります。
結果
Sが最小となるところを表したグラフがこう↓なるよ、ということです。
5. リッジ回帰、ラッソ回帰の特性
(若干力尽きました…参考サイトをご覧ください)
【ラッソ回帰】
〇一部のパラメータがゼロになる。→特徴選択できる。
×微分できない(推定で求めるようです)
【リッジ回帰】
〇なめらかなモデルが得られる。
〇微分可能(解析的に解ける)
×パラメータはゼロにならないので、モデルが複雑になりやすい。
6. 参考にしたサイト
7. (蛇足)つぶやき
あのグラフ、3次元のものを2次元で表しているんですね。「誤差関数の等高線表示」とか書いてあって、筆者には???でした。
イメージわかない!と思っていたのですが、上記サイト3の資料で3次元で表したグラフがありました。(スライド44、49、50)
3次元派?の方にお勧めです。