条件付きガウス分布

2024/01/28に公開

はじめに

ベイズ推論を勉強したりしていたのですが、どうも多次元ガウス分布の計算が自分の中でしっくり来ていなかったので改めて PRML p.82 付近を呼んだときの計算メモです。

多次元ガウス分布

ベイズ推論では同時確率、周辺化などを行っていく際に多次元ガウス分布を扱うことが多いようです。そこで改めて多次元ガウス分布についてまとめておきます。

  • \bm{\mu}D 次元の平均パラメーター
  • \bm{\Sigma}D\times D の共分散行列
  • |\Sigma| は共分散行列の行列式

としたときに、以下の式で表されるのが多次元ガウス分布です。

p(x) = \mathcal{N}(x|\mu, \Sigma) = \frac{1}{\sqrt{(2\pi)^D|\Sigma|}} \exp \left( -\frac{1}{2}(x-\mu)^T \sigma^{-1}(x-\mu)\right)

対数

多次元ガウス分布の対数を取ると

\begin{aligned} \ln p(x) &= \ln \frac{1}{\sqrt{(2\pi)^D|\Sigma|}} + \left( -\frac{1}{2}(x-\mu)^T \sigma^{-1}(x-\mu)\right) \\ &= \left( -\frac{1}{2}(x-\mu)^T \sigma^{-1}(x-\mu)\right) + \rm{Const.} \end{aligned}

のように、指数の部分だけが出てきます。指数部分が重要な量となります。

精度行列

共分散行列の逆行列を考えたほうが便利なことも多く[1]

\Lambda \equiv \Sigma^{-1}

で定義される行列を精度行列と呼びます。

条件付き分布

本記事の主題である、条件づきガウス分布について考えてみたいと思います。ベイズ推論を計算していく際に同時分布・条件付き分布などが出てきますので必要な計算ですが、本記事ではその部分までは追わないので単に「条件付き分布を考えてみよう」をやってみているだけです。なぜ考えるのかなどはもう少し勉強が進んでいくと見えていきます。ここからの内容は特に bishop の §2.3.1 の内容です[2]

\rm{x} をガウス分布に従う D 次元ベクトルとして、互いに素な部分集合 \rm{x}_a\rm{x}_b に分割します。このときに p(\rm{x}_a|\rm{x}_b) を求めてみます。いま

\rm{x} = \begin{pmatrix} \rm{x}_a \\ \rm{x}_b \end{pmatrix}

であり、対応する形で精度行列も

\Lambda = \begin{pmatrix} \Lambda_{aa} & \Lambda_{ab} \\ \Lambda_{ba} & \Lambda_{bb} \\ \end{pmatrix}

と分割されます。

\rm{x} が従うガウス分布は

p(\rm{x}) = \mathcal{N}(\rm{x}|\mu, \Sigma) = \frac{1}{\sqrt{(2\pi)^D|\Sigma|}} \exp \left( -\frac{2}{2}(\rm{x}-\mu)^T \Lambda(\rm{x}-\mu)\right)

であり、\rm{x} は指数部分の二次形式[3]に現れるので、ガウス分布かどうかに関しての性質は二次形式を調べるだけでよいことが分かります。

二次形式

ここで一度、二次形式の具体的な形を書き下してみます。3次元の場合で計算してみます。

\begin{aligned} \rm{x}^T \Lambda \rm{x} &= \begin{pmatrix} x_1 & x_2 & x_3 \end{pmatrix} \begin{pmatrix} \lambda_{11} & \lambda_{12} & \lambda_{13} \\ \lambda_{21} & \lambda_{22} & \lambda_{23} \\ \lambda_{31} & \lambda_{32} & \lambda_{33} \\ \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ x_3 \end{pmatrix} \\ &= \begin{pmatrix} x_1 & x_2 & x_3 \end{pmatrix} \begin{pmatrix} \lambda_{11}x_1 + \lambda_{12}x_2 + \lambda_{13}x_3 \\ \lambda_{21}x_1 + \lambda_{22}x_2 + \lambda_{23}x_3 \\ \lambda_{31}x_1 + \lambda_{32}x_2 + \lambda_{33}x_3 \\ \end{pmatrix} \\ &= x_1 (\lambda_{11}x_1 + \lambda_{22}x_2 + \lambda_{33}x_3) + x_2 (\lambda_{21}x_1 + \lambda_{22}x_2 + \lambda_{23}x_3) + x_3 (\lambda_{31}x_1 + \lambda_{32}x_2 + \lambda_{33}x_3) \\ &=\lambda_{11}x_1^2 + \lambda_{22}x_2^2 + \lambda_{33}x_3^2 + (\lambda_{12}+\lambda_{21}) x_1x_2 + (\lambda_{13}+\lambda_{31})x_1x_3 + (\lambda_{23} + \lambda_{32}) x_2x_3 \end{aligned}

