最小二乗法概略

予測モデルをつくるときに最も簡単な方法としては「最小二乗法による線形モデル」と「k近傍モデル」である.
この2つは統計学機械学習を学んでいない人でも割と思いつきそうな方法である.
線形モデルとはパラメータに対して線形なモデルという意味である.
例えば, y = ax + b という1次関数を中学で学んだ.
今, データxが観測されたときに, yを予測するというタスクを行う.
このときa(傾き), b(切片)の値によって予想するべき値yが異なってくる.
すなわちa, bが決定されれば全てのxの入力に対してyという出力ができるようになる.
このようなa, b をパラメータという.
これを多次元に拡張すると

y = w_0 + w_1x_1 + w_2x_2 + \ldots w_nx_n
これは

y = w_01 + w_1x_1 + w_2x_2 + \ldots w_px_p
と見て

y = \boldsymbol{x}^T \boldsymbol{w}
とベクトル表記で書くことができる.
これは, p+1 次元の一つのデータに対する予測の式なので, n個のデータを同時に扱う場合には

\boldsymbol{y} = \boldsymbol{X}^T \boldsymbol{w}
とする.  \boldsymbol{X} は(p+1, n)行列であり転置すると(n, p+1)行列, パラメータベクトル \boldsymbol{w}は(p+1)ベクトルである. ((p+1, 1)行列という表現もできる)
この線形モデルを, 最小二乗法によりフィットする. (予測と実際の誤差を最小にする)
 
min: RSS(\boldsymbol{w}) = (\boldsymbol{y} - \boldsymbol{X}\boldsymbol{w})^T(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{w})

\begin{align*}
RSS(\boldsymbol{w}) &= (\boldsymbol{y}^T-(\boldsymbol{X}\boldsymbol{w})^T)(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{w})\\
 &= \boldsymbol{y}^T\boldsymbol{y}-\boldsymbol{y}^T\boldsymbol{X}\boldsymbol{w}-(\boldsymbol{X}\boldsymbol{w})^T\boldsymbol{y}+(\boldsymbol{X}\boldsymbol{w})^T(\boldsymbol{X}\boldsymbol{w})\\
 &= \boldsymbol{y}^T\boldsymbol{y}-(\boldsymbol{y}^T\boldsymbol{X})\boldsymbol{w}-\boldsymbol{w}^T(\boldsymbol{X}^T\boldsymbol{y})+\boldsymbol{w}^T(\boldsymbol{X}^T\boldsymbol{X})\boldsymbol{w}
\end{align*}
この式はパラメータ\boldsymbol{w}に関して二次式であるので最小値が存在する.
パラメータ\boldsymbol{w}微分して\boldsymbol{0}になるパラメータ\boldsymbol{w}を求める.

\begin{align*}
&\boldsymbol{0} - \frac{\partial (\boldsymbol{y}^T\boldsymbol{X})\boldsymbol{w}}{\partial \boldsymbol{w}} - \frac{\boldsymbol{w}^T(\boldsymbol{X}^T\boldsymbol{y})}{\partial \boldsymbol{w}} + \frac{\partial \boldsymbol{w}^T(\boldsymbol{X}^T\boldsymbol{X})\boldsymbol{w}}{\partial \boldsymbol{w}} = \boldsymbol{0}\\
&-(\boldsymbol{y}^T\boldsymbol{X})^T-(\boldsymbol{X}^T\boldsymbol{y}) + (\boldsymbol{X}^T\boldsymbol{X} + (\boldsymbol{X}^T\boldsymbol{X})^T)\boldsymbol{w} = \boldsymbol{0}\\
&-\boldsymbol{X}^T\boldsymbol{w}-\boldsymbol{X}^T\boldsymbol{y} + (\boldsymbol{X}^T\boldsymbol{X} + \boldsymbol{X}^T\boldsymbol{X})\boldsymbol{w} = \boldsymbol{0}\\
&-2\boldsymbol{X}^T\boldsymbol{y} + 2\boldsymbol{X}^T\boldsymbol{X}\boldsymbol{w} = \boldsymbol{0}\\
&2\boldsymbol{X}^T\boldsymbol{X}\boldsymbol{w} = 2\boldsymbol{X}^T\boldsymbol{y}\\
&\boldsymbol{w} = (\boldsymbol{X}^T\boldsymbol{X})^{-1}\boldsymbol{X}^T\boldsymbol{y}
\end{align*}


ベクトルに対する微分の以下の式は覚えておいたほうが良い.

\begin{align*}
\frac{\partial A^T \boldsymbol{x}}{\partial \boldsymbol{x}} = \frac{\partial \boldsymbol{x}^T A}{\partial \boldsymbol{x}} &= A\\
\frac{\partial \boldsymbol{x}^TA\boldsymbol{x}}{\partial \boldsymbol{x}} &= (A+A^T)\boldsymbol{x}\\
if\  A\  is\  symmetric\  matrix\\
&= 2A\boldsymbol{x}
\end{align*}