機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

線形回帰モデルの双対表現

線形回帰モデルの双対表現

線形回帰における正則化最小二乗法の目的関数は次式でした。

\begin{eqnarray}
J({\bf w})&=&\frac{1}{2}||{\boldsymbol\Phi}{\bf w}-{\bf t}||^2+\frac{\lambda}{2}||{\bf w}||^2\\
&=&\frac{1}{2}{\bf w}^\top\boldsymbol\Phi^\top\boldsymbol\Phi{\bf w}-{\bf w}^\top\boldsymbol\Phi^\top{\bf t}+\frac{1}{2}||{\bf t}||^2+\frac{\lambda}{2}||{\bf w}||^2\tag{1}
\end{eqnarray}

(1)\bf w微分して、={\bf 0} とおきます。

\begin{eqnarray}
&&\frac{\partial}{\partial{\bf w}}J({\bf w})={\bf 0}\\
&&\Leftrightarrow\frac{\partial}{\partial{\bf w}}\left(\frac{1}{2}{\bf w}^\top\boldsymbol\Phi^\top\boldsymbol\Phi{\bf w}-{\bf w}^\top\boldsymbol\Phi^\top{\bf t}+\frac{1}{2}||{\bf t}||^2+\frac{\lambda}{2}||{\bf w}||^2\right)={\bf 0}\\
&&\Leftrightarrow\boldsymbol\Phi^\top\boldsymbol\Phi{\bf w}-\boldsymbol\Phi^\top{\bf t}+\lambda{\bf w}={\bf 0}\\
&&\Leftrightarrow{\bf w}=-\frac{1}{\lambda}\boldsymbol\Phi^\top(\boldsymbol\Phi{\bf w}-{\bf t})\\
&&\Leftrightarrow{\bf w}=\boldsymbol\Phi^\top{\bf a}\tag{2}\\
\end{eqnarray}

(2)\bf a は以下のようにおきました。

\begin{eqnarray}
&&{\bf a}=(a_1,\ldots,a_N)^\top\tag{3}\\
&&a_n=-\frac{1}{\lambda}\left({\bf w}^\top{\boldsymbol\phi}({\bf x}_n)-t_n\right)\tag{4}
\end{eqnarray}

\bf w を使う代わりに、\bf a で表現し直すことにします。
これは双対表現と呼ばれます。
(4)\lambda,{\bf x}_n,t_n は固定値なので、単に {\bf w}{\bf a} に置き換えたことが分かります。

(2)(1) に代入します。

\begin{eqnarray}
J({\bf a})=\frac{1}{2}{\bf a}^\top{\boldsymbol\Phi}{\boldsymbol\Phi}^\top{\boldsymbol\Phi}{\boldsymbol\Phi}^\top{\bf a}-{\bf a}^\top{\boldsymbol\Phi}{\boldsymbol\Phi}^\top{\bf t}+\frac{1}{2}{\bf t}^\top{\bf t}+\frac{\lambda}{2}{\bf a}^\top{\boldsymbol\Phi}{\boldsymbol\Phi}^\top{\bf a}\tag{5}
\end{eqnarray}

次に、対象行列であるグラム行列 {\bf K}={\boldsymbol\Phi}{\boldsymbol\Phi}^\top\in\mathbb{R}^{N\times N} を定義します。

\begin{eqnarray}
{\bf K}&=&{\boldsymbol\Phi}{\boldsymbol\Phi}^\top\\
&=&\begin{pmatrix}
{\boldsymbol\phi}({\bf x}_1)^\top{\boldsymbol\phi}({\bf x}_1) & \cdots & {\boldsymbol\phi}({\bf x}_1)^\top{\boldsymbol\phi}({\bf x}_N)\\
\vdots & \ddots & \vdots\\
{\boldsymbol\phi}({\bf x}_N)^\top{\boldsymbol\phi}({\bf x}_1) & \cdots & {\boldsymbol\phi}({\bf x}_N)^\top{\boldsymbol\phi}({\bf x}_N)\\
\end{pmatrix}\\
&=&\begin{pmatrix}
k({\bf x}_1,{\bf x}_1) & \cdots & k({\bf x}_1,{\bf x}_N)\\
\vdots & \ddots & \vdots\\
k({\bf x}_N,{\bf x}_1) & \cdots & k({\bf x}_N,{\bf x}_N)\\
\end{pmatrix}\tag{6}
\end{eqnarray}