以上のように、二次(累乗ではなく各項の変数が二種類)のみで構成されることが分かります。
二次形式の行列での表現は仰々しい感じではありますが書き下してみると単なる多項式であるので、特に難しいことはない(はず)です。また、二次形式はスカラー値(ベクトル、行列ではない)であることも分かるかと思います[4]

条件付き分布に関する二次形式

話を戻して二次形式について分割したベクトルを用いて計算すると

\begin{aligned} -\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu) & = -\frac{1}{2} \begin{pmatrix} x_a - \mu_a & x_b - \mu_b \end{pmatrix}^T \begin{pmatrix} \Lambda_{aa} & \Lambda_{ab} \\ \Lambda_{ba} & \Lambda_{bb} \end{pmatrix} \begin{pmatrix} x_a - \mu_a \\ x_b - \mu_b \end{pmatrix} \\ &= -\frac{1}{2} \begin{pmatrix} x_a - \mu_a \end{pmatrix}^T \Lambda_{aa} \begin{pmatrix} x_a - \mu_a \end{pmatrix} -\frac{1}{2} \begin{pmatrix} x_a - \mu_a \end{pmatrix}^T \Lambda_{ab} \begin{pmatrix} x_b - \mu_b \end{pmatrix} -\frac{1}{2} \begin{pmatrix} x_b - \mu_b \end{pmatrix}^T \Lambda_{ba} \begin{pmatrix} x_a - \mu_a \end{pmatrix} -\frac{1}{2} \begin{pmatrix} x_b - \mu_b \end{pmatrix}^T \Lambda_{bb} \begin{pmatrix} x_b - \mu_b \end{pmatrix} \end{aligned}

となります。今 \rm{x}_b は観測した上で \rm{x}_a の従う確率分布を求めようとしているので、\rm{x}_b は固定値です。\rm{x}_a の項だけ抜き出すと

-\frac{1}{2} \begin{pmatrix} x_a - \mu_a \end{pmatrix}^T \Lambda_{aa} \begin{pmatrix} x_a - \mu_a \end{pmatrix} -\frac{1}{2} \begin{pmatrix} x_a - \mu_a \end{pmatrix}^T \Lambda_{ab} \begin{pmatrix} x_b - \mu_b \end{pmatrix}

こちらも二次形式であり、そのため p(\rm{x}_a|\rm{x}_b) もガウス分布に従うことが分かります。

再び二次形式

p(\rm{x}_a|\rm{x}_b) の平均と分散を求めたいのですが、愚直に定義に従って計算してもいいのですが、以下のような考え方を用いることでより簡単に素直な方法で解けます。

\begin{aligned} -\frac{1}{2}(\rm{x}-\mu)^T\Sigma^{-1}(\rm{x}-\mu) &= -\frac{1}{2}(\rm{x}^T-\mu^T)(\Sigma^{-1}\rm{x} - \Sigma^{-1}\mu) \\ &= -\frac{1}{2}\rm{x}^T\Sigma^{-1}\rm{x} +\frac{1}{2}\rm{x}^T\Sigma^{-1}\mu +\frac{1}{2}\mu^T\Sigma^{-1}\rm{x} -\frac{1}{2}\mu^T\Sigma^{-1}\mu \end{aligned}

ここで、\rm{x}^T\Sigma^{-1}\mu\mu^T \Sigma^{-1}\rm{x} がスカラ値であることを思い出すと

(\mu^T \Sigma^{-1}\rm{x})^T = \mu^T \Sigma^{-1}\rm{x}

であり[5]、いきなり右辺に行く前に少し

  • (AB)^T = B^TA^T
  • 対称行列 A に対して (A^{-1})^T = A^{-1} [6]

の性質を使うと

