お気持ち練習帳

気持ちの整理や数学等の書きたいことを書きます

Lasso回帰とRidge回帰の幾何的説明

はじめに

図1

機械学習のモデルを作成する際に、過学習を防ぐ等の目的で正則化項を損失関数に加えることがあります。 その代表的なモデルとして、Lasso回帰とRidge回帰の2つがあり、それらの違いを説明する図として図1がよく登場します。

初めてこの図を見たとき、「 L _ 1ノルムと L _ 2ノルムを使ってるからひし形と丸が出てきて、たしかにLassoの方がひし形の頂点に当たりやすそうだから係数が 0になりやすいのかな」と思いました。 ふと最近、またこの図を見たときに、「え?Lassoの損失関数最小化と図1って違うこと言ってるよね?なんで同じなの?」とか「ひし形とか丸の大きさってどうやって決めてるの?ハイパーパラメータじゃないよね?」等々の疑問が出てきました。 特に、以下の問題がわかりませんでした。

  • Lasso回帰とRidge回帰の最小解は図1の赤丸の部分となる

考えてすぐにわかったのなら良かったのですが、わかるまでにかなり時間がかかったり、上記の問題の答えがまとまったものを見つけられなかったので、備忘録的な意味も含めて記事を書きました。

Lasso回帰とRidge回帰の幾何的説明

まずは問題設定をきちんと述べるために、記号を準備します。  n, k \geq 1を整数とし、 \boldsymbol{y} \in \mathbb{R} ^ n, X \in M _ {n, k}(\mathbb{R}), \boldsymbol{\beta} = (\beta _ 1, \cdots , \beta _ k) ^ {\top} \in \mathbb{R} ^ kとし、 \lambda > 0, p \geq 1を実数とする。

 
\begin{aligned}
f(\boldsymbol{\beta}) := (\boldsymbol{y} - X \boldsymbol{\beta}) ^ {\top} (\boldsymbol{y} - X \boldsymbol{\beta}) \\
g _ p(\boldsymbol{\beta}) := \sum _ {i=1} ^ {k} | \beta _ {i} | ^ p \\
L _ p(\boldsymbol{\beta}) := f(\boldsymbol{\beta}) + \lambda g _ p(\boldsymbol{\beta}) \\
Q _ p := \mathop{\rm argmin}\limits _ {\boldsymbol{\beta} \in \mathbb{R} ^ k} L _ p(\boldsymbol{\beta})
\end{aligned}

このとき、 Q _ 1を求めるのがLasso回帰で、 Q _ 2を求めるのがRidge回帰にあたります。  \mathop{\rm argmin}の定義に関しては、以下のページを参照ください。

manabitimes.jp

ここで、Lasso回帰とRidge回帰の幾何的説明するための命題を1つ用意する。

命題.  Q _ p \neq \emptysetと仮定する。  \boldsymbol{\beta} ^ {*} \in Q _ pに対して、 \eta = g _ p(\boldsymbol{\beta} ^ {*})とおき、 C _ {\eta} = \{ \boldsymbol{\beta} \in \mathbb{R} ^ k \mid g _ p(\boldsymbol{\beta}) \leq \eta \}とおく。 このとき、次が成り立つ。
 
\begin{aligned}
\boldsymbol{\beta} ^ {*} \in \mathop{\rm argmin}\limits _ {\boldsymbol{\beta} \in C _ {\eta}} f(\boldsymbol{\beta}).
\end{aligned}

命題1を使用して、図1のLasso回帰の赤丸がLasso回帰の最小解になることを説明をする。  k = 2, p = 1とする。 Lasso回帰に最小解が存在することは仮定し、それを \boldsymbol{\beta} ^ {*} = (\beta_1 ^ {*}, \beta_2 ^ {*})とおく。 命題1より、 (\beta _ 1 ^ {*}, \beta _ 2 ^ {*})は、 g _ 1(\beta _ 1, \beta _ 2) \leq \etaとなるひし形領域内で、 f(\beta _ 1, \beta _ 2)の最小値となる。 さらに g _ 1(\beta _ 1 ^ {*}, \beta _ 2 ^ {*}) = \etaとなるため、 (\beta _ 1 ^ {*}, \beta _ 2 ^ {*})はひし形領域上の境界線上にある。  (\beta _ 1 ^ {*}, \beta _ 2 ^ {*})は、 f(\beta _ 1, \beta _ 2)の最小値なので、 f(\beta _ 1, \beta _ 2)の等高線を値が小さい方から考えて、初めてひし形領域上の境界線上を交わった点(の内の1つ)が (\beta _ 1 ^ {*}, \beta _ 2 ^ {*})である。

命題の証明

 g _ p (\boldsymbol{\beta})は連続関数のため、 C _ {\eta}閉集合となる。 また、 C _ {\eta}は定義より有界なので、 C _ {\eta}はコンパクト集合である。  f(\boldsymbol{\beta})は連続関数のため、 \mathop{\rm argmin} _ {\boldsymbol{\beta} \in C _ {\eta}} f(\boldsymbol{\beta}) \neq \emptysetとなる。

 \boldsymbol{\beta} ^ {*} \notin \mathop{\rm argmin} _ {\boldsymbol{\beta} \in C _ {\eta}} f(\boldsymbol{\beta})と仮定する。 そのとき、 f(\hat{\boldsymbol{\beta}}) \lt f(\boldsymbol{\beta} ^ {*})となる \hat{\boldsymbol{\beta}} \in \mathop{\rm argmin} _ {\boldsymbol{\beta} \in C _ {\eta}} f(\boldsymbol{\beta})が存在する。

 
\begin{aligned}
L _ p (\hat{\boldsymbol{\beta}}) &= f(\hat{\boldsymbol{\beta}}) + \lambda g _ p(\hat{\boldsymbol{\beta}}) \\
&<  f(\boldsymbol{\beta} ^ {*}) + \lambda \eta \\
&= f(\boldsymbol{\beta} ^ {*}) + \lambda g _ p(\boldsymbol{\beta} ^ {*}) \\
&= L _ p (\boldsymbol{\beta} ^ {*})
\end{aligned}

したがって、 \boldsymbol{\beta} ^ {*} \notin Q _ pとなるため矛盾する。

この命題の証明は、以下ページの議論を参考にして証明した。 stats.stackexchange.com

おわりに

この他にも、LassoやRidgeでわかっていることは調べた感じたくさんありそうでした。 例えば、

  • 命題1の仮定 Q _ p \neq \emptysetは成立する
  • 命題1で定めた \eta \boldsymbol{\beta}によらず一意に定まる

などなど。 時間があれば、それらの証明も書いていきたいと思います。