本記事は機械学習の徹底解説シリーズに含まれます。
初学者の分かりやすさを優先するため,多少正確でない表現が混在することがあります。もし致命的な間違いがあればご指摘いただけると助かります。
目次
正規方程式
基底関数$\phi:~D\rightarrow M$の出力を線形的に重みづけする線形回帰モデルを考える。
\begin{align}
y(\vx,\vw) &= \sum_{j=0}^{M-1}w_{j}\phi_{j}(\vx) \\[0.7em]
&= \vw^{T} \vphi(\vx)
\end{align}
y(\vx,\vw) &= \sum_{j=0}^{M-1}w_{j}\phi_{j}(\vx) \\[0.7em]
&= \vw^{T} \vphi(\vx)
\end{align}
ただし,
\begin{align}
\vx &= (x_1, \ldots, x_{D})^{T} \\[0.7em]
\vw &= (w_0, \ldots, w_{M-1})^{T} \\[0.7em]
\vphi &= (\phi_0, \ldots, \phi_{M-1})^{T}
\end{align}
\vx &= (x_1, \ldots, x_{D})^{T} \\[0.7em]
\vw &= (w_0, \ldots, w_{M-1})^{T} \\[0.7em]
\vphi &= (\phi_0, \ldots, \phi_{M-1})^{T}
\end{align}
と置いた。$\vt=(t_1, \ldots, t_{N})^{T}$を教師ラベルとする最小二乗法に基づけば,最適な重みパラメータ$\vw_{\ML}$は以下で表され,これは正規方程式と呼ばれる。
\begin{align}
\vw_{\ML} &= \left(\mPhi^T\mPhi\right)^{-1} \mPhi^{T}\vt
\end{align}
\vw_{\ML} &= \left(\mPhi^T\mPhi\right)^{-1} \mPhi^{T}\vt
\end{align}
ただし,$\mPhi$は以下で表される$N\times M$行列で計画行列と呼ばれる。
\begin{align}
\mPhi &= \left\{\vphi(\vx_{1})^{T},\ldots,\vphi(\vx_{N})^{T}\right\}^{T} \\[0.7em]
&= \left(
\begin{array}{ccccc}
\phi_{0}(\vx_{1}) & \phi_{1}(\vx_{1}) & \cdots & \phi_{M-1}(\vx_{1})\\[0.7em]
\phi_{0}(\vx_{2}) & \phi_{1}(\vx_{2}) & \cdots & \phi_{M-1}(\vx_{2}) \\[0.7em]
\vdots & \vdots & \ddots & \vdots \\[0.7em]
\phi_{0}(\vx_{N}) & \phi_{1}(\vx_{N}) & \cdots & \phi_{M-1}(\vx_{N})
\end{array}
\right)
\end{align}
\mPhi &= \left\{\vphi(\vx_{1})^{T},\ldots,\vphi(\vx_{N})^{T}\right\}^{T} \\[0.7em]
&= \left(
\begin{array}{ccccc}
\phi_{0}(\vx_{1}) & \phi_{1}(\vx_{1}) & \cdots & \phi_{M-1}(\vx_{1})\\[0.7em]
\phi_{0}(\vx_{2}) & \phi_{1}(\vx_{2}) & \cdots & \phi_{M-1}(\vx_{2}) \\[0.7em]
\vdots & \vdots & \ddots & \vdots \\[0.7em]
\phi_{0}(\vx_{N}) & \phi_{1}(\vx_{N}) & \cdots & \phi_{M-1}(\vx_{N})
\end{array}
\right)
\end{align}
$(\mPhi^T\mPhi)^{-1} \mPhi^{T}$はムーア・ペンローズの擬似逆行列と呼ばれています。
証明
入力を$\mX=(\vx_{1},\ldots,\vx_{N})$と置くと,目的関数$f(\vw)$は以下のように表されます。
\begin{align}
f(\vw)
&= \frac{1}{2}\sum_{n=1}^{N}\left\{t_{n} - \vw^{T}\vphi(\vx_{n})\right\}^{2}\\[0.7em]
&= \frac{1}{2}\sum_{n=1}^{N}\left\{t_{n} - \vw^{T}\vphi(\vx_{n})\right\}\left\{t_{n} - \vw^{T}\vphi(\vx_{n})\right\}\\[0.7em]
&= \frac{1}{2}\sum_{n=1}^{N}\left[t_{n}^{2} - 2t_{n}\vw^{T}\vphi(\vx_{n}) + \left\{\vw^{T}\vphi(\vx_{n})\right\}^{2}\right]
\end{align}
f(\vw)
&= \frac{1}{2}\sum_{n=1}^{N}\left\{t_{n} - \vw^{T}\vphi(\vx_{n})\right\}^{2}\\[0.7em]
&= \frac{1}{2}\sum_{n=1}^{N}\left\{t_{n} - \vw^{T}\vphi(\vx_{n})\right\}\left\{t_{n} - \vw^{T}\vphi(\vx_{n})\right\}\\[0.7em]
&= \frac{1}{2}\sum_{n=1}^{N}\left[t_{n}^{2} - 2t_{n}\vw^{T}\vphi(\vx_{n}) + \left\{\vw^{T}\vphi(\vx_{n})\right\}^{2}\right]
\end{align}
求めたいのは二乗和誤差関数を最小にする$\vw$ですから,$f(\vw)$を$\vw$で偏微分した偏導関数が$0$となる$\vw$を計算します。
\begin{align}
\frac{\partial f}{\partial \vw}
&= \frac{1}{2}\sum_{n=1}^{N}\left\{-2t_{n}\vphi(\vx_{n})^{T} + 2\vphi(\vx_{n})\vphi(\vx_{n})^{T}\vw\right\}\\[0.7em]
&=-\sum_{n=1}^{N}t_{n}\vphi(\vx_{n})^{T} + \left\{\sum_{n=1}^{N}\vphi(\vx_{n})\vphi(\vx_{n})^{T}\right\}\vw\label{行列形式前}
\end{align}
\frac{\partial f}{\partial \vw}
&= \frac{1}{2}\sum_{n=1}^{N}\left\{-2t_{n}\vphi(\vx_{n})^{T} + 2\vphi(\vx_{n})\vphi(\vx_{n})^{T}\vw\right\}\\[0.7em]
&=-\sum_{n=1}^{N}t_{n}\vphi(\vx_{n})^{T} + \left\{\sum_{n=1}^{N}\vphi(\vx_{n})\vphi(\vx_{n})^{T}\right\}\vw\label{行列形式前}
\end{align}
いま,$\mPhi^{T}$が以下のように表されることに注意すると,
\begin{align}
\mPhi^{T} &= \left\{\vphi(\vx_{1}),\ldots,\vphi(\vx_{N})\right\}
\end{align}
\mPhi^{T} &= \left\{\vphi(\vx_{1}),\ldots,\vphi(\vx_{N})\right\}
\end{align}
式($\ref{行列形式前}$)は以下のように表されます。
\begin{align}
\frac{\partial f}{\partial \vw}
&=-\mPhi^{T}\vt + \mPhi^T\mPhi\vw\\[0.7em]
&= 0
\end{align}
\frac{\partial f}{\partial \vw}
&=-\mPhi^{T}\vt + \mPhi^T\mPhi\vw\\[0.7em]
&= 0
\end{align}
したがって,$\mPhi^T\mPhi$が正則のとき,最適な重みパラメータは以下のように表されます。
\begin{align}
\vw_{\ML} &= \left(\mPhi^T\mPhi\right)^{-1} \mPhi^{T}\vt
\end{align}
\vw_{\ML} &= \left(\mPhi^T\mPhi\right)^{-1} \mPhi^{T}\vt
\end{align}
コメント