底辺大学の院生がプログラミングや機械学習を勉強するブログ

勉強していることを雑にまとめるブログ。当然、正しさの保証は一切しない。

3.1 線形基底関数モデル

PRML上巻の主題は、代表的な学習問題である「回帰」「識別」である。

このうち「回帰」問題の目標は、ある観測値とそれに対する目標値からなる訓練集合が与えられたとき、新たな入力に対する未知の目標値を予測することである。

例えば、

1、4、5、2

という入力に対して、

1、16、25、4

という出力からなる集合を与えられたとき、次の入力「3」に対する出力を予測することなどが挙げられる。


このことは、暗にこの問題の裏に存在する関数 x^2を見つけ出すことを意味している。
実際、回帰問題の最も簡単なアプローチは、新しい入力変数 {\bf x}に対応する値が予測変数 tの予測値となるような適当な関数 y({\bf x})を直接構成することである。

この問題をより確率論的に解くならば、予測分布 p(t|{\bf x})をモデル化するベイズ的なアプローチが利用できる。

2つのアプローチについては、それぞれ3.1節と3.3節で詳しく解説されている。
今日は前者のアプローチ、線形基底関数モデルについて学習する。

線形基底関数モデル

線形基底関数モデルでは、予測のための関数 yを、

 y({\bf x,w}) = \sum_{j=0}^{M-1}w_j\phi_j({\bf x}) = {\bf w}^T{\bf \phi(x)}

とモデル化する。
 \phi_j({\bf x})基底関数と呼ばれ、文字通り関数の基底、すなわち表現を決定するものである。
基底関数の例としては、

 \phi_j({\bf x})=x^j

 \phi_j({\bf x})=\exp\left\{-\frac{(x-\mu_j)^2}{2s^2}\right\}

  • シグモイド基底

 \phi_j({\bf x})=\sigma\left(\frac{x-\mu_j}{s}\right)

などがある。
当然、回帰のためには基底関数をどのように推定するかも重要となってくるが、本節を含めしばらくは基底関数は与えられているものとし、基底関数を w_j倍するパラメータベクトル {\bf w}を推定することを目標とする。

最尤推定

さて、目標変数が、関数 y({\bf x,w})と平均 0で分散が \beta^{-1}である加法性ガウス雑音の和で与えられる次のような場合を考える。

 t = y({\bf x,w}) + \epsilon

すると、 {\bf x}を観測した条件のものでの t確率密度関数は、

 p(t|{\bf x,w},\beta) = \mathcal{N}(t|y({\bf x,w}),\beta^{-1})

と書ける。

今、入力 {\bf X}=\{{\bf x_1,\dots,x_N}\}と対応する目標値 {\bf t}=\{t_1,\dots,t_N\}が与えられたとする。
データ点がそれぞれ独立に生成されたと仮定すると、尤度関数はそれぞれの確率密度の積で表せられるので、

 p({\bf t|X,w},\beta)=\prod_{n=1}^N\mathcal{N}(t_n|{\bf w}^T{\bf \phi}({\bf x}_n),\beta^{-1})

と書くことができる。

あとはこれまでと同様、対数尤度を取ると、尤度関数に対する二乗和誤差関数

 E_D({\bf w})=\frac{1}{2}\sum_{n=1}^N\{t_n-{\bf w}^T{\bf \phi}({\bf x}_n)\}^2

が得られるので、これを {\bf w}に関して微分したものが0になる {\bf w}を求めると、最尤推定

 {\bf w}_{ML} = ({\bf \Phi}^T{\bf \Phi})^{-1}{\bf \Phi}^T{\bf t}

が得られる。
ここで \Phiは計画行列と呼ばれ、要素が {\bf \Phi}_{n,j}=\Phi_j({\bf x}_n)となる行列である。

数値計算

論より証拠、という言葉は論理を軽んじている感があるためあまり好きではないが、
実際手を動かす方が楽しいので、数値計算で論理を確かめることとする。

簡単のため、

 y(x,{\bf w}) = w_0 + w_1\phi(x)

というモデルで議論することとし、 w_0=-0.7, w_1=1.2, \beta^{-1} = 0.2とする。


以下は \phi(x) = x \phi(x) = \exp(-x^2)の場合。

f:id:telltales:20160730023411p:plain

f:id:telltales:20160730023417p:plain

データ数100個でシミュレーションした。
両結果ともによい精度で推定できている。