【徹底解説】多次元ガウス分布の導出

URLをコピーする
URLをコピーしました!
zuka

こんにちは。
zuka(@beginaid)です。

$d$次元ガウス分布の確率密度関数を導出します。なお,前提として$1$次元のガウス分布は導出されているものとして,本記事では多変量に拡張する方法を紹介します。多変量では行列の性質に関する知識が必要になるため,線形代数の良い復習になります。

本記事では初学者の分かりやすさを優先するため,多少正確でない表現が混在することがあります。もし致命的な間違いがあればご指摘いただけると助かります。

目次

お気持ち

以下の入力ベクトルを考えます。

\begin{align}
\vx &= (x_1, x_2, \cdots, x_d)^T
\end{align}

方針としては,入力ベクトル$\vx$の各要素がそれぞれガウス分布に従うとき,$\vx$が従う確率密度関数を導出していこうというものです。ですが,最初から一般のガウス分布を扱うのは少し面倒なので,$\vx$の各要素が従う確率分布として最初は標準ガウス分布を考えて,その後ガウス分布に一般化することにします。

証明

$x_1, \cdots, x_d$がそれぞれ独立に標準正規分布に従うとします。すると,$d$次元の同時確率分布は以下のようになります。

\begin{align}
p(\vx) &= p(x_1)p(x_2)\cdots p(x_d)\\
&= \frac{1}{(2\pi)^{\frac{d}{2}}}\exp \left( -\frac{1}{2}\sum_{i=1}^d x_i^2 \right)\\
&= \frac{1}{(2\pi)^{\frac{d}{2}}}\exp \left( -\frac{1}{2}\vx^T \vx \right)
\label{norm_gauss}
\end{align}

さて,この式をガウス分布に一般化します。そのためには,変数$\vz$を以下のように導入する必要があります。

\begin{align}
\vz &= \mA\vx + \vmu
\end{align}

$\mA$は適当な線形変換を表す行列とします。このとき,元の変数$\vx$は以下のように表されます。

\begin{align}
\vx &= \mA^{-1} (\vz – \vmu)
\label{jacobian}
\end{align}

これを代入すればOKかというと,まだ考えなくてはならないことが残っています。結局,確率密度は積分を利用して定義されているため,変数変換を持ち込んだときはヤコビアンを考えなくてはなりません。式(\ref{jacobian})の変換の前後において,面積比は$\det |\mA^{-1}|$なので,以下の関係式が成り立ちます。

\begin{align}
{d}x_1, {d}x_2, \cdots, {d}x_d &= \det |\mA^{-1}| {d}z_1, {d}z_2, \cdots, {d}z_d
\label{transformation}
\end{align}

求める確率密度を$f(\vz)$と置きましょう。すると,以下のように$f(\vz)$を定めることができます。

\begin{align}
\int_{-\infty}^{\infty} \cdots \int_{-\infty}^{\infty} p(\vx) {d}x_1, \cdots, {d}x_d
&=\int_{-\infty}^{\infty} \cdots \int_{-\infty}^{\infty} f(\vz) {d}z_1, \cdots, {d}z_d
\end{align}

つまり,以下の関係が成り立ちます。

\begin{align}
p(\vx) {d}x_1, \cdots, {d}x_d
&= f(\vz) {d}z_1, \cdots, {d}z_d
\end{align}

式(\ref{norm_gauss})の両辺にそれぞれ式(\ref{transformation})の対応する辺をかけ合わせると,以下のようになります。

\begin{align}
p(\vx) {d}x_1, \cdots, {d}x_d
&= \frac{1}{(2\pi)^{\frac{d}{2}}}\exp \left( -\frac{1}{2}\vx^T \vx \right) \det |\mA^{-1}| {d}z_1, \cdots, {d}z_d
\label{before_gauss}
\end{align}

あと一歩です。$|\mA^{-1}|$さえ求められれば$f(\vz)$も求まります。

\begin{align}
\det |\mA^{^-1}|
&= \det |\mA|^{-1}
\end{align}

なので,以下では$\det|\mA|$を求めていきます。そもそも,

\begin{align}
E[\vz] &= \vmu\\
V[\vz] &= E[(\mZ – \vmu)(\vz – \vmu)^T]\\
&= E[\mA\vx \mA\vx^T] \\
&= E[\mA \mSigma_x\mA^T]\\
&= E[\mA\mA^T]&& (\because \vx\text{の各要素は標準正規分布に従う})\\
&= \mA\mA^T&& (\because \text{期待値は}\vz\text{にしか作用しない})
\end{align}

と設定していますから,いま新しく$V[\vz] = \mSigma$と表すと,以下のように$\det |\mA|$を表すことができます。

\begin{align}
\mSigma
&= \mA\mA^T \\
\det |\mSigma| &= \det|\mA\mA^T|\\
&= \det|\mA|\det|\mA^T|\\
&= \det|\mA|\det|\mA|^T\\
&= {\det|\mA|}^2\\
\therefore \det |\mA| &= \det | \mSigma|^{\frac{1}{2}}\\
&= |\mSigma|^{\frac{1}{2}}&& (\because \text{このように行列式を表すことにします})
\end{align}

したがって,式(\ref{before_gauss})に変換(\ref{jacobian})を代入すれば,以下のように$d$次元ガウス分布の確率密度関数を導出することができます。

\begin{align}
f(\vz)
&= \frac{1}{(2\pi)^{\frac{d}{2}} | \mSigma|^{\frac{1}{2}}} \exp\left\{ -\frac{1}{2} (\vz – \vmu)^T (\mA^{-1})^T \mA^{-1}(\vz – \vmu) \right\}\\
&= \frac{1}{(2\pi)^{\frac{d}{2}} | \mSigma|^{\frac{1}{2}}} \exp\left\{ -\frac{1}{2} (\vz – \vmu)^T (\mA^T \mA)^{-1}(\vz – \vmu) \right\}\\
&= \frac{1}{(2\pi)^{\frac{d}{2}} | \mSigma|^{\frac{1}{2}}} \exp\left\{ -\frac{1}{2} (\vz – \vmu)^T ( \mSigma^T)^{-1}(\vz – \vmu) \right\}\\
&= \frac{1}{(2\pi)^{\frac{d}{2}} | \mSigma|^{\frac{1}{2}}} \exp\left\{ -\frac{1}{2} (\vz – \vmu)^T \mSigma^{-1}(\vz – \vmu) \right\}&& (\because \mSigma\text{は対称行列})
\end{align}

zuka

お疲れさま!簡単な行列の性質も利用するから良い復習になったね。ヤコビアンの知識も必要になるから微積分の復習にもなるね。

シェアはこちらからお願いします!
URLをコピーする
URLをコピーしました!

コメント

コメントする

目次
閉じる