はじめに
PRML(Pattern Recognition and Machine Learning) でガウス過程回帰について学んだ内容をまとめて、実際のデータを使って学習しました。主に6章の内容です。予測分布の導出が個人的に複雑だと思ったので、Step0からStep7に分けて書きました。
ガウス過程分類の予測分布を導出
Step0: 問題設定
N個の既知のデータの組( ( x 1 , t 1 ) , . . . ( x N , t N ) ) , t i ∈ { 0 , 1 } ((\mathbf{x}_1, t_1), ... (\mathbf{x}_N, t_N)), t_i \in \{0, 1\} (( x 1 , t 1 ) , ... ( x N , t N )) , t i ∈ { 0 , 1 } があります。今、新しくx N + 1 \mathbf{x}_{N+1} x N + 1 を知った時、t N + 1 t_{N+1} t N + 1 を予測したいです。つまり、予測分布p ( t N + 1 ∣ t N ) p(t_{N+1} | \mathbf{t}_N) p ( t N + 1 ∣ t N ) を知りたいです。ここで、t N = ( t 1 , . . . , t N ) T \mathbf{t}_N = (t_1, ... , t_N)^T t N = ( t 1 , ... , t N ) T です。見やすさのために、条件付きの部分のx 1 , . . . , x N , x N + 1 \mathbf{x}_1, ... , \mathbf{x}_N, \mathbf{x}_{N+1} x 1 , ... , x N , x N + 1 は省略します。また、t N + 1 ∈ { 0 , 1 } t_{N+1} \in \{0, 1\} t N + 1 ∈ { 0 , 1 } より、予測分布を知るには以下を求めれば十分です。
p ( t N + 1 = 1 ∣ t N ) (0.1)
\begin{aligned}
\tag{0.1}
p(t_{N+1}=1 | \mathbf{t}_N)
\end{aligned}
p ( t N + 1 = 1∣ t N ) ( 0.1 )
Step1: 予測分布を知るために
まず、(半)正定値カーネルk ( ⋅ , ⋅ ) k(\cdot, \cdot) k ( ⋅ , ⋅ ) を定めます。そして、ガウス過程に基づいてa N + 1 \mathbf{a}_{N+1} a N + 1 の分布を以下のようにします。
p ( a N + 1 ) = N ( a ∣ 0 , C N + 1 ) (1.1)
\tag{1.1}
\begin{aligned}
p(\mathbf{a}_{N+1}) = \mathcal{N}(\mathbf{a} | \mathbf{0}, \mathbf{C}_{N+1})
\end{aligned}
p ( a N + 1 ) = N ( a ∣ 0 , C N + 1 ) ( 1.1 )
ここで、共分散行列が正定値行列であることを保証するためにノイズのようなパラメータν \nu ν を事前に固定して、C N + 1 \mathbf{C}_{N+1} C N + 1 の要素を以下のように表します。
C N + 1 = ( C N k k T c ) w h e r e C N n m = k ( x n , x m ) + ν δ n m k n = k ( x n , x N + 1 ) c = k ( x N + 1 , x N + 1 ) + ν (1.2)
\tag{1.2}
\begin{aligned}
\mathbf{C}_{N+1} &= \begin{pmatrix}
\mathbf{C}_N & \mathbf{k} \\
\mathbf{k}^T & c
\end{pmatrix} \\
where \quad \mathbf{C}_{Nnm} &= k(\mathbf{x}_n, \mathbf{x}_m) + \nu\delta_{nm} \\
k_n &= k(\mathbf{x}_n, \mathbf{x}_{N+1}) \\
c &= k(\mathbf{x}_{N+1}, \mathbf{x}_{N+1}) + \nu
\end{aligned}
C N + 1 w h ere C N nm k n c = ( C N k T k c ) = k ( x n , x m ) + ν δ nm = k ( x n , x N + 1 ) = k ( x N + 1 , x N + 1 ) + ν ( 1.2 )
いま、t ∈ 0 , 1 t \in {0, 1} t ∈ 0 , 1 の2値分類を考えています。シグモイド関数y = σ ( a ) y = \sigma(a) y = σ ( a ) を用いて関数を変換すると、関数y ( x ) y(\mathbf{x}) y ( x ) 上の非ガウス確率過程y ∈ ( 0 , 1 ) y \in (0, 1) y ∈ ( 0 , 1 ) が得られます。この時、t t t の確率分布はベルヌーイ分布で与えられます。よって、予測分布( 0.1 ) (0.1) ( 0.1 ) は以下のようになります。
p ( t N + 1 = 1 ∣ t N ) = ∫ p ( t N + 1 = 1 ∣ a N + 1 ) p ( a N + 1 ∣ t N ) d a N + 1 = ∫ σ ( a N + 1 ) p ( a N + 1 ∣ t N ) d a N + 1 (1.3)
\tag{1.3}
\begin{aligned}
p(t_{N+1} = 1|\mathbf{t}_N) &= \int p(t_{N+1} = 1|a_{N+1})p(a_{N+1}|\mathbf{t}_N)da_{N+1} \\
&= \int
\sigma(a_{N+1})p(a_{N+1} | \mathbf{t}_N)da_{N+1} \\
\end{aligned}
p ( t N + 1 = 1∣ t N ) = ∫ p ( t N + 1 = 1∣ a N + 1 ) p ( a N + 1 ∣ t N ) d a N + 1 = ∫ σ ( a N + 1 ) p ( a N + 1 ∣ t N ) d a N + 1 ( 1.3 )
上記の積分は解析的に解けないので、別の方法を考える必要があります。p ( a N + 1 ∣ t N ) p(a_{N+1} | \mathbf{t}_N) p ( a N + 1 ∣ t N ) をガウス分布で近似できれば、p ( t N + 1 = 1 ∣ t N ) p(t_{N+1} = 1|\mathbf{t}_N) p ( t N + 1 = 1∣ t N ) を近似的に求めることができます。
Step2: p ( a N + 1 ∣ t N ) p(a_{N+1}|\mathbf{t}_N) p ( a N + 1 ∣ t N ) をガウス分布で近似するために
p ( a N + 1 ∣ t N ) = ∫ p ( a N + 1 , a N ∣ t N ) d a N = 1 p ( t N ) ∫ p ( a N + 1 , a N ) p ( t N ∣ a N + 1 , a N ) d a N = 1 p ( t N ) ∫ p ( a N + 1 ∣ a N ) p ( a N ) p ( t N ∣ a N ) d a N = ∫ p ( a N + 1 ∣ a N ) p ( a N ∣ t N ) d a N (2.1)
\tag{2.1}
\begin{aligned}
p(a_{N+1}|\mathbf{t}_N) &= \int p(a_{N+1}, \mathbf{a}_N|\mathbf{t}_N)d\mathbf{a}_N \\
&= \frac{1}{p(\mathbf{t}_N)} \int p(a_{N+1}, \mathbf{a}_N)p(\mathbf{t}_N | a_{N+1}, \mathbf{a}_N)d\mathbf{a}_N \\
&= \frac{1}{p(\mathbf{t}_N)} \int p(a_{N+1}|\mathbf{a}_N)p(\mathbf{a}_N)p(\mathbf{t}_N|\mathbf{a}_N)d\mathbf{a}_N \\
&= \int p(a_{N+1}|\mathbf{a}_N)p(\mathbf{a}_N|\mathbf{t}_N)d\mathbf{a}_N
\end{aligned}
p ( a N + 1 ∣ t N ) = ∫ p ( a N + 1 , a N ∣ t N ) d a N = p ( t N ) 1 ∫ p ( a N + 1 , a N ) p ( t N ∣ a N + 1 , a N ) d a N = p ( t N ) 1 ∫ p ( a N + 1 ∣ a N ) p ( a N ) p ( t N ∣ a N ) d a N = ∫ p ( a N + 1 ∣ a N ) p ( a N ∣ t N ) d a N ( 2.1 )
条件付き分布p ( a N + 1 ∣ a N ) p(a_{N+1}|\mathbf{a}_N) p ( a N + 1 ∣ a N ) は、( 1.1 ) , ( 1.2 ) (1.1), (1.2) ( 1.1 ) , ( 1.2 ) より以下のようになります。
p ( a N + 1 ∣ a N ) = N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) (2.2)
\tag{2.2}
\begin{aligned}
p(a_{N+1}|\mathbf{a}_N) = \mathcal{N}(a_{N+1}|\mathbf{k}^T\mathbf{C}_N^{-1}\mathbf{a}_N, c - \mathbf{k}^T\mathbf{C}_N^{-1}\mathbf{k})
\end{aligned}
p ( a N + 1 ∣ a N ) = N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) ( 2.2 )
これより、p ( a N + 1 ∣ t N ) p(a_{N+1}|\mathbf{t}_N) p ( a N + 1 ∣ t N ) は次のようにかけます。
p ( a N + 1 ∣ t N ) = ∫ p ( a N + 1 , a N ∣ t N ) d a N = ∫ N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) p ( a N ∣ t N ) d a N (2.3)
\tag{2.3}
\begin{aligned}
p(a_{N+1}|\mathbf{t}_N) &= \int p(a_{N+1}, \mathbf{a}_N|\mathbf{t}_N)d\mathbf{a}_N \\
&= \int \mathcal{N}(a_{N+1}|\mathbf{k}^T\mathbf{C}_N^{-1}\mathbf{a}_N, c - \mathbf{k}^T\mathbf{C}_N^{-1}\mathbf{k})p(\mathbf{a}_N|\mathbf{t}_N)d\mathbf{a}_N
\end{aligned}
p ( a N + 1 ∣ t N ) = ∫ p ( a N + 1 , a N ∣ t N ) d a N = ∫ N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) p ( a N ∣ t N ) d a N ( 2.3 )
よって、p ( a N ∣ t N ) p(\mathbf{a}_N|\mathbf{t}_N) p ( a N ∣ t N ) をガウス分布で近似できれば、p ( a N + 1 ∣ t N ) p(a_{N+1}|\mathbf{t}_N) p ( a N + 1 ∣ t N ) の近似が求まります。
Step3: p ( a N ∣ t N ) p(\mathbf{a}_N|\mathbf{t}_N) p ( a N ∣ t N ) をガウス分布で近似する
p ( a N ∣ t N ) p(\mathbf{a}_N|\mathbf{t}_N) p ( a N ∣ t N ) をラプラス近似という方法で、ガウス分布で近似します。ラプラス近似には、p ( a N ∣ t N ) p(\mathbf{a}_N|\mathbf{t}_N) p ( a N ∣ t N ) のモードとモードにおけるヘッセ行列が必要です。
p ( t N ∣ a N ) = ∏ n = 1 N σ ( a n ) t n ( 1 − σ ( a n ) ) 1 − t n = ∏ n = 1 N e a n t n σ ( − a n ) (3.1)
\tag{3.1}
\begin{aligned}
p(\mathbf{t}_N|\mathbf{a}_N) &= \prod^N_{n=1}\sigma(a_n)^{t_n}(1 - \sigma(a_n))^{1-t_n} \\
&= \prod^N_{n=1} e^{a_n t_n}\sigma(-a_n)
\end{aligned}
p ( t N ∣ a N ) = n = 1 ∏ N σ ( a n ) t n ( 1 − σ ( a n ) ) 1 − t n = n = 1 ∏ N e a n t n σ ( − a n ) ( 3.1 )
p ( a N ∣ t N ) = p ( a N ) p ( t N ∣ a N ) p ( t N ) ∝ p ( a N ) p ( t N ∣ a N ) (3.2)
\tag{3.2}
\begin{aligned}
p(\mathbf{a}_N|\mathbf{t}_N) &= \frac{p(\mathbf{a}_N)p(\mathbf{t}_N|\mathbf{a}_N)}{p(\mathbf{t}_N)} \\
&\propto p(\mathbf{a}_N)p(\mathbf{t}_N|\mathbf{a}_N)
\end{aligned}
p ( a N ∣ t N ) = p ( t N ) p ( a N ) p ( t N ∣ a N ) ∝ p ( a N ) p ( t N ∣ a N ) ( 3.2 )
Ψ ( a N ) = l n ( p ( a N ) p ( t N ∣ a N ) ) \Psi(\mathbf{a}_N) = ln(p(\mathbf{a}_N)p(\mathbf{t}_N|\mathbf{a}_N)) Ψ ( a N ) = l n ( p ( a N ) p ( t N ∣ a N )) とおきます。そうすると、( 1.1 ) , ( 3.2 ) (1.1), (3.2) ( 1.1 ) , ( 3.2 ) より
Ψ ( a N ) = l n p ( a N ) + l n p ( t N ∣ a N ) = − 1 2 a N T C N − 1 a N − N 2 l n ( 2 π ) − 1 2 l n ∣ C N ∣ + t N T a N − ∑ n = 1 N l n ( 1 + e a n ) (3.3)
\tag{3.3}
\begin{aligned}
\Psi(\mathbf{a}_N) &= lnp(\mathbf{a}_N) + lnp(\mathbf{t}_N|\mathbf{a}_N) \\ &= -\frac{1}{2}\mathbf{a}_N^T\mathbf{C}_N^{-1}\mathbf{a}_N - \frac{N}{2}ln(2\pi) - \frac{1}{2}ln|\mathbf{C}_N| + \mathbf{t}_N^T\mathbf{a}_N - \sum^N_{n=1}ln(1 + e^{a_n})
\end{aligned}
Ψ ( a N ) = l n p ( a N ) + l n p ( t N ∣ a N ) = − 2 1 a N T C N − 1 a N − 2 N l n ( 2 π ) − 2 1 l n ∣ C N ∣ + t N T a N − n = 1 ∑ N l n ( 1 + e a n ) ( 3.3 )
となります。p ( a N ∣ t N ) p(\mathbf{a}_N|\mathbf{t}_N) p ( a N ∣ t N ) のモードを見つけたいのですが、そのために∇ Ψ ( a N ) \nabla\Psi(\mathbf{a}_N) ∇Ψ ( a N ) が必要です。
∇ Ψ ( a N ) = t N − σ N − C N − 1 a N (3.4)
\tag{3.4}
\begin{aligned}
\nabla \Psi(\mathbf{a}_N) = \mathbf{t}_N - \mathbf{\sigma}_N - \mathbf{C}_N^{-1}\mathbf{a}_N
\end{aligned}
∇Ψ ( a N ) = t N − σ N − C N − 1 a N ( 3.4 )
ここで、σ N \mathbf{\sigma}_N σ N はσ ( a n ) \sigma(a_n) σ ( a n ) を要素にもつベクトルです。ここで、σ N \mathbf{\sigma}_N σ N はa N \mathbf{a}_N a N の非線形関数であることより、勾配をゼロにすることでモードを求めることはできないです。なので、Newton-Raphson法によってモードを求めます。それにはΨ ( a N ) \Psi(\mathbf{a}_N) Ψ ( a N ) の2回微分が必要ですが、以下のようになります。
∇ ∇ Ψ ( a N ) = − W N − C N − 1 (3.5)
\tag{3.5}
\begin{aligned}
\nabla\nabla\Psi(\mathbf{a}_N) = -\mathbf{W}_N - \mathbf{C}_N^{-1}
\end{aligned}
∇∇Ψ ( a N ) = − W N − C N − 1 ( 3.5 )
ここで、W N \mathbf{W}_N W N はσ ( a n ) ( 1 − σ ( a n ) ) \sigma(a_n)(1 - \sigma(a_n)) σ ( a n ) ( 1 − σ ( a n )) が対角成分になっている対角行列です。これらの対角成分は( 0 , 1 4 ) (0, \frac{1}{4}) ( 0 , 4 1 ) の範囲にあるため、
W N \mathbf{W}_N W N は正定値行列です。また、C N \mathbf{C}_N C N は元から正定値行列であり、二つの正定値行列の和もまた正定値行列であるので、ヘッセ行列A = − ∇ ∇ Ψ ( a N ) \mathbf{A} = -\nabla\nabla\Psi(\mathbf{a}_N) A = − ∇∇Ψ ( a N ) は正定値行列です。よって事後分布l n p ( a N ∣ t N ) lnp(\mathbf{a}_N|\mathbf{t}_N) l n p ( a N ∣ t N ) は対数凸であり、大域的な最大値である単一のモードを持ちます。Newton-Raphson方程式を用いると、a N \mathbf{a}_N a N の更新式は次のようになります。
a N n e w = a N − ( ∇ ∇ Ψ ( a N ) ) − 1 ∇ Ψ ( a N ) = a N − ( − W N − C N − 1 ) − 1 { t N − σ N − C N − 1 a N } = a N + C N ( I + W N C N ) − 1 { t N − σ N − C N − 1 a N } = C N ( I + W N C N ) − 1 { t N − σ N + ( I + W N C N ) C N − 1 a N − C N − 1 a N } = C N ( I + W N C N ) − 1 { t N − σ N + W N a N } (3.6)
\tag{3.6}
\begin{aligned}
\mathbf{a}_N^{new} &= \mathbf{a}_N - (\nabla\nabla\Psi(\mathbf{a}_N))^{-1}\nabla\Psi(\mathbf{a}_N) \\
&= \mathbf{a}_N - (-\mathbf{W}_N - \mathbf{C}_N^{-1})^{-1}\{\mathbf{t}_N - \mathbf{\sigma}_N - \mathbf{C}_N^{-1}\mathbf{a}_N\} \\
&= \mathbf{a}_N + \mathbf{C}_N(\mathbf{I} + \mathbf{W}_N\mathbf{C}_N)^{-1}\{\mathbf{t}_N - \mathbf{\sigma}_N - \mathbf{C}_N^{-1}\mathbf{a}_N\} \\
&= \mathbf{C}_N(\mathbf{I} + \mathbf{W}_N\mathbf{C}_N)^{-1}\{\mathbf{t}_N - \mathbf{\sigma}_N + (\mathbf{I} + \mathbf{W}_N\mathbf{C}_N)\mathbf{C}_N^{-1}\mathbf{a}_N - \mathbf{C}_N^{-1}\mathbf{a}_N\} \\
&= \mathbf{C}_N(\mathbf{I} + \mathbf{W}_N\mathbf{C}_N)^{-1}\{\mathbf{t}_N - \mathbf{\sigma_N} + \mathbf{W}_N\mathbf{a}_N\}
\end{aligned}
a N n e w = a N − ( ∇∇Ψ ( a N ) ) − 1 ∇Ψ ( a N ) = a N − ( − W N − C N − 1 ) − 1 { t N − σ N − C N − 1 a N } = a N + C N ( I + W N C N ) − 1 { t N − σ N − C N − 1 a N } = C N ( I + W N C N ) − 1 { t N − σ N + ( I + W N C N ) C N − 1 a N − C N − 1 a N } = C N ( I + W N C N ) − 1 { t N − σ N + W N a N } ( 3.6 )
この更新はa N \mathbf{a}_N a N がモードa N ∗ \mathbf{a}_N^* a N ∗ に収束するまで繰り返します。モードでは、勾配Ψ ( a N ) \Psi(\mathbf{a}_N) Ψ ( a N ) は0となるので、( 3.4 ) (3.4) ( 3.4 ) よりa N ∗ \mathbf{a}_N^* a N ∗ について下記の式が成り立ちます。
a N ∗ = C N ( t N − σ N ) (3.7)
\tag{3.7}
\begin{aligned}
\mathbf{a}_N^* = \mathbf{C}_N(\mathbf{t}_N - \mathbf{\sigma_N})
\end{aligned}
a N ∗ = C N ( t N − σ N ) ( 3.7 )
いま、事後分布のモードa N ∗ \mathbf{a}_N^* a N ∗ を用いてヘッセ行列を評価したものをH \mathbf{H} H とおくと、
H = W N + C N − 1 (3.8)
\tag{3.8}
\begin{aligned}
\mathbf{H} = \mathbf{W}_N + \mathbf{C}_N^{-1}
\end{aligned}
H = W N + C N − 1 ( 3.8 )
となります。ここで、W N \mathbf{W}_N W N はa N ∗ \mathbf{a}_N^* a N ∗ で評価しています。以上より、事後分布p ( a N ∣ t N ) p(\mathbf{a}_N|\mathbf{t}_N) p ( a N ∣ t N ) のモードとモードにおけるヘッセ行列が求まりました。よってラプラス近似によって、p ( a N ∣ t N ) p(\mathbf{a}_N|\mathbf{t}_N) p ( a N ∣ t N ) の正規分布による近似q ( a N ) q(\mathbf{a}_N) q ( a N ) が以下のように求まります。
q ( a N ) = N ( a N ∣ a N ∗ , H − 1 ) (3.9)
\tag{3.9}
\begin{aligned}
q(\mathbf{a}_N) = \mathcal{N}(\mathbf{a}_N | \mathbf{a}_N^*, \mathbf{H}^{-1})
\end{aligned}
q ( a N ) = N ( a N ∣ a N ∗ , H − 1 ) ( 3.9 )
Step4: p ( a N + 1 ∣ t N ) p(a_{N+1} | \mathbf{t}_N) p ( a N + 1 ∣ t N ) をガウス分布によって近似する
( 2.3 ) , ( 3.9 ) (2.3), (3.9) ( 2.3 ) , ( 3.9 ) より、以下のようになります。
p ( a N + 1 ∣ t N ) = ∫ N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) p ( a N ∣ t N ) d a N ≃ ∫ N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) N ( a N ∣ a N ∗ , H − 1 ) = N ( k T ( t N − σ N ) , c − k T ( W N − 1 + C N ) − 1 k ) = N ( μ , σ 2 ) w h e r e μ = k T ( t N − σ N ) σ 2 = c − k T ( W N − 1 + C N ) − 1 k (4.1)
\tag{4.1}
\begin{aligned}
p(a_{N+1}|\mathbf{t}_N) &= \int \mathcal{N}(a_{N+1}|\mathbf{k}^T\mathbf{C}_N^{-1}\mathbf{a}_N, c - \mathbf{k}^T\mathbf{C}_N^{-1}\mathbf{k})p(\mathbf{a}_N|\mathbf{t}_N)d\mathbf{a}_N \\
&\simeq \int \mathcal{N}(a_{N+1}|\mathbf{k}^T\mathbf{C}_N^{-1}\mathbf{a}_N, c - \mathbf{k}^T\mathbf{C}_N^{-1}\mathbf{k})\mathcal{N}(\mathbf{a}_N | \mathbf{a}_N^*, \mathbf{H}^{-1}) \\
&= \mathcal{N}(\mathbf{k}^T(\mathbf{t}_N - \mathbf{\sigma_N}), c - \mathbf{k}^T(\mathbf{W}_N^{-1} + \mathbf{C}_N)^{-1}\mathbf{k}) \\
&= \mathcal{N}(\mu, \sigma^2) \\
where \quad \mu &= \mathbf{k}^T(\mathbf{t}_N - \mathbf{\sigma_N}) \\
\sigma^2 &= c - \mathbf{k}^T(\mathbf{W}_N^{-1} + \mathbf{C}_N)^{-1}\mathbf{k}
\end{aligned}
p ( a N + 1 ∣ t N ) w h ere μ σ 2 = ∫ N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) p ( a N ∣ t N ) d a N ≃ ∫ N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) N ( a N ∣ a N ∗ , H − 1 ) = N ( k T ( t N − σ N ) , c − k T ( W N − 1 + C N ) − 1 k ) = N ( μ , σ 2 ) = k T ( t N − σ N ) = c − k T ( W N − 1 + C N ) − 1 k ( 4.1 )
Step5: σ ( a N + 1 ) \sigma(a_{N+1}) σ ( a N + 1 ) を近似する
( 1.3 ) , ( 4.1 ) (1.3), (4.1) ( 1.3 ) , ( 4.1 ) より、次のようになります。
p ( t N + 1 = 1 ∣ t N ) = ∫ σ ( a N + 1 ) p ( a N + 1 ∣ t N ) d a N + 1 ≃ ∫ σ ( a N + 1 N ( μ , σ 2 ) d a N + 1 (5.1)
\tag{5.1}
\begin{aligned}
p(t_{N+1} = 1|\mathbf{t}_N) &= \int \sigma(a_{N+1})p(a_{N+1} | \mathbf{t}_N)da_{N+1} \\
&\simeq \int \sigma(a_{N+1}\mathcal{N}(\mu, \sigma^2)da_{N+1}
\end{aligned}
p ( t N + 1 = 1∣ t N ) = ∫ σ ( a N + 1 ) p ( a N + 1 ∣ t N ) d a N + 1 ≃ ∫ σ ( a N + 1 N ( μ , σ 2 ) d a N + 1 ( 5.1 )
この積分を解析的に求めることは困難なので、次のプロビット関数Φ ( a ) \Phi(a) Φ ( a ) を考えます。これを用いてシグモイド関数を近似することを考えます。
Φ ( a ) = ∫ − ∞ a N ( θ ∣ 0 , 1 ) d θ (5.2)
\tag{5.2}
\begin{aligned}
\Phi(a) = \int^a_{-\infin} \mathcal{N}(\theta | 0, 1)d\theta
\end{aligned}
Φ ( a ) = ∫ − ∞ a N ( θ ∣0 , 1 ) d θ ( 5.2 )
そして、Φ ( λ a ) \Phi(\lambda a) Φ ( λa ) 用いて、シグモイド関数σ ( a ) \sigma(a) σ ( a ) を近似することを考えます。原点において二つの関数の微分が等しくなるようなλ \lambda λ を考えます。まず、σ ( a ) \sigma(a) σ ( a ) の原点における微分は、
d σ ( a ) d a ∣ a = 0 = e − a ( 1 + e − a ) 2 ∣ a = 0 = 1 4 (5.3)
\tag{5.3}
\begin{aligned}
\left.\frac{d\sigma(a)}{da}\right|_{a=0} &= \left.\frac{e^{-a}}{(1 + e^{-a})^2}\right|_{a=0} \\ &= \frac{1}{4}
\end{aligned}
d a d σ ( a ) a = 0 = ( 1 + e − a ) 2 e − a a = 0 = 4 1 ( 5.3 )
また、Φ ( λ a ) \Phi(\lambda a) Φ ( λa ) の原点における微分は、
d Φ ( λ a ) d a ∣ a = 0 = d Φ ( λ a ) d ( λ a ) d λ a d a ∣ a = 0 = 1 2 π e − 1 2 λ 2 a 2 λ ∣ a = 0 = λ 2 π (5.4)
\tag{5.4}
\begin{aligned}
\left.\frac{d\Phi(\lambda a)}{da}\right|_{a=0} &= \left.\frac{d\Phi(\lambda a)}{d(\lambda a)}\frac{d\lambda a}{da}\right|_{a=0} \\
&= \left.\frac{1}{\sqrt{2\pi}}e^{-\frac{1}{2}\lambda^2a^2}\lambda\right|_{a=0} \\
&= \frac{\lambda}{\sqrt{2\pi}}
\end{aligned}
d a d Φ ( λa ) a = 0 = d ( λa ) d Φ ( λa ) d a d λa a = 0 = 2 π 1 e − 2 1 λ 2 a 2 λ a = 0 = 2 π λ ( 5.4 )
( 5.3 ) , ( 5.4 ) (5.3), (5.4) ( 5.3 ) , ( 5.4 ) より、
1 4 = λ 2 π ⇔ λ = 2 π 4 (5.5)
\tag{5.5}
\begin{aligned}
\frac{1}{4} &= \frac{\lambda}{\sqrt{2\pi}} \\
\Leftrightarrow \lambda &= \frac{\sqrt{2\pi}}{4}
\end{aligned}
4 1 ⇔ λ = 2 π λ = 4 2 π ( 5.5 )
となるので、以下のようになります。
σ ( a ) ≃ Φ ( 2 π 4 a ) (5.6)
\tag{5.6}
\begin{aligned}
\sigma(a) \simeq \Phi(\frac{\sqrt{2\pi}}{4}a)
\end{aligned}
σ ( a ) ≃ Φ ( 4 2 π a ) ( 5.6 )
また、2つの関数を以下に描画しました。
pythonの描画コード
これを用いて、p ( t N + 1 = 1 ∣ t N ) p(t_{N+1} = 1|\mathbf{t}_N) p ( t N + 1 = 1∣ t N ) は次のように書けます。
p ( t N + 1 = 1 ∣ t N ) ≃ ∫ σ ( a N + 1 ) N ( μ , σ 2 ) d a N + 1 ≃ ∫ Φ ( 2 π 4 a N + 1 ) N ( μ , σ 2 ) d a N + 1 (5.7)
\tag{5.7}
\begin{aligned}
p(t_{N+1} = 1|\mathbf{t}_N) &\simeq \int \sigma(a_{N+1})\mathcal{N}(\mu, \sigma^2)da_{N+1} \\
&\simeq \int \Phi(\frac{\sqrt{2\pi}}{4} a_{N+1})\mathcal{N}(\mu, \sigma^2)da_{N+1} \\
\end{aligned}
p ( t N + 1 = 1∣ t N ) ≃ ∫ σ ( a N + 1 ) N ( μ , σ 2 ) d a N + 1 ≃ ∫ Φ ( 4 2 π a N + 1 ) N ( μ , σ 2 ) d a N + 1 ( 5.7 )
Step6: ∫ Φ ( 2 π 4 a N + 1 ) N ( μ , σ 2 ) d a N + 1 \int \Phi(\frac{\sqrt{2\pi}}{4} a_{N+1})\mathcal{N}(\mu, \sigma^2)da_{N+1} ∫ Φ ( 4 2 π a N + 1 ) N ( μ , σ 2 ) d a N + 1 を求める
まず、X ∼ N ( 0 , 8 π ) , Y ∼ N ( μ , σ ) X \sim \mathcal{N}(0, \frac{8}{\pi}), Y \sim \mathcal{N}(\mu, \sigma) X ∼ N ( 0 , π 8 ) , Y ∼ N ( μ , σ ) でX X X とY Y Y は互いに独立とします。そうすると、X − Y ∼ N ( − μ , λ − 2 + σ 2 ) X - Y \sim \mathcal{N}(-\mu, \lambda^{-2} + \sigma^2) X − Y ∼ N ( − μ , λ − 2 + σ 2 ) より、
∫ Φ ( 2 π 4 a N + 1 ) N ( μ , σ 2 ) d a N + 1 = ∫ P ( X ≤ a N + 1 ) P ( Y = a N + 1 ) d a N + 1 = ∫ P ( X ≤ Y ∣ Y = a N + 1 ) P ( Y = a N + 1 ) d a N + 1 = ∫ P ( X ≤ Y ) = P ( X − Y ≤ 0 ) = Φ ( 0 − ( − μ ) 8 π + σ 2 ) = Φ ( μ 8 π + σ 2 ) (6.1)
\tag{6.1}
\begin{aligned}
\int \Phi(\frac{\sqrt{2\pi}}{4} a_{N+1})\mathcal{N}(\mu, \sigma^2)da_{N+1} &= \int P(X \leq a_{N+1})P(Y = a_{N+1})da_{N+1} \\
&= \int P(X \leq Y | Y = a_{N+1})P(Y = a_{N+1})da_{N+1} \\
&= \int P(X \leq Y) \\
&= P(X - Y \leq 0) \\
&= \Phi\left(\frac{0 - (-\mu)}{\sqrt{\frac{8}{\pi} + \sigma^2}}\right) \\
&= \Phi\left(\frac{\mu}{\sqrt{\frac{8}{\pi} + \sigma^2}}\right)
\end{aligned}
∫ Φ ( 4 2 π a N + 1 ) N ( μ , σ 2 ) d a N + 1 = ∫ P ( X ≤ a N + 1 ) P ( Y = a N + 1 ) d a N + 1 = ∫ P ( X ≤ Y ∣ Y = a N + 1 ) P ( Y = a N + 1 ) d a N + 1 = ∫ P ( X ≤ Y ) = P ( X − Y ≤ 0 ) = Φ π 8 + σ 2 0 − ( − μ ) = Φ π 8 + σ 2 μ ( 6.1 )
となります。
( 5.6 ) , ( 6.1 ) (5.6), (6.1) ( 5.6 ) , ( 6.1 ) より、
p ( t N + 1 = 1 ∣ t N ) ≃ Φ ( μ 8 π + σ 2 ) (6.2)
\tag{6.2}
\begin{aligned}
p(t_{N+1} = 1|\mathbf{t}_N) &\simeq \Phi\left(\frac{\mu}{\sqrt{\frac{8}{\pi} + \sigma^2}}\right)
\end{aligned}
p ( t N + 1 = 1∣ t N ) ≃ Φ π 8 + σ 2 μ ( 6.2 )
となります。
Step7: Φ ( μ 8 π + σ 2 ) \Phi\left(\frac{\mu}{\sqrt{\frac{8}{\pi} + \sigma^2}}\right) Φ ( π 8 + σ 2 μ ) を近似する
( 5.6 ) , ( 6.2 ) (5.6), (6.2) ( 5.6 ) , ( 6.2 ) より、以下のようになります。
p ( t N + 1 = 1 ∣ t N ) ≃ Φ ( μ 8 π + σ 2 ) ≃ σ ( μ 2 π 4 8 π + σ 2 ) = σ ( μ 1 + π 8 σ 2 ) (7.1)
\tag{7.1}
\begin{aligned}
p(t_{N+1} = 1|\mathbf{t}_N) &\simeq \Phi\left(\frac{\mu}{\sqrt{\frac{8}{\pi} + \sigma^2}}\right) \\
&\simeq \sigma\left(\frac{\mu}{\frac{\sqrt{2\pi}}{4}\sqrt{\frac{8}{\pi} + \sigma^2}}\right) \\
&= \sigma\left(\frac{\mu}{\sqrt{1 + \frac{\pi}{8}\sigma^2}}\right)
\end{aligned}
p ( t N + 1 = 1∣ t N ) ≃ Φ π 8 + σ 2 μ ≃ σ 4 2 π π 8 + σ 2 μ = σ ( 1 + 8 π σ 2 μ ) ( 7.1 )
まとめ
p ( t N + 1 = 1 ∣ t N ) ( ∵ S t e p 0 ) = ∫ σ ( a N + 1 ) p ( a N + 1 ∣ t N ) d a N + 1 ( ∵ S t e p 1 ) = ∫ σ ( a N + 1 ) ∫ N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) p ( a N ∣ t N ) d a N d a N + 1 ( ∵ S t e p 2 ) ≃ ∫ σ ( a N + 1 ) ∫ N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) N ( a N ∣ a N ∗ , H − 1 ) d a N d a N + 1 ( ∵ S t e p 3 ) = ∫ σ ( a N + 1 ) N ( k T ( t N − σ N ) , c − k T ( W N − 1 + C N ) − 1 k ) d a N + 1 ( ∵ S t e p 4 ) ≃ ∫ Φ ( 2 π 4 a ) N ( k T ( t N − σ N ) , c − k T ( W N − 1 + C N ) − 1 k ) d a N + 1 ( ∵ S t e p 5 ) = Φ ( k T ( t N − σ N ) 8 π + ( c − k T ( W N − 1 + C N ) − 1 k ) ) ( ∵ S t e p 6 ) ≃ σ ( k T ( t N − σ N ) 1 + π 8 ( c − k T ( W N − 1 + C N ) − 1 k ) ) ( ∵ S t e p 7 )
\begin{aligned}
&p(t_{N+1} = 1|\mathbf{t}_N) &(\because Step0) \\
=& \int
\sigma(a_{N+1})p(a_{N+1} | \mathbf{t}_N)da_{N+1} &(\because Step1) \\
=& \int \sigma(a_{N+1})\int \mathcal{N}(a_{N+1}|\mathbf{k}^T\mathbf{C}_N^{-1}\mathbf{a}_N, c - \mathbf{k}^T\mathbf{C}_N^{-1}\mathbf{k})p(\mathbf{a}_N|\mathbf{t}_N)d\mathbf{a}_Nda_{N+1} &(\because Step2) \\
\simeq& \int \sigma(a_{N+1})\int \mathcal{N}(a_{N+1}|\mathbf{k}^T\mathbf{C}_N^{-1}\mathbf{a}_N, c - \mathbf{k}^T\mathbf{C}_N^{-1}\mathbf{k})\mathcal{N}(\mathbf{a}_N | \mathbf{a}_N^*, \mathbf{H}^{-1})d\mathbf{a}_Nda_{N+1} &(\because Step3) \\
=& \int \sigma(a_{N+1})\mathcal{N}(\mathbf{k}^T(\mathbf{t}_N - \mathbf{\sigma_N}), c - \mathbf{k}^T(\mathbf{W}_N^{-1} + \mathbf{C}_N)^{-1}\mathbf{k})da_{N+1} &(\because Step4) \\
\simeq& \int \Phi(\frac{\sqrt{2\pi}}{4}a)\mathcal{N}(\mathbf{k}^T(\mathbf{t}_N - \mathbf{\sigma_N}), c - \mathbf{k}^T(\mathbf{W}_N^{-1} + \mathbf{C}_N)^{-1}\mathbf{k})da_{N+1} &(\because Step5) \\
=& \Phi\left(\frac{\mathbf{k}^T(\mathbf{t}_N - \mathbf{\sigma_N})}{\sqrt{\frac{8}{\pi} + (c - \mathbf{k}^T(\mathbf{W}_N^{-1} + \mathbf{C}_N)^{-1}\mathbf{k}})}\right) &(\because Step6) \\
\simeq& \sigma\left(\frac{\mathbf{k}^T(\mathbf{t}_N - \mathbf{\sigma_N})}{\sqrt{1 + \frac{\pi}{8}(c - \mathbf{k}^T(\mathbf{W}_N^{-1} + \mathbf{C}_N)^{-1}\mathbf{k}})}\right) &(\because Step7) \\
\end{aligned}
= = ≃ = ≃ = ≃ p ( t N + 1 = 1∣ t N ) ∫ σ ( a N + 1 ) p ( a N + 1 ∣ t N ) d a N + 1 ∫ σ ( a N + 1 ) ∫ N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) p ( a N ∣ t N ) d a N d a N + 1 ∫ σ ( a N + 1 ) ∫ N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) N ( a N ∣ a N ∗ , H − 1 ) d a N d a N + 1 ∫ σ ( a N + 1 ) N ( k T ( t N − σ N ) , c − k T ( W N − 1 + C N ) − 1 k ) d a N + 1 ∫ Φ ( 4 2 π a ) N ( k T ( t N − σ N ) , c − k T ( W N − 1 + C N ) − 1 k ) d a N + 1 Φ π 8 + ( c − k T ( W N − 1 + C N ) − 1 k ) k T ( t N − σ N ) σ 1 + 8 π ( c − k T ( W N − 1 + C N ) − 1 k ) k T ( t N − σ N ) ( ∵ St e p 0 ) ( ∵ St e p 1 ) ( ∵ St e p 2 ) ( ∵ St e p 3 ) ( ∵ St e p 4 ) ( ∵ St e p 5 ) ( ∵ St e p 6 ) ( ∵ St e p 7 )
パラメータの最適化
カーネルk ( ⋅ , ⋅ ) k(\cdot, \cdot) k ( ⋅ , ⋅ ) を決まった関数ではなくパラメータθ \mathbf{\theta} θ をもったものとして、そのθ \mathbf{\theta} θ を最適化することを考えます。事後分布p ( θ ∣ t N ) p(\mathbf{\theta} | \mathbf{t}_N) p ( θ ∣ t N ) は以下のようになります。
p ( θ ∣ t N ) ∝ p ( θ ) p ( t N ∣ θ )
\begin{aligned}
p(\mathbf{\theta} | \mathbf{t}_N) &\propto p(\mathbf{\theta})p(\mathbf{\mathbf{t}_N} | \mathbf{\theta}) \\
\end{aligned}
p ( θ ∣ t N ) ∝ p ( θ ) p ( t N ∣ θ )
事前分布p ( θ ) p(\mathbf{\theta}) p ( θ ) は、適当に設定すればよいので、尤度関数p ( t N ∣ θ ) p(\mathbf{\mathbf{t}_N} | \mathbf{\theta}) p ( t N ∣ θ ) について考えます。(例えばp ( θ ) = N ( 0 , α − 1 I ) p(\mathbf{\theta}) = \mathcal{N}(\mathbf{0}, \alpha^{-1}\mathbf{I}) p ( θ ) = N ( 0 , α − 1 I ) のようにします)
尤度関数のモードを求めることは困難です。なので、対数尤度関数の勾配∂ l n p ( t N ∣ θ ) ∂ θ \frac{\partial lnp(\mathbf{t}_N|\mathbf{\theta})}{\partial \mathbf{\theta}} ∂ θ ∂ l n p ( t N ∣ θ ) を求めて、それを用いて標準的な非線形の最適化アルゴリズムによって最適解に近い解を求めることを目標にします。
∂ Ψ ( a N ∗ ) ∂ a N = 0 \frac{\partial \Psi(\mathbf{a}_N^*)}{\partial \mathbf{a}_N} = 0 ∂ a N ∂ Ψ ( a N ∗ ) = 0 であるので、以下のようになります。
∂ l n p ( t N ∣ θ ) ∂ θ j = − 1 2 ∑ n = 1 N ∂ l n ∣ W N + C N − 1 ∣ ∂ a n ∗ ∂ a n ∗ ∂ θ j (A.1)
\tag{A.1}
\begin{aligned}
\frac{\partial lnp(\mathbf{t}_N | \mathbf{\theta})}{\partial \theta_j} = -\frac{1}{2}\sum^N_{n=1}\frac{\partial ln|\mathbf{W}_N + \mathbf{C}_N^{-1}|}{\partial a_n^*}\frac{\partial a_n^*}{\partial \theta_j} \\
\end{aligned}
∂ θ j ∂ l n p ( t N ∣ θ ) = − 2 1 n = 1 ∑ N ∂ a n ∗ ∂ l n ∣ W N + C N − 1 ∣ ∂ θ j ∂ a n ∗ ( A.1 )
ここで、
∂ l n ∣ W N + C N − 1 ∣ ∂ a n ∗ = T r [ ( W N + C N − 1 ) − 1 ∂ W N ∂ a N ∗ ] = T r [ ( C N − 1 ( I + C N W N ) ) − 1 ∂ W N ∂ a N ∗ ] = [ ( I + C N W N ) − 1 C N ] n n ∂ ∂ a n ∗ σ ( a n ∗ ) ( 1 − σ ( a n ∗ ) ) = [ ( I + C N W N ) − 1 C N ] n n σ ( a n ∗ ) ( 1 − σ ( a n ∗ ) ) ( 1 − 2 σ ( a n ∗ ) ) (A.2)
\tag{A.2}
\begin{aligned}
\frac{\partial ln|\mathbf{W}_N + \mathbf{C}_N^{-1}|}{\partial a_n^*} &= Tr\left[(\mathbf{W}_N + \mathbf{C}_N^{-1})^{-1}\frac{\partial\mathbf{W}_N}{\partial\mathbf{a}_N^*}\right] \\
&= Tr\left[(\mathbf{C}_N^{-1}(\mathbf{I} + \mathbf{C}_N\mathbf{W}_N))^{-1}\frac{\partial\mathbf{W}_N}{\partial\mathbf{a}_N^*}\right] \\
&= [(\mathbf{I} + \mathbf{C}_N\mathbf{W}_N)^{-1}\mathbf{C}_N]_{nn}\frac{\partial}{\partial a_n^*}\sigma(a_n^*)(1 - \sigma(a_n^*)) \\
&= [(\mathbf{I} + \mathbf{C}_N\mathbf{W}_N)^{-1}\mathbf{C}_N]_{nn}\sigma(a_n^*)(1 - \sigma(a_n^*))(1 - 2\sigma(a_n^*))
\end{aligned}
∂ a n ∗ ∂ l n ∣ W N + C N − 1 ∣ = T r [ ( W N + C N − 1 ) − 1 ∂ a N ∗ ∂ W N ] = T r [ ( C N − 1 ( I + C N W N ) ) − 1 ∂ a N ∗ ∂ W N ] = [( I + C N W N ) − 1 C N ] nn ∂ a n ∗ ∂ σ ( a n ∗ ) ( 1 − σ ( a n ∗ )) = [( I + C N W N ) − 1 C N ] nn σ ( a n ∗ ) ( 1 − σ ( a n ∗ )) ( 1 − 2 σ ( a n ∗ )) ( A.2 )
となるので、対数尤度関数の微分は以下のようになります。
∂ l n p ( t N ∣ θ ) ∂ θ j = − 1 2 ∑ n = 1 N [ ( I + C N W N ) − 1 C N ] n n σ ( a n ∗ ) ( 1 − σ ( a n ∗ ) ) ( 1 − 2 σ ( a n ∗ ) ) ∂ a n ∗ ∂ θ j (A.3)
\tag{A.3}
\begin{aligned}
\frac{\partial lnp(\mathbf{t}_N | \mathbf{\theta})}{\partial \theta_j} = -\frac{1}{2}\sum^N_{n=1}[(\mathbf{I} + \mathbf{C}_N\mathbf{W}_N)^{-1}\mathbf{C}_N]_{nn}\sigma(a_n^*)(1 - \sigma(a_n^*))(1 - 2\sigma(a_n^*))\frac{\partial a_n^*}{\partial \theta_j}
\end{aligned}
∂ θ j ∂ l n p ( t N ∣ θ ) = − 2 1 n = 1 ∑ N [( I + C N W N ) − 1 C N ] nn σ ( a n ∗ ) ( 1 − σ ( a n ∗ )) ( 1 − 2 σ ( a n ∗ )) ∂ θ j ∂ a n ∗ ( A.3 )
今、∂ a N ∗ ∂ θ j \frac{\partial \mathbf{a}_N^*}{\partial \theta_j} ∂ θ j ∂ a N ∗ を考えて、
∂ a N ∗ ∂ θ j = ∂ ∂ θ j ( C N ( t N − σ N ) ) = ∂ C N ∂ θ j ( t N − σ N ) − C N ∂ σ N ∂ θ j (A.4)
\tag{A.4}
\begin{aligned}
\frac{\partial \mathbf{a}_N^*}{\partial \theta_j} &= \frac{\partial}{\partial \theta_j}(\mathbf{C}_N(\mathbf{t}_N - \mathbf{\sigma}_N)) \\
&= \frac{\partial \mathbf{C}_N}{\partial \theta_j}(\mathbf{t}_N - \mathbf{\sigma}_N) - \mathbf{C}_N\frac{\partial \mathbf{\sigma}_N}{\partial \theta_j}
\end{aligned}
∂ θ j ∂ a N ∗ = ∂ θ j ∂ ( C N ( t N − σ N )) = ∂ θ j ∂ C N ( t N − σ N ) − C N ∂ θ j ∂ σ N ( A.4 )
ここで、
∂ σ N ∂ θ j = ∂ σ N ∂ a N ∗ ∂ a N ∗ ∂ θ j = ( ∂ σ ( a 1 ∗ ) ∂ a 1 ∗ 0 ⋱ 0 ∂ σ ( a N ∗ ) ∂ a N ∗ ) ∂ a N ∗ ∂ θ j = ( σ ( a 1 ∗ ) ( 1 − σ ( a 1 ∗ ) ) 0 ⋱ 0 σ ( a N ∗ ) ( 1 − σ ( a N ∗ ) ) ) ∂ a N ∗ ∂ θ j = W N ∂ a N ∗ ∂ θ j (A.5)
\tag{A.5}
\begin{aligned}
\frac{\partial \mathbf{\sigma}_N}{\partial \theta_j} &= \frac{\partial \mathbf{\sigma}_N}{\partial \mathbf{a}_N^*}\frac{\partial \mathbf{a}_N^*}{\partial \theta_j} \\
&= \begin{pmatrix}
\frac{\partial \sigma(a_1^*)}{\partial a_1^*} & & \text{\huge{0}} \\
& \ddots & \\
\text{\huge{0}} & & \frac{\partial \sigma(a_N^*)}{\partial a_N^*} \\
\end{pmatrix}
\frac{\partial \mathbf{a}_N^*}{\partial \theta_j} \\
&= \begin{pmatrix}
\sigma(a_1^*)(1 - \sigma(a_1^*)) & & \text{\huge{0}} \\
& \ddots & \\
\text{\huge{0}} & & \sigma(a_N^*)(1 - \sigma(a_N^*)) \\
\end{pmatrix}
\frac{\partial \mathbf{a}_N^*}{\partial \theta_j} \\
&= \mathbf{W}_N\frac{\partial \mathbf{a}_N^*}{\partial \theta_j}
\end{aligned}
∂ θ j ∂ σ N = ∂ a N ∗ ∂ σ N ∂ θ j ∂ a N ∗ = ∂ a 1 ∗ ∂ σ ( a 1 ∗ ) 0 ⋱ 0 ∂ a N ∗ ∂ σ ( a N ∗ ) ∂ θ j ∂ a N ∗ = σ ( a 1 ∗ ) ( 1 − σ ( a 1 ∗ )) 0 ⋱ 0 σ ( a N ∗ ) ( 1 − σ ( a N ∗ )) ∂ θ j ∂ a N ∗ = W N ∂ θ j ∂ a N ∗ ( A.5 )
これより、
∂ a N ∗ ∂ θ j = ∂ C N ∂ θ j ( t N − σ N ) − C N W N ∂ a N ∗ ∂ θ j ⇔ ( I + C N W N ) ∂ a N ∗ ∂ θ j = ∂ C N ∂ θ j ( t N − σ N ) ⇔ ∂ a N ∗ ∂ θ j = ( I + C N W N ) − 1 ∂ C N ∂ θ j ( t N − σ N ) (A.6)
\tag{A.6}
\begin{aligned}
&\frac{\partial \mathbf{a}_N^*}{\partial \theta_j} = \frac{\partial \mathbf{C}_N}{\partial \theta_j}(\mathbf{t}_N - \mathbf{\sigma}_N) - \mathbf{C}_N\mathbf{W}_N\frac{\partial \mathbf{a}_N^*}{\partial \theta_j} \\
\Leftrightarrow& (\mathbf{I} + \mathbf{C}_N\mathbf{W}_N)\frac{\partial \mathbf{a}_N^*}{\partial \theta_j} = \frac{\partial \mathbf{C}_N}{\partial \theta_j}(\mathbf{t}_N - \mathbf{\sigma}_N) \\
\Leftrightarrow& \frac{\partial \mathbf{a}_N^*}{\partial \theta_j} = (\mathbf{I} + \mathbf{C}_N\mathbf{W}_N)^{-1}\frac{\partial \mathbf{C}_N}{\partial \theta_j}(\mathbf{t}_N - \mathbf{\sigma}_N)
\end{aligned}
⇔ ⇔ ∂ θ j ∂ a N ∗ = ∂ θ j ∂ C N ( t N − σ N ) − C N W N ∂ θ j ∂ a N ∗ ( I + C N W N ) ∂ θ j ∂ a N ∗ = ∂ θ j ∂ C N ( t N − σ N ) ∂ θ j ∂ a N ∗ = ( I + C N W N ) − 1 ∂ θ j ∂ C N ( t N − σ N ) ( A.6 )
であるので、これと( A .3 ) (A.3) ( A .3 ) より対数尤度関数の微分が求まりました。
トイデータで学習
ガウス過程回帰を用いて、2種類のあやめの分類問題に取り組みました。
pythonの学習コード
予測を等高線で表しています。数字が大きい方は青色のデータである可能性が高いと予測しています。一枚目の画像は訓練データを、二枚目の画像はテストデータを点で表示しています。
Discussion