ホーム » 機械学習 » 線形回帰とRidge回帰を数式からやる(理論編)

線形回帰とRidge回帰を数式からやる(理論編)

こんにちは。

正則化パート2ですね。前回の最後に

  1. Ridge Regression (Tikhonov regularization)
  2. Lasso Regression

を例に出しました。今回はこれらを用いて正則化について学びましょう。の前に線形回帰を思い出しましょう。その時に

    \[\texttt{minimize} | y - X\beta|^2\]

を考えて

    \[X(X^TX)^{-1}X^T\]

Xの列ベクトルが張る空間への射影行列をやりましたね。ここでXが正則ということなのでもう一歩踏み込みQR分解を行います。つまり

    \[X = QR ~~ s.t. ~~ Q^TQ = I ~~ , ~~ R~ \textrm{is upper triangular matrix}\]

を使うと

    \[(X^TX)^{-1}X^T = (R^TQ^TQR)^{-1}R^TQ^T = R^{-1}Q^T\]

とできます。わかったことは

Xの列ベクトルが張る空間への射影行列X(X^TX)^{-1}X^TQQ^Tとなるということ。超シンプル。これが線形回帰。で、これにL_2正則化項を加えます。つまり\lambda \in \mathbb{R}_+に対して

    \[\texttt{minimize} | y - X\beta|^2  + \lambda | \beta|_2^2\]

を考えます。これをリッジ回帰というのでしたね。ラッソはL_1正則化項を使います。

違いは?

正則化項のノルムです。L_2L_1の違いは?もう少し親しみある言い方だと距離と絶対値の違いは?

Answer: 微分可能性

L_1は微分できませんね。前回の図を思い出してください。L_1は尖っていました。

gists

勾配法は微分を使いましたね。なので一旦ラッソは無視してリッジについて学びましょう。

次の解を考えます。ただし\lambda > 0

    \[\beta = \texttt{argmin}_b { |y-Xb |^2_2 + \lambda|b|^2_2 }\]

「アーグミンb」は右辺を最小化するときのbということ。これを展開し、微分すると

    \[|y-Xb |^2_2 + \lambda|b|^2_2 &= (y-Xb)^T(y-Xb) + \lambda b^Tb\]

    \[= y^Ty -2y^TXb + b^TX^TXb + \lambda b^Tb\]

    \[\frac{\partial}{\partial b} \left( |y-Xb |^2_2 + \lambda|b|^2_2 \right) = -2X^Ty + 2X^TXb + 2\lambda b = 0\]

    \[\Leftrightarrow (X^TX + \lambda I)b = X^Ty\]

    \[\Leftrightarrow \beta = (X^TX + \lambda I)^{-1}X^Ty\]

これが欲しかった\betaですね。さっきのX(X^TX)^{-1}X^Tと似てませんか?邪魔なのは\lambdaの項。なのでここで\lambda \downarrow 0とするとさっきのと同じになります。だって元々のコスト関数の正則化項が0になるわけですからね。

 \lambda I、これ意味ある?

ここでX^TXは半正定値対称行列であり、実数値からなる対称行列は実数の固有値を持ちます。よってX^TXの固有値は0以上。行列式を計算して見よう。

    \[\det |X^TX + \lambda I - t I| = 0\]

    \[\det |X^TX - (t - \lambda) I| = 0\]

これを(\lambda -t)について解くとX^TXの固有値が求まりますね。そこでその固有値の一つをe_1とするとリッジ回帰における固有値はt = e_1 + \lambdaとなり、\lambda分シフトされていますね。つまり、行列式をゼロから遠ざけており正則をキープしてくれています。

逆に\lambda \uparrow \inftyとすると\beta \rightarrow 0となってしまいますね。これもまずい。

\lambdaをどうやって決めるか

これが問題ですね。これは交差検証で選ばれます。交差検証ってなんやあ??

K-fold cross validation

ですかね。これはデータn個をK等分割(5か10が一般)してモデルの汎化性能を評価するためにあります。しかしここではパラメータ\lambdaのベストチョイスのために使います。これはとても重要な概念なので次の記事で深く確認しましょう。今回は簡単な図を最後に見てお別れです。

でわ

READMORE


コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です