Prml6章

written

カーネル法

データを特徴量空間に写像し、特徴量空間での内積によって新しい表現にとして利用する方法。非線形変換を行えるので、表現力が高い。 入力を特徴量空間に写像する関数を\(\phi(x)\)とすると、 \[k(x,x')=\phi(x)^{\mathrm{T}}\phi(x')\] で表される関数をカーネル関数という。このカーネル関数を使うことで、カーネルトリックまたはカーネル置換を用いて、アルゴリズムを拡張できる。 また、カーネル関数では、基底関数を意識せずに計算できるので、無限の基底関数で表される空間なども扱える。 カーネル関数である条件は、要素がカーネル関数で表されるグラム行列が半正定値であること。 あるモデルを考えたときにパラメータwに関する関数を新しいパラメータaで置き換えることを双対表現という。双対表現を用いることで、カーネル関数で式を表現できる用になる。 カーネル関数には、ガウスカーネル関数など様々な物がある。

RBFネットワーク

基底関数がある中心\(\mu\)との距離によって決まるものをRBFまたは、動径基底関数という。 RBFは、関数の補完や、入力にノイズが含まれる場合の補完問題などに使われる。RBFの中心は、ランダムに選んだり、k-meansみたいに直行最小二乗法を使ったりして、決める。

Nadaraya-Watsonモデル

教師データが与えられた時の同時確率分布\(p(t,x)\)をParzen推定で求めるとすると、 \[p(x,t)=\frac{1}{N}\sum_{n=1}^{N}f(x-x_{n},t-t_{n})\] となる。\(f(x,t)\)は、密度関数要素である。この時回帰関数\(y(x)\)を得るには、条件付き期待値を求めればいいので、 \[y(x)=E[t|x]=\int_{-\infty}^{\infty}tp(t|x)dt\] \[=\frac{\sum_{n}\int tf(x-x_{n},t-t_{n})dt}{\sum_{m}\int tf(x-x_{m},t-t_{m})dt}\] となる。ここで、密度関数の平均が0だとすると、 \[y(x)=\sum_{n}k(x,x_{n})t_{n}\] \[k(x,x_{n})=\frac{g(x-x_{n})}{\sum_{m}g(x-x_{m})}\] \[g(x)=\int_{-\infty}^{\infty}f(x,t)dt\] となる。これは、Nadaraya-Watsonモデルまたはカーネル回帰と言われる。

ガウス過程

入力\(x\)が与えられた時の出力\(y(x)\)の同時確率分布が正規分布であるとしたとき、ガウス過程という。特に入力ベクトルが2次元の時にはガウス確率場といわれる。 ガウス過程のいいところは、同時確率分布が、平均と分散の二つで表現できること、実際は、平均は0として扱われることがおおい。分散には、カーネル関数が用いられる。

ガウス過程による回帰

まず目的変数の発生確率について考える。出力yが与えられた時の目的変数tの同時確率分布は、 \[p(t|y)=N(t|y,\beta^{-1}I)\] となる。ガウス過程の定理より周辺分布\(p(y)\)は、 \[p(y)=N(y|0,K)\] となる。Kを決めるカーネル関数には、似ている入力に対応する出力の相関が大きくなるようなものを選ぶ。以上より周辺分布\(p(t)\)は、 \[p(t)=\int p(t|y)p(y)dy=N(t|0,K)\] \[C(x_{n},x_{m})=k(x_{n},x_{m})+\beta^{-1}\delta_{nm}\] となる。この時のカーネル関数には、 \[k(x_{n},x_{m})=\theta_{0}\exp\{-\frac{\theta_{1}}{2}||x_{n}-x_{m}||\}+\theta_{2}+\theta_{3}x_{n}^{\mathrm{T}}x_{m}\] のような形のものがよく使われる。 次に、教師データとして、\(\mathbf{t}=(t_{1},…,t_{n})\)が与えられた時の新しい\(t_{n+1}\)の条件付き確率\(p(t_{n+1}|\mathbf{t})\)について考える。 分割された正規分布として捉えるために、分割前の正規分布\(p(\mathbf{t}_{n+1})\)について考えると、 \[p(\mathbf{t}_{n+1})=N(\mathbf{t}_{n+1}|0,C_{n+1})\] となる。ここで共分散行列を分解すると、 \[ C_{n+1} = \left(

\begin{array}{cc} C_{n} & k \ k^{\mathrm{T}} & c \end{array}

\right) \] \[c=k(x_{N+1},x_{N+1})+\beta^{-1}\] となる。kは、\(k(x_{n},x_{N+1})\)を要素にもつベクトル。よって、条件付き確率の平均と分散は、 \[m(x_{N+1})=k^{\mathrm{T}}C_{N}^{-1}t\] \[\sigma^{2}(x_{N+1})=c-k^{\mathrm{T}}C_{N}^{-1}k\] となる。ここで、ハイパーパラメータの学習について考える。ハイパーパラメータを\(\theta\)とすると、対数尤度は、 \[\ln p(t|\theta)=-\frac{1}{2}\ln|C_{n}|-\frac{1}{2}t^{\mathrm{T}}C_{N}^{-1}t-\frac{N}{2}\ln(2\pi)\] となる。非線形なので、微分を求めると、 \[\frac{\partial}{\partial\theta_{i}}\ln p(t|\theta)=-\frac{1}{2}\mathrm{Tr}(C_{N}^{-1})\frac{\partial C_{N}}{\partial\theta_{i}}+\frac{1}{2}t^{\mathrm{T}}C_{N}^{-1}\frac{\partial C_{N}}{\partial\theta_{i}}C_{N}^{-1}t\] となる。あとは、共役勾配法などで求められる。このように、最尤推定でハイパーパラメータを決めるのを関連度自動決定またはARDといわれ、入力間の相対的な重要度をデータから決めることになる。 ARDをカーネル関数に組み込んだものが、上に示した回帰問題によく使われる関数と一致する。

