Multivariate Gaussian Distribution and its joint, marginal, conditional, MLE
Multivariate Gaussian Distribution
다변량 가우시안 분포는 다음과 같은 확률밀도함수(pdf)를 갖는다.
\[ p(x; \mu, \Sigma) = \cfrac{1}{(2 \pi)^{n/2} |\Sigma|^{1/2}} \exp \left[ -\cfrac{1}{2} (x-\mu)^T \Sigma^{-1} (x-\mu) \right] \]
이때 $n$은 데이터의 차원, $x \in \mathbb{R}^{n}$, $\mu \in \mathbb{R}^{n}$, $\Sigma \in \mathbb{R}^{n \times n}$ 이다.
$x$는 random vector, $\mu$는 mean vector, $\Sigma$는 covariance matrix 이다.
$X \sim \mathcal{N}(\mu, \Sigma)$라고 표기한다.
※ $X \sim MVN(\mu, \Sigma)$로도 표기하기도 한다.
※ normalized constant로 $\cfrac{1}{\sqrt{(2 \pi)^n |\Sigma|} }$로 표기하기도 한다.
Covariance Matrix (공분산 행렬)
두 확률변수 $X$, $Y$의 공분산은 다음과같이 정의한다.
\begin{align} Cov(X, Y) &= E[(X-E[X]) (Y-E[Y])] \\ &= E[XY] - E[X]E[Y] \end{align}
이제 $X$가 다변수이므로, covariance matrix는 각 쌍(pair)의 공분산을 나타낸다. 즉 $\Sigma$의 $(i, j)$의 값은 $Cov(X_i, X_j)$이다.
Proposition 1.
\[ \Sigma = E[XX^T] - \mu \mu^T \]
Proof
정의에 따라 $\Sigma$는 다음과 같다.
\begin{align}
\Sigma &=
\begin{bmatrix}
\text{Cov}[X_1, X_1] & \cdots & \text{Cov}[X_1, X_n] \\
\vdots & \ddots & \vdots \\
\text{Cov}[X_n, X_1] & \cdots & \text{Cov}[X_n, X_n]
\end{bmatrix} \\
&=
\begin{bmatrix}
E[(X_1 - \mu_1)(X_1 - \mu_1)] & \cdots & E[(X_1 - \mu_1)(X_n - \mu_n)] \\
\vdots & \ddots & \vdots \\
E[(X_n - \mu_n)(X_1 - \mu_1)] & \cdots & E[(X_n - \mu_n)^2]
\end{bmatrix} \\
&= E
\begin{bmatrix}
(X_1 - \mu_1)^2 & \cdots & (X_1 - \mu_1)(X_n - \mu_n) \\
\vdots & \ddots & \vdots \\
(X_n - \mu_n)(X_1 - \mu_1) & \cdots & (X_n - \mu_n)^2
\end{bmatrix} \\
&= E
\left[
\begin{array}{c}
X_1 - \mu_1 \\
\vdots \\
X_n - \mu_n
\end{array}
\right]
\begin{bmatrix}
X_1 - \mu_1 & \cdots & X_n - \mu_n
\end{bmatrix} \\
&= E[(X - \mu)(X - \mu)^T].
\end{align}
여기서 알 수 있는 것은 $\Sigma$를 구할 때 매번 $Cov(X_i, X_j)$를 계산할 필요없이 $x$에서 평균값을 뺀 $x-\mu$의 외적($(x-\mu)(x-\mu)^T$)으로 간단히 구할 수 있다는 것이다.
Proposition 2.
$\Sigma$ is symmetric positive semi-definite.
Proof
임의의 non-zero column vector $z \in \mathbb{R}^{d}$에 대하여 $z^T \Sigma z \ge 0$임을 보인다.
\begin{align*}
z^T\Sigma z &= \sum_{i=1}^{n} \sum_{j=1}^{n} (\Sigma_{ij}z_iz_j) \\
&= \sum_{i=1}^{n} \sum_{j=1}^{n} (\text{Cov}[X_i, X_j] \cdot z_iz_j) \\
&= \sum_{i=1}^{n} \sum_{j=1}^{n} (\text{E}[(X_i - \text{E}[X_i])(X_j - \text{E}[X_j])] \cdot z_iz_j) \\
&= \text{E}\left[\sum_{i=1}^{n} \sum_{j=1}^{n} (X_i - \text{E}[X_i])(X_j - \text{E}[X_j]) \cdot z_iz_j \right]
\end{align*}
Theorem
$n$차원에서 정의된 $\mu \in \mathbb{R}^{n}$, $\Sigma \in \mathbb{R}^{n \times n}$에 대하여 $X \sim \mathcal{N}(\mu, \Sigma)$이고 $Z \sim \mathcal{N}(0, I)$에 대하여, $Z = A^{-1}(X-\mu)$을 만족하는 행렬 $A \in \mathbb{R}^{n \times n}$이 존재한다. 즉, $X = AZ + \mu$인 선형변환을 통해 $Z$로부터 $X$의 분포를 얻을 수 있다.
Proof
See Appendix A.2 of [1]
Samples of 2D Multivariate Gaussian Distribution
$\Sigma$에 따라 데이터 분포가 어떻게 생겼는지 알아보자.
\[ \Sigma=\begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix} \] $Cov(X, X)=Var(X)$이므로 대각성분은 분산을 의미한다. 즉 $\Sigma_{11}=1$: $x$축 방향의 분산이 $1$이다. $\Sigma_{22}=1$: $y$축 방향의 분산이 $1$이다. $\Sigma_{12}=1$: $Cov(X, Y)=1$ 즉 $x$차원과 $y$의 차원의 correlation도 1이다. 이 두 차원은 highly correlated라 할 수 있다. |
\[ \Sigma=\begin{bmatrix} 0 & 0 \\ 0 & 0 \end{bmatrix} \] 모든 방향의 분산이 $0$이므로 오직 하나의 점으로만 분포한다. |
\[ \Sigma=\begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix} \] $x$축 차원 방향으로만 분산이 $1$이다. 나머지 $y$축방향으로는 분산이 $0$이다. |
\[ \Sigma=\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} \] $\Sigma_{11}=1$: $x$축 방향의 분산이 $1$이다. $\Sigma_{22}=1$: $y$축 방향의 분산이 $1$이다. 그러나 공분산 요소는 $0$이다. 즉 $x$차원과 $y$차원의 correlation은 없다. |
\[ \Sigma=\begin{bmatrix} 5 & 0 \\ 0 & 1 \end{bmatrix} \] 특정차원(여기서는 $x$축 차원)의 분산이 더 크다. 그러나 이 두 차원의 공분산은 $0$이다. |
\[ \Sigma=\begin{bmatrix} 1 & 0 \\ 0 & 5 \end{bmatrix} \] 특정차원(여기서는 $y$축 차원)의 분산이 더 크다. 그러나 이 두 차원의 공분산은 $0$이다. |
\[ \Sigma=\begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix} \] 각 차원의 분산은 $2$이면서 두 차원의 correlation은 $1$이다. |
\[ \Sigma=\begin{bmatrix} 2 & -1 \\ -1 & 2 \end{bmatrix} \] 각 차원의 분산은 $2$이면서 두 차원의 correlation은 $-1$이다. |
Joint, Marginal and Conditional Gaussian
[Joint Gaussian] $p(x_1, x_2)$
\[ \mu = \begin{bmatrix} \mu_1 \\ \mu_2 \end{bmatrix}, \quad \Sigma = \begin{bmatrix} \Sigma_{11} & \Sigma_{12} \\ \Sigma_{21} & \Sigma_{22} \end{bmatrix} \]
[Marginal Gaussian]
$x_1, x_2 \sim \mathcal{N}(\mu, \Sigma)$일 때, $x_2 \sim \mathcal{N}(\mu_2, \Sigma_{22})$ 이다.
[Conditional Gaussian]
\[ p(x_1 | x_2) = \cfrac{\mathcal{N}(x;\mu, \Sigma)}{\mathcal{N}(x_2; \mu_2, \Sigma_{22})} \]
자세한 식 전개는 [4]를 참고.
\[ \mu_{1|2} = \mu_1 + \Sigma_{12} \Sigma_{22}^{-1} (x_2 - \mu_2) \]
\[ \Sigma_{1|2} = \Sigma_{11} - \Sigma{12} \Sigma_{22}^{-1} \Sigma_{21} \]
Maximum Likelihood Estimation (MLE)
$N$개의 data point로 이루어진 데이터셋 $\mathcal{D}=\{x_1, \dots, x_N \}$가 다변수 가우시안 분포에서 샘플링되었다고 하자. 이때 MLE를 이용하여 파라미터 $\mu$와 $\Sigma$를 구해보자.
log-likelihood를 $l(\cdot)$라 하자. 그러면 MVG의 log-likelihood는 다음과 같다.
\[ l(\mu, \Sigma | \mathcal{D}) = -\cfrac{N}{2} \log |\Sigma| - \cfrac{1}{2} \sum_{i=1}^{N}(x_i - \mu)^T \Sigma^{-1} (x_i - \mu) \]
$\mu$의 partial을 구하면
\[ \cfrac{\partial l}{\partial \mu} = \sum_{i=1}^{N}(x_i - \mu)^T\Sigma^{-1} \]
이 값이 $0$이 되는 $\mu$를 구하면
\[ \hat{\mu} = \cfrac{1}{N} \sum_{i=1}^{N}x_i \]
즉, $\mu$의 MLE는 표본평균(sample mean)이다.
$\Sigma$의 MLE를 구하기 전에 몇가지 skill을 정리하자.
- $\text{tr}[ABC] = \text{tr}[CAB] = \text{tr}[BCA]$ (cyclical invariant)
- $\cfrac{\partial}{\partial A}\text{tr}[BA] = B^T$
- $\cfrac{\partial}{\partial A}x^TAx = \cfrac{\partial}{\partial A}\text{tr}[xx^TA] = [xx^T]^T = xx^T$
- $\cfrac{\partial}{\partial A}\log |A| = A^{-T}$
다시 공분산 $\Sigma$의 log-likelihood를 정리해보자.
\begin{align*}
l(\Sigma | D) &= -\frac{N}{2} \log |\Sigma| - \frac{1}{2} \sum_{n} (x_n - \mu)^T \Sigma^{-1} (x_n - \mu) \\
&= -\frac{N}{2} \log |\Sigma|^{-1} - \frac{1}{2} \sum_{n} \text{tr}\left((x_n - \mu)^T \Sigma^{-1} (x_n - \mu)\right) \\
&= -\frac{N}{2} \log |\Sigma|^{-1} - \frac{1}{2} \sum_{n} \text{tr}\left(\Sigma^{-1} (x_n - \mu) (x_n - \mu)^T\right)
\end{align*}
$\Sigma^{-1}$의 partial을 구하면
\[ \cfrac{\partial l}{\partial \Sigma^{-1}} = \cfrac{N}{2}|\Sigma| - \cfrac{1}{2}\sum_{i=1}^{N}(x_i - \mu)(x_i - \mu)^T \]
따라서 $\Sigma$의 MLE는
\[ \hat{\Sigma} = \cfrac{1}{N}\sum_{i=1}^{N} (x_i - \hat{\mu})(x_i - \hat{\mu})^T \]
이는 각 data point에서 sample mean을 뺀 벡터의 outer product와 동일하다.
(표본분산의 경우와 비슷하게) bias-corrected estimator로 $\hat{\Sigma} = \cfrac{1}{N-1}\sum_{i=1}^{N}(x_i - \hat{\mu})(x_i - \hat{\mu})^T$를 이용할 수 있다.
References
[1] https://cs229.stanford.edu/section/gaussians.pdf
[2] https://www.youtube.com/watch?v=RMMQk8zPxm0&t=159s (0:00 ~ 6:20)
[3] https://people.eecs.berkeley.edu/~jordan/courses/260-spring10/other-readings/chapter13.pdf
[4] https://statproofbook.github.io/P/mvn-cond.html
[5] https://www.cs.cmu.edu/~epxing/Class/10701-08s/recitation/gaussian.pdf