線形次元削減

観測データについて

観測データを以下のように定義する。

$$ X = \{ x_1, x_2, ...., x_n \} $$

$$ x_n \in \mathbb{ R }^D $$

 

例えば、観測データが32×32の画像データならば、観測データの次元数Dは、1024次元となる。

$$ x_n \in \mathbb{ R }^D $$

 

データ生成過程について

各画像データは、以下のモデルから生成されていると仮定する。

$$ x_n = W^T z_n + μ  $$

$$ p(x_n | z_n, W, μ) = N(x_n | W^T z_n + μ, σ^2_x I_D)  $$

ただし、

$$ W \in \mathbb{ R }^M×D, z_n \in \mathbb{ R }^M, μ \in \mathbb{ R }^D$$

データに共通するパラメータWを用いて、各潜在変数z_nを線形変換したものが、観測データy_nであるということ。

観測データx_nと潜在変数z_nは線形な関係にあると仮定している。

 

観測データから分布を推論

目標は、観測データから分布を推定すること。つまり、

$$ p(Z, W, μ | X)=  \frac{p(Z, W, μ, X) }{p(X)} $$

しかし、分母を求めるためには、X, W, μでの重積分を実行する必要があり、解析的に積分をすることができない。

$$ p(X) = \iiint p(X, Z, W, μ)dZdWdμ  $$

従って、以下の分布を変分推論を用いて近似分布として推論をしていくことにする。

$$ q(Z, W, μ) \approx p(Z, W, μ | X) $$

 

平均場近似を用いた変分推論

今回は平均場近似を用いて、近似分布を求めていくことにする。

$$ q(Z) q(W) q(μ) \approx p(Z, W, μ | X) $$

ELBOを最大化することを目標に、各近似分布を求めていく。その方法は以下の式で逐次的に最適化することで求まる。

なぜ以下の以下の式で求まるかについては、別の記事で解説していく予定なので今回は省略する。

q(μ) の導出

変分推論の公式を活用すると、q(μ) は以下のようになる。

$$ \ln q(μ) = \sum_{n=1}^{N} E_{q( W)q( z_n)}[ \ln p(x_n | z_n, W, μ)] + \ln p(μ) + const. $$

右辺の最初の項のμに関して整理していく。期待値の中身は、

 \ln p(x_n | z_n, W, μ) = \ln \mathcal{N}(W^{ \mathrm{ T } } x_n + \mu, \Sigma))

 = -\frac{1}{2} \{ (z_n - (W^{\mathrm{T}} x_n + \mu))^{T} \,\Sigma^{-1}\,(z_n - (W^{\mathrm{T}} x_n + \mu))  \} + const.

であり、展開して整理して期待値を取ると、

 = -\frac{1}{2} \{ \mu^{\mathrm{T}}\,\Sigma^{-1}\mu - 2\mu^{\mathrm{T}}\,\Sigma^{-1}(z_n - \langle W^{\mathrm{T}} \rangle \langle x_n \rangle) \} + const.

であり、総和を取ると

 \sum_{n=1}^{N} E_{q(W)q(z_n)} \lbrack \ln p(x_n | z_n, W, μ) \rbrack \\ = -\frac{1}{2} \{ \mu^{\mathrm{T}}\,N\,\Sigma^{-1}\mu - 2\mu^{\mathrm{T}}\,\Sigma^{-1}\sum_{n=1}^{N}(z_n - \langle W^{\mathrm{T}} \rangle \langle x_n \rangle) \} + const.

また、第二項もμに関して整理すると、

 \ln p(μ) = -\frac{1}{2} \mu^{\mathrm{T}}\,N\,\Sigma_{μ}^{-1}\mu + const.

第一項と第二項をまとめると、

 \ln q(μ) \\ = -\frac{1}{2} \{ \mu^{\mathrm{T}}\,(N\,\Sigma_{x}^{-1} + \Sigma_{μ}^{-1})\, \mu - 2\mu^{\mathrm{T}}\,\Sigma^{-1} \sum_{n=1}^{N}(z_n - \langle W^{\mathrm{T}} \rangle \langle x_n \rangle) \} + const.

となり、これはガウス分布としてまとめることができる。

 q(\mu) = \mathcal{N}(\mu | \hat{m}_{\mu}, \hat{\Sigma}_{\mu})

 \hat{\Sigma}_{\mu}^{-1} = N\,\Sigma_{x}^{-1} + \Sigma_{μ}^{-1}

 \hat{m}_{\mu} = \Sigma_{x}^{-1} \, \hat{\Sigma}_{\mu} \, \sum_{n=1}^{N}(z_n - \langle W^{\mathrm{T}} \rangle \langle x_n \rangle)

q(Z) の導出

$$ \ln q(Z) = \sum_{n=1}^{N} E_{q(W)q(\mu)}[ \ln p(x_n | z_n, W, μ)] + \ln p(Z) + const. $$

q(μ)を導出した手順でまとめていくと、同じようにガウス分布としてまとめることができる。

 q(Z) = \prod_{ n = 1 }^N \, \mathcal{N}(z_n | \hat{\mu}_{z}, \hat{\Sigma}_{z})

 \hat{\Sigma}_{z}^{-1} = \Sigma_{x}^{-1} \sum_{d=1}^{D} \, \langle W_{d}\,W_{d}^{\mathrm{T}} \rangle

 \hat{\mu}_{z} = \Sigma_{x}^{-1}\hat{\Sigma}_{z} \langle W \rangle (x_n - \langle \mu \rangle)

q(W) の導出

$$ \ln q(W) = \sum_{n=1}^{N} E_{q(Z)q(\mu)}[ \ln p(x_n | z_n, W, μ)] + \ln p(W) + const. $$

同じようにまとめていくと、こちらもガウス分布としてまとめることができる。

 q(W) = \prod_{ d = 1 }^D \, \mathcal{N}(W_{d} | \hat{\mu}_{w_{d}}, \hat{\Sigma}_{w_{d}})

 \hat{\Sigma}_{w_{d}}^{-1} = \Sigma_{x}^{-1} \sum_{n=1}^{N} \, \langle x_{n}\,x_{n}^{\mathrm{T}} \rangle + \Sigma_{w}^{-1}

 \hat{\mu}_{w_{d}} = \Sigma_{x}^{-1}\hat{\Sigma}_{w_{d}} \sum_{n=1}^{N}(x_{n, d} - \langle \mu \rangle) \langle x_n \rangle

導出した事後分布を用いてシミュレーションをしてみる

n番目の観測データX_nを生成するためには、求めた事後分布からのサンプリング結果を用いれば良い。

 \tilde{\boldsymbol{ x }}_{n} = \tilde{W}^{\mathrm{T}} \, \tilde{\boldsymbol{ z }}_{n} + \tilde{\mu}

 \tilde{\boldsymbol{ z }}_{n} \sim \mathcal{N}(z_n | \hat{\mu}_{z}, \hat{\Sigma}_{z})

 \tilde{W} \sim \prod_{ d = 1 }^D \, \mathcal{N}(W_{d} | \hat{\mu}_{w_{d}}, \hat{\Sigma}_{w_{d}})

 \tilde{\mu} \sim \mathcal{N}(\mu | \hat{m}_{\mu}, \hat{\Sigma}_{\mu})

 

z_nのガウス分布の平均値パラメータはx_nに依存して決まり、そこからz_nがサンプリングされる。そしてWとμのガウス分布の平均値パラメータは全体データを考慮した形で決まり、そこからWとμがサンプリングされるといった流れになる。