ガウス過程による分類

ガウス過程による出力は、実数全体の値を取るのでガウス過程の出力aをシグモイド関数に通して、確率値に収めることで分類問題に使う。 2クラスの分類について考える。目標変数の確率分布は、 \[p(t|a)=\sigma(a)^{t}(1-\sigma(a))^{1-t}\] となる。ここで、N個の教師データが与えられた時について考える。 新たな入力に関するガウス過程による事前分布は、 \[p(a_{N+1})=N(a_{N+1}|0,C_{N+1})\] となる。分類問題では、教師データは必ず正しいとして使うので、ノイズ項は含まないが、安定性の問題からノイズ項に相当するパラメータ\(\nu\)で表される項を入れるとよい。 よって共分散行列は、 \[C(x_{n},x_{m})=k(x_{n},x_{m})+\nu\delta_{nm}\] となる。2クラス分類なので、片方がわかればいいので、\(t=1\)の場合について考えると、予測分布は、 \[p(t_{N+f}=1|t_{N})=\int p(t_{N+1}|a_{N+1})p(a_{N+1}|t_{n})da_{N+1}\] \[p(t_{N+1}|a_{N+1})=\sigma(a_{N+1})\] となる。この積分をガウス分布に近似することで解く。 ガウス分布に近似するには、線分推論法や、EP法、ラプラス近似などがある。ここでは、ラプラス近似のみに触れる。

  1. ラプラス近似による分類

    事後分布\(p(a_{N+1}|t_{N})\)について考えると、\(p(t_{N}|a_{N+1},a_{N})=(p(t_{N}|a_{N})\)より \[p(a_{N+1}|t_{N})=\int p(a_{N+1},a_{N}|t_{N})da_{N}=\int p(a_{N+1}|a_{N})p(a_{N}|t_{N})da_{N}\] となる。条件付き確率\(p(a_{N+1}|a_{N})\)はガウス過程より、 \[p(a_{N+1}|a_{N})=N(a_{N+1}|k^{\mathrm{T}}C_{N}^{-1}a_{N},c-k^{\mathrm{T}}C_{N}^{-1}k)\] となる。事前分布は共分散が\(C_{N}\)の正規分布であたえられ、データに関する項は、 \[p(t_{N}|a_{N})=\prod_{n=1}^{N}e^{a_{n}t_{n}}\sigma(-a_{n})\] で与えられる。\(p(a_{N+1}|a_{N})\)をテイラー展開すると、 \[\Psi(a_{N})=-\frac{1}{2}a_{N}^{\mathrm{T}}C_{N}^{-1}a_{N}-\frac{N}{2}\ln(2\pi)-\frac{1}{2}\ln|C_{N}|+t_{N}^{\mathrm{T}}a_{N}-\sum_{n=1}^{N}\ln(1+e^{a_{n}})\] となる。この時のモードは、非線形なので、反復再重み付け最小二乗法で求める。また、ヘッセ行列は \[H=W_{N}+C_{N}^{-1}\] となる。\(W_{N}\)は\(\sigma(a_{N})(1-\sigma(a_{N}))\)を要素に持つ対角行列である。 ヘッセ行列も\(a_{N}\)に関する式なので、ニュートン-ラフソン法で繰り返し更新して求める。 更新式は、 \[a_{N}^{NEW}=C_{N}(I+W_{N}C_{N})^{-1}\{t_{N}-\sigma_{N}+W_{N}a_{N}\}\] となる。ラプラス近似で求められた事後分布は、 \[q(a_{N})=N(a_{N}|a^{*}_{N},H^{-1})\] \[a_{N}^{*}=C_{N}(t_{N}-\sigma_{N})\] となる。よって予測分布の平均と分散は、 \[E[a_{N+1}|t_{N}]=k^{\mathrm{T}}(t_{N}-\sigma_{N})\] \[var[a_{N+1}|t_{N}]=c-k^{\mathrm{T}}(W_{N}^{-1}+C_{N}^{-1})^{-1}k\] となる。まだ、カーネル関数のハイパーパラメータの問題が残っている。 尤度関数\(p(t_{n}|\theta)\)を最大にすることでハイパーパラメータを決める。尤度関数は、 \[p(t_{N}|\theta)=\int p(t_{N}|a_{N})p(a_{N}|\theta)da_{N}\] となる。これもラプラス近似によって解くことができる。多クラスに拡張するときは、シグモイド関数の代わりにソフトマックス関数を用いるとよい。