Mixture of Gaussian Density Estimation (MoG)
03_2 : Anomaly Detection : (Mixture of) Gaussian Density Estimation
이전까지 normal data가 하나의 가우시안 분포로 부터 생성된다고 가정하였다. 하지만 하나의 가우시안만을 사용하는 것은 너무 엄격하다.(Strong model : uni-modal and convex)때문에 여러개의 가우시안 분포의 혼합(multi-modal)을 사용하여 설명하려고 한다.
Mixture of Gaussian (MoG) Density Estimation
Mixture of Gaussian(MoG)는 여러개의 가우시안 분포의 선형 결합으로 이루어진다. 덕분에 이전의 하나의 가우시안을 사용하는 경우보다 더 bias가 적게 추정이 가능하다. 하지만 좀 더 많은 Training data를 필요로 한다.$$f(x) = w_1N(\mu_1,\sigma_1^2) + w_2N(\mu_2,\sigma_2^2) + w_3N(\mu_3,\sigma_3^2)$$
이전의 방법에서는 $\mu$와 $\sigma$ 2개의 미지수를 추정하면 되었지만, $K$개의 가우시안을 혼합하는 MoG의 경우에는 각 가우시안 마다 $w_i,\,\mu_i,\,\sigma_i$ 3개씩 총 $3K$개의 미지수, 그리고 몇개의 가우시안을 사용할지 $K$까지 학습을 통해 추정해야 한다.
$$g(x|\mu_m,\Sigma_m) = \frac{1}{(2\pi)^{d/2}|\Sigma_m|^{1/2}}\exp{\big[\frac{1}{2}(x-\mu_m)^T\Sigma_m^{-1}(x-\mu_m)\big]}$$
이전의 방법에서는 $\mu$와 $\sigma$ 2개의 미지수를 추정하면 되었지만, $K$개의 가우시안을 혼합하는 MoG의 경우에는 각 가우시안 마다 $w_i,\,\mu_i,\,\sigma_i$ 3개씩 총 $3K$개의 미지수, 그리고 몇개의 가우시안을 사용할지 $K$까지 학습을 통해 추정해야 한다.
Components of MoG
- Probability of an instance belonging to the normal class
$$p(x|\lambda) = \sum_{m=1}^M w_m g(x|\mu_m,\Sigma_m)$$
$$\lambda = \{w_m,\mu_m,\Sigma_m\},\;\;\;\;\;m=1,\cdots,M$$
- Distribution of each Gaussian model
$\lambda$는 미지수의 집합이고, 이때 $M$은 가우시안의 개수이다. 위 식의 의미를 살펴보자. 객체 $x$가 normal 일 확률 $p(x|\lambda)$는 각각의 가우시안 함수의 likelihood $g(x|\mu_m,\Sigma_m)$를 계산하여, 가중치 $w_m$를 곱하여 모두 더한 값이 된다.
Expectation-Maximization Algorithm
위와 같이 변수가 많은 저 예시에서 어떻게 미지수를 추정할지 막막하다. 가우시안 함수 하나만을 사용하는 경우 Convex함이 보장됨으로 바로 최적해를 찾으면 되지만, MoG의 경우 Convex를 보장할 수 없다. 이러한 미지수를 알아내는 최적화 문제에서 가장 흔하게 사용되는 기댓값 최대화 알고리즘(Expectation-Maximization Algorithm)을 사용해보자.
우리가 최적해를 찾아야 하는 문제의 미지수 집합 A와 B가 있다고 생각해보자. 동시에 A, B를 모두 최적화를 할 수 없다면, 아래와 같이 최적해를 찾을 수 있다.
- A 미지수 고정 $\rightarrow$ B 최적화
- B 미지수 고정 $\rightarrow$ A 최적화
- A 미지수 고정 $\rightarrow$ B 최적화
- B 미지수 고정 $\rightarrow$ A 최적화
- ... 수렴할 때까지 반복
MoG 문제에 적용해보자. 우리가 찾아야 하는 미지수는 $w_m,\mu_m,\Sigma_m$이다. 그리고 어떤 객체 $x$가 있을 때 $x$가 $m$번째 가우시안으로 표현될 확률 $p(m|x)$를 구하려 한다.
Expectation-Maximization Algorithm의 과정은 E-Step, M-Step 두 단계로 나누어진다.
- E-Step (Expectation)
Given the current estimate of the parameters, compute the conditional probabilities.
가우시안의 미지수 $w_m,\mu_m,\Sigma_m$을 고정하고, 객체의 확률 $p(m|x)$를 계산한다.
- M-Step (Maximization)
Update the parameters to maximize the expected likelihood found in the E-Step
객체의 확률 $p(m|x)$를 고정하고, 가우시안의 likelihood가 최대값을 가지도록 미지수 $w_m,\mu_m,\Sigma_m$를 계산한다.
우리는 몇개의 가우시안 분포($M$)를 사용하는 것이 최적인지 모른다. 따라서 $M$값을 바꿔가면서 Expectation-Maximization Algorithm을 수행하고, likelihood가 가장 높은 $M$값을 선택한다.
수식으로 살펴보자.
- E-Step (Expectation)
$$p(m|x_i,\lambda) = \frac{w_m g(x_i|\mu_m,\Sigma_m)}{\sum_{k=1}^M w_k g(x_t|\mu_k,\Sigma_k)}$$
- M-Step (Maximization)
- Mixture weight
$$w_m^{(new)} = \frac{1}{N}\sum_{i=1}^N p(m|x_i,\lambda)$$
- Means
$$\mu_m^{(new)} = \frac{\sum_{i=1}^N p(m|x_i,\lambda)x_i}{\sum_{i=1}^N p(m|x_i,\lambda)}$$
- Variances
$$\sigma_m^{2(new)} = \frac{\sum_{i=1}^N p(m|x_i,\lambda)x_i^2}{\sum_{i=1}^N p(m|x_i,\lambda)} - \mu_m^{2(new)}$$
Covariance matrix
Gaussian Density Estimation 처럼 MoG 또한 어떤 공분산행렬을 사용하는지에 따라서 가우시안 함수의 모양이 달라진다.
- Spherical
$$\sigma^2 = \frac{1}{d}\sum_{i=1}^d\sigma_{i}^2\;\;\Sigma = \sigma^2\begin{equation*} \begin{bmatrix} 1&\cdots & 0\\ \vdots & \ddots & \vdots \\ 0 & \cdots & 1 \end{bmatrix}\end{equation*}$$
- Diagonal
$$\Sigma = \begin{equation*} \begin{bmatrix} \sigma_1^2&\cdots & 0\\ \vdots & \ddots & \vdots \\ 0 & \cdots & \sigma_d^2 \end{bmatrix}\end{equation*}$$
- Full
$$\Sigma = \begin{equation*} \begin{bmatrix} \sigma_{11}^2&\cdots & \sigma_{1d}^2\\ \vdots & \ddots & \vdots \\ \sigma_{d1}^2& \cdots & \sigma_{dd}^2 \end{bmatrix}\end{equation*}$$
MoG역시 Full 형태의 공분산 행렬을 사용하면 가장 좋은 성능을 보이겠지만, singular matrix가 되어서 역행렬이 없는 경우가 생길 수 있다. 또한 계산량이 너무 많아질 수 있다. 때문에 일반적으로 Diagonal형태의 공분산 행렬을 많이 사용한다.
※ 이 글은 고려대학교 산업경영공학과 강필성 교수님의 IME654 강의를 정리하고, 공부한 내용을 추가하여 작성되었습니다.
댓글
댓글 쓰기