機械学習基礎理論独習

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

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

関連ベクトルマシンによる回帰

RVM(関連ベクトルマシン)のモデルの定義

与えられた入力ベクトル\bf xに対する実数値の目標変数tの条件付き確率分布を次のようにモデル化します。

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

ここで、\beta^{-1}=\sigma^2とします。
平均値は次の線形モデルで定義されます。

\begin{eqnarray}
y({\bf x})=\sum_{n=1}^Nw_nk({\bf x},{\bf x}_n)+b\tag{2}
\end{eqnarray}

ここで、{\bf k}({\bf x})=(k({\bf x},{\bf x}_1),\cdots,k({\bf x},{\bf x}_N),1)^\topと定義すると、(2)は以下のように書けます。

\begin{eqnarray}
y({\bf x})={\bf w}^\top{\bf k}({\bf x})\tag{3}
\end{eqnarray}

(3)で、{\bf w}=(w_1,\cdots,w_N,w_{N+1})^\top=(w_1,\cdots,w_M)^\top,w_M=bとしました。
M=N+1 であることに注意してください。

ところで、(3)は線形回帰のモデルy({\bf x})={\bf w}^\top{\boldsymbol\phi}({\bf x})と同じ形をしているので、
PRMLに倣って、{\boldsymbol\phi}({\bf x})={\bf k}({\bf x})として、計算していきます。

(1),(3)より、

\begin{eqnarray}
p(t|{\bf x},{\bf w},\beta)=\mathcal{N}(t|{\bf w}^\top{\boldsymbol\phi}({\bf x}),\beta^{-1})\tag{4}
\end{eqnarray}

と書けます。

尤度

入力ベクトル{\bf x}N個与えられたとして、その全体をデータ行列{\bf X}=({\bf x}_1,\cdots,{\bf x}_N)^\topで表すことにします。
また、対応する出力値をまとめて{\bf t}=(t_1,\ldots,t_N)^\topで表します。
この時、尤度関数は次の式で与えられます。

\begin{eqnarray}
p({\bf t}|{\bf X},{\bf w},\beta)&=&\prod_{n=1}^Np(t_n|{\bf x}_n,{\bf w},\beta)\\
&=&\prod_{n=1}^N\mathcal{N}(t_n|{\bf w}^\top{\boldsymbol\phi}({\bf x}_n),\beta^{-1})\\
&=&\mathcal{N}({\bf t}|{\boldsymbol\Phi}{\bf w},\beta^{-1}{\bf I}_N)\tag{5}
\end{eqnarray}

(5)で、{\boldsymbol\Phi}=({\boldsymbol\phi}({\bf x}_1),\cdots,{\boldsymbol\phi}({\bf x}_N))^\top\in\mathbb{R}^{N\times M}とおきました。

事前分布

w_i の事前分布は平均 0、分散 \alpha^{-1}正規分布であるとします。
w_i ごとに異なった \alpha_i を用いることに注意してください。

\begin{eqnarray}
p(w_i|\alpha_i)=\mathcal{N}(w_i|0,\alpha_i^{-1})\tag{6}
\end{eqnarray}

ここで、式を見やすくするために行列\bf Aを対角要素が\alpha_iである行列

\begin{eqnarray}
{\bf A}&=&{\rm diag}(\alpha_1,\cdots,\alpha_M)\\
&=&\begin{pmatrix}
\alpha_1 & \cdots & 0\\
\vdots & \ddots & \vdots\\
0 & \cdots & \alpha_M\\
\end{pmatrix}\tag{7}
\end{eqnarray}

と定義します。

(6),(7)より{\bf w}の事前分布は以下のように書けます。

\begin{eqnarray}
p({\bf w}|{\boldsymbol\alpha})=\mathcal{N}({\bf w}|{\bf 0},{\bf A}^{-1})\tag{8}
\end{eqnarray}

ここで、{\boldsymbol\alpha}=(\alpha_1,\ldots,\alpha_M)^\topとおきました。

事後分布

\bf wの事後分布を求めます。

\begin{eqnarray}
p({\bf w}|{\bf t},{\bf X},{\boldsymbol\alpha},\beta)={\mathcal N}({\bf w}|{\bf m},{\bf\Sigma})\tag{9}
\end{eqnarray}

\begin{eqnarray}
{\bf m}=\beta{\bf\Sigma}{\boldsymbol\Phi}^\top{\bf t}\tag{10}
\end{eqnarray}

\begin{eqnarray}
{\bf\Sigma}=\left({\bf A}+\beta{\boldsymbol\Phi}^\top{\boldsymbol\Phi}\right)^{-1}\tag{11}
\end{eqnarray}

導出はPRML演習問題 7.9(基本)を参照してください。

対数周辺尤度を求める

対数周辺尤度は以下のようになります。

\begin{eqnarray}
\ln p({\bf t}|{\bf X},{\boldsymbol\alpha},\beta)&=&\ln {\mathcal N}({\bf t}|{\bf 0},{\bf C})\\
&=&-\frac{1}{2}\left(N\ln(2\pi)+\ln|{\bf C}|+{\bf t}^\top{\bf C}^{-1}{\bf t}\right)\tag{12}
\end{eqnarray}

\begin{eqnarray}
{\bf C}=\beta^{-1}{\bf I}+{\boldsymbol\Phi}{\bf A}^{-1}{\boldsymbol\Phi}^\top\tag{13}
\end{eqnarray}

導出はPRML演習問題 7.10(標準) wwwまたはPRML演習問題 7.11(標準)を参照してください。

{\boldsymbol\alpha},\betaエビデンス近似にて求める

{\boldsymbol\alpha},\beta は対数周辺尤度を最大化することにより、以下のように更新式が求まります。

\begin{eqnarray}
\alpha_i^{\rm new}=\frac{\gamma_i}{m_i^2}\tag{14}
\end{eqnarray}

\begin{eqnarray}
(\beta^{\rm new})^{-1}=\frac{||{\bf t}-{\boldsymbol\Phi}{\bf m}||^2}{N-\sum_i\gamma_i}\tag{15}
\end{eqnarray}

\begin{eqnarray}
\gamma_i=1-\alpha_i\Sigma_{ii}\tag{16}
\end{eqnarray}

導出はPRML演習問題 7.12(標準) wwwを参照してください。

{\boldsymbol\alpha},\betaの更新アルゴリズム

1: {\boldsymbol\alpha},\betaを初期化する

2: {\boldsymbol\alpha},\betaを用いて、{\bf m},{\bf\Sigma}を計算する

3: {\bf m},{\bf\Sigma}を用いて、{\boldsymbol\alpha},\betaを計算する

4: {\boldsymbol\alpha},\betaが収束していれば、終了する。そうでなければ2へ戻る

偉人の名言

f:id:olj611:20210424092326p:plain:h300
明日死ぬかのように生きよ。永遠に生きるかのように学べ。
ガンジー

動画

なし

目次へ戻る