LoginSignup
127
111

More than 3 years have passed since last update.

最短でリッジ回帰とラッソ回帰を説明(機械学習の学習 #3)

Posted at

はじめに

数学素人の「機械学習の学習」メモです。
今回は、リッジ回帰とラッソ回帰について、数学素人が「最短で」理解できることを目指しています。
※このグラフ↓をみて意味が理解できなかったので、素人なりに解釈を頑張ってみた記録です。
リッジラッソ1.png

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ノルムイメージがこちらです↓。 確かに大きさっぽいです。
リッジラッソ2.png

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)の場合で考えます。

正則化項の値の取り方

リッジラッソ3.png

①誤差関数Eが最小の場合

正則化項を表す正方形/円を記載しています。
リッジラッソ4.png

②誤差関数Eが最小より少し大きい場合

誤差関数の最小値よりα(なんでもよい)だけ大きい場合の、w1,w2は複数考えられます。(みんな楕円で書いているので、きっとそうなるんだと思います。)
誤差関数が決まっているので、正則化項が小さいほど$S$が小さくなります。その楕円を形成するw1,w2の中で正則化項が最小になるところは、グラフの正方形・円が一番小さくなるw1,w2です。
リッジラッソ5.png
正則化項が①の時より小さくなりました。もしかしたら①より②のほうが$S$が小さくなるかもしれません。

③誤差関数がもう少し大きい場合、を考えていくと…

以下のグラフになります。(見づらいですが)オレンジ色の線のどこかで、$S = E + \lambda(Lpノルム)$が最小となります。
リッジラッソ6.png

結果

Sが最小となるところを表したグラフがこう↓なるよ、ということです。
リッジラッソ1.png

5. リッジ回帰、ラッソ回帰の特性

(若干力尽きました…参考サイトをご覧ください)

【ラッソ回帰】
〇一部のパラメータがゼロになる。→特徴選択できる。
×微分できない(推定で求めるようです)

【リッジ回帰】
〇なめらかなモデルが得られる。
〇微分可能(解析的に解ける)
×パラメータはゼロにならないので、モデルが複雑になりやすい。

6. 参考にしたサイト

  1. 機械学習はじめよう 第9回 線形回帰[後編]
  2. 高校数学の美しい物語 ノルムの意味と、L1、L2、L∞ノルム
  3. PRMLの線形回帰モデル
  4. 回帰モデルにおけるL1正則化とL2正則化の効果

7. (蛇足)つぶやき

あのグラフ、3次元のものを2次元で表しているんですね。「誤差関数の等高線表示」とか書いてあって、筆者には???でした。
イメージわかない!と思っていたのですが、上記サイト3の資料で3次元で表したグラフがありました。(スライド44、49、50)
3次元派?の方にお勧めです。

127
111
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
127
111