はじめに
本記事は, 機械学習の教科書の決定版ともいえる, Christopher Bishop先生による[『Pattern Recognition and Machine Learning (パターン認識と機械学習)』] (https://www.microsoft.com/en-us/research/people/cmbishop/prml-book/), 通称PRMLの演習問題のうち, 私が解いた問題の解答を記したものです. これは, 私の所属する生物測定学研究室の輪読会でPRMLを取り扱っており, その勉強の一環として演習問題を解いたときのものです. なお, 他の演習問題の解答例に関する記事については, [PRML 演習問題 解答集 まとめ] (https://qiita.com/Lab_of_Biomet/items/15e38ca34fafa8176d89)をご覧ください.
問題
カーネル回帰の問題を別の視点から考えると, 入力変数と目標変数が加法的なノイズによって影響されていると考えることができる.
通常通り, 各目標変数 $t_n$ を, 点 $\mathbf{ z } _ n$ に置いて評価された関数 $y \left ( \mathbf{z} _ n \right )$ に, ガウスノイズが加わったものとする. $\mathbf{ z } _ n$ は直接観測されることはなく, ノイズが加わった $\mathbf { x } _ n = \mathbf{ z } _ n + \boldsymbol{ \xi } _ n$ が観測される.
ここで, 確率変数 $\boldsymbol{\xi}$ は, ある分布 $g\left (\boldsymbol{\xi}\right )$ に従うとする. 観測された集合 $\left \{ \mathbf{x}_n, t_n \right \} \left ( n = 1, \ldots, N \right )$ に対して, 入力変数に加えられたノイズの分布で期待値を取った二乗和誤差関数
\begin {align*}
E=\frac{1}{2} \sum_{n=1}^{N} \int \left \{y\left (\mathbf{x}_n - \boldsymbol{\xi}_n\right ) - t_n\right \}^2 g\left (\boldsymbol{\xi}_n\right ) \mathrm{d}\boldsymbol{\xi}_n
\tag{6.99}
\end {align*}
を考える. 変分法 (付録D) を用いて, $E$ を関数 $y\left (\mathbf{z}\right )$ について最小化することで, 最適な $y\left (\mathbf{x}\right )$ は, カーネル
\begin {align*}
k\left (\mathbf{x}, \mathbf{x}_n\right ) = \frac{g\left (\mathbf{x} - \mathbf{x}_n\right )}{\sum_{m}g\left (\mathbf{x} - \mathbf{x}_m\right )}
\tag{6.46}
\end {align*}
を持った, Nadaraya-Watson カーネル回帰
\begin {align*}
y\left (\mathbf{x}\right ) = \frac{\sum_{n} g\left (\mathbf{x} - \mathbf{x}_n\right ) t_n}{\sum_{m}g\left (\mathbf{x} - \mathbf{x}_m\right )} =\sum_{n}k\left (\mathbf{x}, \mathbf{x}_n\right ) t_n
\tag{6.45}
\end {align*}
の形になることを示せ.
解答
解答としては単純に $\left (6.99\right )$ を変分法 (付録D) を用いて, $E$ を関数 $y\left (\mathbf{z}\right )$ について最小化すれば良い.
まず,
\begin {align*}
E=\frac{1}{2} \sum_{n=1}^{N} \int \left \{y\left (\mathbf{x}_n - \boldsymbol{\xi}_n\right ) - t_n\right \}^2 g\left (\boldsymbol{\xi}_n\right ) \mathrm{d}\boldsymbol{\xi}_n
\tag{6.99}
\end {align*}
の $y\left ( \mathbf{x} \right )$ に関する変分が $0$ になる停留条件を考えてゆく.
今, $y\left (\mathbf{x}\right )$ に対して微小な変動 $\epsilon \eta \left ( \mathbf { x } \right )$ を加えると, $E\left [y\right ]$ は次のように変化する.
\begin {align*}
E\left [y+\epsilon \eta\right ]=\frac{1}{2} \sum_{n=1}^{N} \int \left \{y\left (\mathbf{x}_n - \boldsymbol{\xi}_n\right )+\epsilon \eta\left (\mathbf{x}_n - \boldsymbol{\xi}_n\right ) - t_n\right \}^2 g\left (\boldsymbol{\xi}_n\right ) \mathrm{d}\boldsymbol{\xi}_n
\tag{6.19.1}
\end {align*}
これを, 変形すると,
\begin {align*}
E\left [y+\epsilon \eta\right ]=E\left [y\right ]+\epsilon \sum_{n=1}^{N}\int \left \{ \left (y\left (\mathbf{z}_n\right )-t_n\right )\eta\left (\mathbf{x}_n - \boldsymbol{\xi}_n\right )g\left (\boldsymbol{\xi}_n\right ) \right \} \mathrm{d}\boldsymbol{\xi}_n+O\left (\epsilon^2\right )
\tag{6.19.2}
\end {align*}
となり, 変分が $0$ になる条件は,
\begin {align*}
\sum_{n=1}^{N}\int \left \{ \left (y\left (\mathbf{z}_n\right )-t_n\right )\eta\left (\mathbf{x}_n - \boldsymbol{\xi}_n\right )g\left (\boldsymbol{\xi}_n\right ) \right \} \mathrm{d}\boldsymbol{\xi}_n=0
\tag{6.19.3}
\end {align*}
となる. ここで, $\left (6.19.3\right )$ はいかなる $\eta$ に対しても成り立つ.
ここで, $\eta$ として,
\begin {align*}
\eta \left (\mathbf{x}\right )=\delta\left (\mathbf{x}-\mathbf{z}\right )
\tag{6.19.4}
\end {align*}
となるような関数を選んでくる. ここで $\delta$ は以下で定義されるディラックのデルタ関数である.
\begin {align*}
\int_{- \infty }^{ \infty }f\left (x\right )\delta\left (x\right )\mathrm{d}x=f\left (0\right )
\tag{6.19.5}
\end {align*}
この $\left (6.19.4\right )$ を $\left (6.19.3\right )$ に代入すると,
\begin {align*}
\sum_{n=1}^{N}\int \left \{ \left (y\left (\mathbf{x}_n-\boldsymbol{\xi}_n\right )-t_n\right )\delta\left (\mathbf{x}_n - \boldsymbol{\xi}_n-\mathbf{z}\right )g\left (\boldsymbol{\xi}_n\right ) \right \} \mathrm{d}\boldsymbol{\xi}_n
=\sum_{n=1}^{N} \left (y\left (\mathbf{z}\right )-t_n\right )g\left ( \mathbf{x}_n - \mathbf{z} \right )=0
\tag{6.19.6}
\end {align*}
この $\left (6.19.6\right )$ の $\mathbf{z}$ を $\mathbf{x}$ に置き換えて, 式を整理すると,
\begin {align*}
y\left (\mathbf{x}\right ) = \frac{\sum_{n} g\left (\mathbf{x} - \mathbf{x}_n\right ) t_n}{\sum_{m}g\left (\mathbf{x} - \mathbf{x}_m\right )} =\sum_{n}k\left (\mathbf{x}, \mathbf{x}_n\right ) t_n
\tag{6.46}
\end {align*}
となり, カーネル $\left (6.46\right )$ を持った, Nadaraya-Watson カーネル回帰 $\left (6.45\right )$ の形になることがわかる.