グラム行列を用いて目的関数を書き直します。

\begin{eqnarray}
J({\bf a})=\frac{1}{2}{\bf a}^\top{\bf K}{\bf K}{\bf a}-{\bf a}^\top{\bf K}{\bf t}+\frac{1}{2}{\bf t}^\top{\bf t}+\frac{\lambda}{2}{\bf a}^\top{\bf K}{\bf a}\tag{7}
\end{eqnarray}

(7) を最小にする {\bf a} を求めるため、(7){\bf a}微分して、={\bf 0} とおきます。

\begin{eqnarray}
&&\frac{\partial}{\partial {\bf a}}J({\bf a})={\bf 0}\\
&&\Leftrightarrow\frac{1}{2}\frac{\partial}{\partial {\bf a}}{\bf a}^\top{\bf K}{\bf K}{\bf a}-\frac{\partial}{\partial {\bf a}}{\bf a}^\top{\bf K}{\bf t}+\frac{\lambda}{2}\frac{\partial}{\partial {\bf a}}{\bf a}^\top{\bf K}{\bf a}={\bf 0}\\
&&\Leftrightarrow\frac{1}{2}({\bf K}{\bf K}+({\bf K}{\bf K})^\top){\bf a}-{\bf K}{\bf t}+\frac{\lambda}{2}({\bf K}+{\bf K}^\top){\bf a}={\bf 0}\\
&&\Leftrightarrow{\bf K}{\bf K}{\bf a}-{\bf K}{\bf t}+\lambda{\bf K}{\bf a}={\bf 0}\\
&&\Leftrightarrow{\bf a}=({\bf K}-\lambda{\bf I}_N)^{-1}{\bf t}\tag{8}
\end{eqnarray}

これを線形回帰モデルに代入し直すことによって、新しい入力に対する予測は次式で表せます。

\begin{eqnarray}
y({\bf x})&=&{\bf w}^\top{\boldsymbol\phi}({\bf x})\\
&=&{\bf a}^\top{\boldsymbol\Phi}{\boldsymbol\phi}({\bf x})\\
&=&({\boldsymbol\Phi}{\boldsymbol\phi}({\bf x}))^\top({\bf K}-\lambda{\bf I}_N)^{-1}{\bf t}\\
&=&\begin{pmatrix}{\boldsymbol\phi}({\bf x}_1)^\top{\boldsymbol\phi}({\bf x})\\ \vdots \\ {\boldsymbol\phi}({\bf x}_N)^\top{\boldsymbol\phi}({\bf x})\end{pmatrix}^\top({\bf K}-\lambda{\bf I}_N)^{-1}{\bf t}\\
&=&\begin{pmatrix}k({\bf x}_1,{\bf x})\\ \vdots \\ k({\bf x}_N,{\bf x})\end{pmatrix}^\top({\bf K}-\lambda{\bf I}_N)^{-1}{\bf t}\\
&=&{\bf k}({\bf x})^\top({\bf K}-\lambda{\bf I}_N)^{-1}{\bf t}\tag{9}
\end{eqnarray}

(9){\bf k}({\bf x}) は要素 k_n({\bf x})=k({\bf x}_n,{\bf x}) を持つベクトルです。

以上より、双対表現に変換することによって、最小二乗法の解はカーネル関数 k({\bf x},{\bf x}') のみで表現できることが分かります。

通常 NM よりずっと大きい為、双対表現はあまり有用でないように思えるかもしれません。
しかし、双対表現の意義はすべてがカーネル関数 k({\bf x},{\bf x}') で表現されることにあります。
常にカーネル関数を用いて問題を扱うことができるため、高次元の得には無限次元の特徴空間を間接的に扱うことができます。

偉人の名言


不可能という字は予の辞典にはない。
ナポレオン

参考文献

パターン認識機械学習 下巻 p2-p4

動画

なし

目次へ戻る