機械学習に詳しくなりたいブログ

機械学習や数学について勉強した内容を中心に書きます。100%趣味です。記事は数学的に厳密でなかったり誤りを含んでいるかもしれません。ご指摘頂ければ幸いです。

線形識別 最小二乗法の解の導出

線形識別を最小二乗法で計算した場合の解を導出します。識別関数を \mathbf{y}(\mathbf x) = \mathbf{w}^T \mathbf{x}とします。ここで \mathbf{x} = (1,x_{1},\ldots,x_{M-1})^{T}です。(ダミー入力の定数を加えたものとします) \mathbf{w}はM×K行列(入力次元×クラス数)の係数とします。また、\mathbf{t}を1ofK符号(正解クラスが1でそれ以外が0のベクトル)とし、教師データ(\mathbf{x}_n,\mathbf{t}_n)がN個与えられたとします。

以上の前提条件をもとに計算をします。n番目の教師データに対する2乗誤差は、


E_n = \displaystyle \frac{1}{2} \|\mathbf{w}^T \mathbf{x}_n - \mathbf{t}_n \|^2 \tag{1}

と書けます。これがなぜ二乗和になるのかは、ベクトルのノルムベクトルの内積と2乗和より、ベクトルのノルムの二乗は、各要素の二乗和に等しいことが確認できます。なお線形識別における2乗誤差は、正解が(1,0,0)^{T}、出力が(a,b,c)^{T}のとき、(a-1)^{2} + b^{2}+c^{2}としています。

式(1)は以下のように展開できます。


\begin{eqnarray*}
E_n &=& \displaystyle \frac{1}{2} \|\mathbf{w}^T \mathbf{x}_n - \mathbf{t}_n \|^2 \tag{2} \\
&=& \displaystyle \frac{1}{2} (\mathbf{w}^T \mathbf{x}_n -\mathbf{t}_n )^{T}(\mathbf{w}^T \mathbf{x}_n -\mathbf{t}_n ) \tag{3} \\
&=& \displaystyle \frac{1}{2}  (\mathbf{x}_n^T \mathbf{w} -\mathbf{t}_n^T )(\mathbf{w}^T \mathbf{x}_n -\mathbf{t}_n ) \tag{4} \\
&=& \displaystyle \frac{1}{2}  (\mathbf{x}_n^T \mathbf{w}\mathbf{w}^T \mathbf{x}_n - \mathbf{x}_n^T \mathbf{w}\mathbf{t}_n - \mathbf{t}_n^T \mathbf{w}^T \mathbf{x}_n -\| \mathbf{t}_n\|^2 ) \tag{5} \\
&=& \displaystyle \frac{1}{2}  (\mathbf{x}_n^T \mathbf{w}\mathbf{w}^T \mathbf{x}_n - 2\mathbf{x}_n^T \mathbf{w}\mathbf{t}_n - \| \mathbf{t}_n\|^2 ) \tag{6} \\
\end{eqnarray*}

式変形には、転置行列の定理ベクトルのノルムなどを使っています。

ここで行列の微分の式(5)(8)より、


\begin{eqnarray*}
\displaystyle \frac{\partial E_n}{\partial \mathbf w} &=&  \frac{1}{2} \{ (\mathbf{x}_n \mathbf{x}_n^T + \mathbf{x}_n \mathbf{x}_n^T) \mathbf w - 2  \mathbf{x}_n\mathbf{t}_n^T  \} \tag{7} \\
&=& \mathbf{x}_n \mathbf{x}_n^T \mathbf w - \mathbf{x}_n\mathbf{t}_n^T \tag{8}
\end{eqnarray*}

となります。ここで\mathbf{T},\mathbf{X}を教師データをn行分並べた行列とすれば、2乗和誤差は微分演算の線形性より


\displaystyle \sum_{n=1}^{N} \frac{\partial E_n}{\partial \mathbf w} = \mathbf{X}^T \mathbf{X} \mathbf{w} -\mathbf{X}^T \mathbf{T}  \tag{9}

となります。二乗和誤差を最小にするのは \displaystyle \frac{\partial E}{\partial \mathbf{w}} = 0のときですから、求める解は


\mathbf{w} = (\mathbf{X}^{T}\mathbf{X})^{-1} \mathbf{X}^{T}\mathbf{T} \tag{10}

です。結局、線形回帰を最小二乗法で解いた場合と形は同じになるんですね。これを使って識別の実験をした結果:線形識別を最小二乗法で解く