\begin{aligned} (\mu^T \Sigma^{-1}\rm{x})^T &= \left\{ \mu^T (\Sigma^{-1}\rm{x})\right\}^T \\ &= (\Sigma^{-1}\rm{x})^T (\mu^T)^T \\ &= \rm{x}^T(\Sigma^{-1})^T \mu \\ &= \rm{x}^T \Sigma^{-1} \mu \\ \end{aligned}

であるので、

(\mu^T \Sigma^{-1}\rm{x})^T = \mu^T \Sigma^{-1}\rm{x} = \rm{x}^T \Sigma^{-1} \mu

となりますので、

-\frac{1}{2}(\rm{x}-\mu)^T\Sigma^{-1}(\rm{x}-\mu) = -\frac{1}{2}\rm{x}^T\Sigma^{-1}\rm{x} + \mu^T\Sigma^{-1}\rm{x} -\frac{1}{2}\mu^T\Sigma^{-1}\mu

と変形できます。

ここから

  • \rm{x} の二次の項の係数行列は \Sigma^{-1} に等しいので共分散行列の逆行列が分かる
  • \rm{x} の一次の項の係数が \Sigma^{-1}\mu であることから、\mu が分かる

という流れで、条件付きガウス分布の性質を求めることができます。

ここで

p(\rm{x}_a|\rm{x}_b) の二次形式を再掲します。

\begin{align*} &-\frac{1}{2} \begin{pmatrix} x_a - \mu_a \end{pmatrix}^T \Lambda_{aa} \begin{pmatrix} x_a - \mu_a \end{pmatrix} \\ &-\frac{1}{2} \begin{pmatrix} x_a - \mu_a \end{pmatrix}^T \Lambda_{ab} \begin{pmatrix} x_b - \mu_b \end{pmatrix} \\ &-\frac{1}{2} \begin{pmatrix} x_b - \mu_b \end{pmatrix}^T \Lambda_{ba} \begin{pmatrix} x_a - \mu_a \end{pmatrix} \\ &-\frac{1}{2} \begin{pmatrix} x_b - \mu_b \end{pmatrix}^T \Lambda_{bb} \begin{pmatrix} x_b - \mu_b \end{pmatrix} \end{align*}

ここから \rm{x}_a に関する部分を抜き出すと

\begin{align*} &-\frac{1}{2} x_a^T \Lambda_{aa} x_a +\frac{1}{2} x_a^T\Lambda_{aa}\mu_a +\frac{1}{2} \mu_a^T\Lambda_{aa}x_a \\ &-\frac{1}{2} x_a^T\Lambda_{ab}x_b + \frac{1}{2}x_a^T\Lambda_{ab}\mu_b \\ &-\frac{1}{2} (x_b - \mu_b)^T\Lambda_{ba}x_a \end{align*}

となり、二次形式がスカラーであるので転置をとっても等しいこと、\Lambda_{ba}^T = \Lambda_{ab} を用いると次のように整理できます。

\begin{align*} &-\frac{1}{2} x_a^T \Lambda_{aa} x_a \\ & + x_a^T\Lambda_{aa}\mu_a - x_a^T\Lambda_{ab}(x_b-\mu_b) \end{align*}

分散

先程確認した「\rm{x} の二次の項の係数行列は共分散行列の逆行列に等しい」という関係性を用いることで、共分散行列の逆行列が

\Lambda_{aa}

であることが分かります。

平均

先程確認した「\rm{x} の線形項の係数が \Sigma^{-1}\mu」に等しいという関係性を用いることで、平均は

\Lambda_{aa}\left(\mu_a - \Lambda_{aa}^{-1}\Lambda_{ab}(\rm{x}_b - \mu_b)\right)

であることが分かります。

参考文献

  • PATTERN RECOGNITION AND MACHINE LEARNING, Bishop
  • ベイズ深層学習, 須山敦志, p.58
脚注
  1. 後で見るように、条件付き分布を計算するときは \Lambda を使用しておいたほうが楽に見えます ↩︎

  2. Bishopは読めば読むほど前半部分の章に立ち戻ることが多く、勉強が進んでいる気がしないです...。 ↩︎

  3. 二次の項のみからなる多項式のこと ↩︎

  4. あとで出てくる重要な性質ですが、単なるスカラ値なので転置しても何も変わらないは忘れがちです。 ↩︎

  5. スカラーなので転置しても特に何も変わらないです。 ↩︎

  6. Bishop p.84で「\Sigmaの対象性を利用した」と表現されている部分です ↩︎

GitHubで編集を提案

Discussion