正規方程式(最小二乗法)を導出してみる

最小二乗法でポイントなる正規方程式の導出を残しておきます。すぐ忘れてしまうので。。。

前提として、

  • $n$はサンプル数。
  • $d$は特徴量ベクトルの次元数。
  • $\vec{y}$はターゲットで$(n \times 1)$のベクトル。
  • $\vec{\tilde{X}}$は特徴量で$(n \times d)$の行列。
  • $\vec{w}$はパラメータで$(d \times 1)$のベクトル。

です。

最小二乗法では、関数とターゲットとの差の二乗の和を最小化したいため、その値を$E(\vec{w})$とします。

$$\begin{eqnarray}
E(\vec{w})&=&|\vec{y}-\vec{\tilde{X}}\vec{w}|^2\tag{1}\\
&=&(\vec{y}-\vec{\tilde{X}}\vec{w})^T(\vec{y}-\vec{\tilde{X}}\vec{w})\tag{2}\\
&=&\vec{y^T}\vec{y}-\vec{y^T}\vec{\tilde{X}}\vec{w}-\vec{w^T}\vec{\tilde{X^T}}\vec{y}+\vec{w^T}\vec{\tilde{X^T}}\vec{\tilde{X}}\vec{w}\tag{3}\\
&=&\vec{y^T}\vec{y}-(\vec{y^T}\vec{\tilde{X}}\vec{w})^T-\vec{w^T}\vec{\tilde{X^T}}\vec{y}+\vec{w^T}\vec{\tilde{X^T}}\vec{\tilde{X}}\vec{w}\tag{4}\\
&=&\vec{y^T}\vec{y}-\vec{w^T}\vec{\tilde{X^T}}\vec{y}-\vec{w^T}\vec{\tilde{X^T}}\vec{y}+\vec{w^T}\vec{\tilde{X^T}}\vec{\tilde{X}}\vec{w}\tag{5}\\
&=&\vec{y^T}\vec{y}-2\vec{w^T}\vec{\tilde{X^T}}\vec{y}+\vec{w^T}\vec{\tilde{X^T}}\vec{\tilde{X}}\vec{w}\tag{6}\\
\end{eqnarray}$$

$(1)$から$(2)$においては、$\|A\|^2=A^{T}A$を利用しています。

$(2)$から$(3)$、$(4)$から$(5)$においては、$(AB)^T=B^{T}A^{T}$を利用しています。

$(3)$から$(4)$においては、「$\vec{y^T}\vec{\tilde{X}}\vec{w}$がスカラーである」ことから$A = A^T$を利用しています。なぜ「$\vec{y^T}\vec{\tilde{X}}\vec{w}$がスカラーである」かというと、この計算結果の行数、列数を考えれば自明となります。$\vec{y^T}$は$(1 \times n)$のベクトル、$\vec{\tilde{X}}$は$(n \times d)$の行列、$\vec{w}$は$(d \times 1)$のベクトルであり、三者の積は$(1 \times 1)$の行列、即ちスカラーとなります。

$E(\vec{w})$を最小化する$\vec{w}$を求めるため、$E(\vec{w})$の勾配を考えます。

$$\nabla E(\vec{w})=-2\vec{\tilde{X^T}}\vec{y}+2\vec{\tilde{X^T}}\vec{\tilde{X}}\vec{w}$$

ここでは、$\nabla x^{T}Ax=2Ax$を利用しています。

$\nabla E(\vec{w}) = 0$となる$w$を計算すると、

$$\begin{eqnarray}
-2\vec{\tilde{X^T}}\vec{y}+2\vec{\tilde{X^T}}\vec{\tilde{X}}\vec{w}&=&0 \\
2\vec{\tilde{X^T}}\vec{\tilde{X}}\vec{w}&=&2\vec{\tilde{X^T}}\vec{y} \\
\vec{\tilde{X^T}}\vec{\tilde{X}}\vec{w}&=&\vec{\tilde{X^T}}\vec{y} \\
\vec{w}&=&(\vec{\tilde{X^T}}\vec{\tilde{X}})^{-1}\vec{\tilde{X^T}}\vec{y} \\
\end{eqnarray}$$

計算された式は一般的に「正規方程式」と呼ばれています。