はしくれエンジニアもどきのメモ

情報・Web系技術・Englishの勉強メモ・備忘録です。

リッジ回帰(Ridge Regression)の正規方程式を導出

リッジ回帰(Ridge Regression)の正規方程式を導出

リッジ回帰(Ridge Regression)の正規方程式を導出するメモ. L2ノルムの2乗により微分が容易にできるので解析解として導出できる.

回帰モデルの定義

観測データの標本の大きさを$N$, データ$x$の特徴量をd次元とし, $i$番目の出力値$y_{i}$の回帰モデルは, 重み$w$で表すと,


\begin{eqnarray}
y_{i} = w_{0} + w_{1}x_{i1} + w_{2}x_{i2} + \cdots + w_{d} x_{id}
\end{eqnarray}

右辺をベクトル・行列で表すと,


\begin{eqnarray}
y_{i} =
\begin{pmatrix}
1 & x_{i1} & x_{i2} & \cdots & x_{id}
\end{pmatrix}
\begin{pmatrix}
w_{0} \\
w_{1} \\
w_{2} \\
\vdots \\
w_{d}
\end{pmatrix}
\end{eqnarray}

標本の大きさN個分の出力に拡張する.


\begin{eqnarray}
\begin{pmatrix}
y_{1} \\
\vdots \\
y_{i} \\
\vdots \\
y_{N}
\end{pmatrix}
=
\begin{pmatrix}
w_{0} + w_{1}x_{11} + w_{2}x_{12} + \cdots + w_{d} x_{1d}\\
\vdots \\
w_{0} + w_{1}x_{i1} + w_{2}x_{i2} + \cdots + w_{d} x_{id} \\
\vdots \\
w_{0} + w_{1}x_{N1} + w_{2}x_{N2} + \cdots + w_{d} x_{Nd}
\end{pmatrix}
\end{eqnarray}

ベクトル・行列で表現すると,


\begin{eqnarray}
\begin{pmatrix}
y_{1} \\
\vdots \\
y_{i} \\
\vdots \\
y_{N}
\end{pmatrix}
&=&
\begin{pmatrix}
1 & x_{11} & x_{12} & \cdots & x_{1d}\\
\vdots & \vdots & \vdots &\vdots &\vdots \\
1 & x_{i1} & x_{i2} & \cdots & x_{id}\\
\vdots & \vdots & \vdots &\vdots &\vdots \\
1 & x_{N1} & x_{N2} & \cdots & x_{Nd}
\end{pmatrix}
\begin{pmatrix}
w_{0} \\
w_{1} \\
w_{2} \\
\vdots \\
w_{d}
\end{pmatrix} \\\\
\vec{y} &=& \mathbf{X}\vec{w} \\\\
\end{eqnarray}

Xはデータ行列で$N \times (d+1)$行列になる.


\begin{eqnarray}
\mathbf{X}_{N \times (d+1)}
=
\begin{pmatrix}
1 & x_{11} & x_{12} & \cdots & x_{1d}\\
\vdots & \vdots & \vdots &\vdots &\vdots \\
1 & x_{i1} & x_{i2} & \cdots & x_{id}\\
\vdots & \vdots & \vdots &\vdots &\vdots \\
1 & x_{N1} & x_{N2} & \cdots & x_{Nd}
\end{pmatrix}
\end{eqnarray}

重みベクトルの$w_{0}$は定数バイアスになる.


\begin{eqnarray}
\vec{w}
=
\begin{pmatrix}
w_{0} \\
w_{1} \\
w_{2} \\
\vdots \\
w_{d}
\end{pmatrix} \\\\
\end{eqnarray}

重みの導出

誤差関数は,予測誤差のL2ノルムの二乗,ペナルティ項も重みのL2ノルムの二乗になる. alphaは重みベクトルのL2ノルムを予測誤差に対してどのくらい考慮するかでハイパーパラメータになる.


\begin{eqnarray}
E
&=&
||\vec{y} - \mathbf{X}\vec{w}||^2_2 + \alpha  ||\vec{w}||^2_2 \\
&=& (\vec{y} - \mathbf{X}\vec{w})^{T}(\vec{y} - \mathbf{X}\vec{w}) + \alpha \vec{w}^{T}\vec{w} \\
&=& (\vec{y}^{T} - \vec{w}^{T}\mathbf{X}^{T})(\vec{y} - \mathbf{X}\vec{w}) + \alpha \vec{w}^{T}\vec{w} \\
&=& \vec{y}^{T}\vec{y} - \vec{y}^{T}\mathbf{X}\vec{w}  - \vec{w}^{T}\mathbf{X}^{T}\vec{y} + \vec{w}^{T}\mathbf{X}^{T}\mathbf{X}\vec{w} + \alpha \vec{w}^{T}\vec{w} \\
&=& \vec{y}^{T}\vec{y} - 2\vec{w}^{T}\mathbf{X}^{T}\vec{y} + \vec{w}^{T}\mathbf{X}^{T}\mathbf{X}\vec{w} + \alpha \vec{w}^{T}\vec{w} \\
\end{eqnarray}

重みベクトルで微分して0とおく.


\begin{eqnarray}
\frac{\partial E}{\partial \vec{w}} &=& 0 \\
-2\mathbf{X}^{T}(\vec{y} - \mathbf{X}\vec{w}) + 2\alpha \vec{w} &=& 0\\
-\mathbf{X}^{T}\vec{y} + \mathbf{X}^{T}\mathbf{X}\vec{w} + \alpha \vec{w}&=& 0 \\
\mathbf{X}^{T}\mathbf{X}\vec{w} + \alpha \mathbf{I} \vec{w}&=& \mathbf{X}^{T}\vec{y} \\
(\mathbf{X}^{T}\mathbf{X}+ \alpha \mathbf{I}) \vec{w}&=& \mathbf{X}^{T}\vec{y} \\
\vec{w}&=&(\mathbf{X}^{T}\mathbf{X}+ \alpha \mathbf{I})^{-1} \mathbf{X}^{T}\vec{y} \\
\end{eqnarray}

$\alpha \mathbf{I}$の項により,逆行列の中のグラム行列にハイパーパラメータ分下駄が履かせられるので 重みベクトル$\vec{w}$の値は小さくなる.