マサムネの部屋

正規分布の事後分布に関する公式

変数yがxによって線形に生成されていると仮定し、xが正規分布に従っているとすると、\( p(y|x ) \)も正規分布に従います。この情報から\(p(x|y) , p(y) \)を求める事が出来ますが、どちらも正規分布に従います。その計算を解説してます。

スポンサーリンク

問題設定

正規分布に従う確率変数\(X \)があるとします。
$$\begin{eqnarray}
p(x)= \mathcal{N} (x| \mu , \Sigma )
\end{eqnarray}$$
この変数Xから、新たに確率変数\(Y\)が生成されていると考えます。
$$\begin{eqnarray}
y =Ax+b
\end{eqnarray}$$
この時、xが分かっている時の条件分布は以下の形に書けます。
$$\begin{eqnarray}
p(y|x) =\mathcal{N}(y|Ax +b , D)
\end{eqnarray}$$
1
この時、事後分布はどうなるか?というのが問題です。答えは以下のようになります。

$$\begin{eqnarray}
p(y|x) &=&\mathcal{N}(y|Ax +b , D) \\
p(x)&=& \mathcal{N} (x|\mu , \Sigma )
\end{eqnarray}$$
のとき、
$$\begin{eqnarray}
p(x|y) &=&\mathcal{N}(x|M\{A^T D^{-1} A +\Sigma ^{-1} \mu \} , M ) \\
M&=& (A^{T} D^{-1}(y- b ) +\Sigma ^{-1} )^{-1} \\
p(y)&=& \mathcal{N} (y|A\mu +b , D+ A \Sigma A^T )
\end{eqnarray}$$

例えば、確率主成分分析を行う時に登場する公式です。

計算

上で述べた答えを導くための計算を載せます。初めに、
$$\begin{eqnarray}
p(x|y) &=&\mathcal{N}(x|M\{A^T D^{-1} A +\Sigma ^{-1} \mu \} , M ) \\
M&=& (A^{T} D^{-1}A +\Sigma ^{-1} )^{-1}
\end{eqnarray}$$
については、具体的に計算します。
$$\begin{eqnarray}
p(x|y) &\propto & p(y|x) p(x) \\
&\propto & \exp[ -\frac{1}{2} {\rm Tr } \{ D^{-1}
( y-Ax-b)^{T} (y-Ax-b) +\Sigma ^{-1} (x-\mu )^T (x-\mu ) \} ] \\
&\propto & \exp[ -\frac{1}{2} {\rm Tr } \{ x^T (A^T D^{-1} A +\Sigma ^{-1} ) x
-2x^{T} (A^{T} D^{-1}(y- b )+\Sigma ^{-1} \mu ) \} ]
\end{eqnarray}$$
となるので、2 \( M = (A^{T} D^{-1}A +\Sigma ^{-1} )^{-1} \)と置く事で、
$$\begin{eqnarray}
p(x|y) &=&\mathcal{N}(x|M\{A^T D^{-1} (y- b ) +\Sigma ^{-1} \mu \} , M ) \\
M&=& (A^{T} D^{-1}A +\Sigma ^{-1} )^{-1}
\end{eqnarray}$$
となります。
\( p(y) \)は、\( p(y) = \int p(y|x ) p(x) dx \)で計算されます。上でした\( p(y|x ) \)の計算を見ると、\( y \)についての二次式にまとまる事が分かります。つまり、\( p(y) \)は正規分布に従う事が分かります。正規分布は平均値と分散が分かれば良いので、それを計算しましょう。
$$\begin{eqnarray}
E_{p(y)}[y] &=& \int y \int p(y|x)p(x) dxdy \\
&=& \int E_{p(y|x)}[y] p(x)dx \\
&=& E_{p(x)} [Ax+b]\\
&=& A\mu +b
\end{eqnarray}$$
同様に、分散も計算します。
$$\begin{eqnarray}
E_{p(y)}[(y-A\mu -b)^T (y-A\mu -b) ]
\end{eqnarray}$$
平均の計算と同じように、\( p(y|x) \)の分散を出したいのですが、\(E_{p(y|x)}[y] = Ax+b \)なので、少し式変形をします。
$$\begin{eqnarray}
E_{p(y)}[(y-A\mu -b)^T (y-A\mu -b) ]&=& E_{p(y)}[(y-Ax -b)^T (y-Ax -b) \\
&+& 2(y-Ax -b )^T A(x- \mu) + (A(x-\mu))^T A(x- \mu ) ] \\
&=& E_{p(x) } [ E_{p(y|x)}[(y-Ax -b)^T (y-Ax -b) \\
&+&2(y-Ax -b )^T A(x- \mu) ]+ (A(x-\mu))^T A(x- \mu ) ]\\
&=& D +E_{p(x) } [(A(x-\mu)^T (A(x- \mu )] \\
&=& D+A\Sigma A^T
\end{eqnarray}$$
以上の計算から、
$$\begin{eqnarray}
p(y)= \mathcal{N} (y|A\mu +b , D+ A \Sigma A^T )
\end{eqnarray}$$
となります。

まとめ

  1. \(D =A^T \Sigma A \)ですが、沢山書くのは大変なので、Dとしておきます。
  2. \(x^T Ax =Tr(A^T xx^T ) \)となり、トレースの中では転置を取ったり正方行列の積を交換できることを使っています。