EM 알고리즘 (작성중)


우리는 각 데이터가 어떤 군집에 속하는지 알 수가 없는 상황에서 비슷한 데이터끼리 여러 그룹으로 나누고 싶다.

이렇게 데이터의 라벨을 모르는 상태에서 어떻게 각 비슷한 데이터끼리 그룹으로 구분할 수 있을까?

여기서 우리가 관측한 데이터는 X, 각 데이터가 어느 군집에 속해있는지 나타내는 잠재변수를 Z라고 한다.

예를들어 관측된 데이터가 두 개의 베르누이 분포, 즉 동전 A와 동전 B에서 생성되었다는 사실은 알고 있고 각 동전은 서로 다른 앞면 확률을 가진다고 해보자.

우리는 실험을 통해 동전 A를 10번 던졌을 때 앞면이 7번, 동전 B를 10번 던졌을 때 앞면이 3번 나왔다는 것을 기록했다.

그래서 위 기록을 보면 동전 A의 확률분포는 7/10, 동전 B의 확률분포는 3/10이라는 것을 알 수 있다.

그런데 만약 실험결과가 동전 A를 통해 나온 것인지 동전 B를 사용했는지에 대한 정보가 사라졌다.

우리의 목적은 이 사라진 정보속에서 각 데이터가 어느 동전에서 나왔는지를 알고싶은 것이다. (이를 확률변수로 나타내면, X = 관측된 앞면의 결과, Z = 각 실험결과가 어느 동전에서 생성되었는지를 나타내는 정보가 된다.)

각 실험이 어느 동전에서 나왔는지를 판단하려면, 먼저 동전 A와 B의 앞면 확률 p_A,p_B, 실험에서 두 동전의 사용비율을 알아야 한다.(왜 이것이 필요정보들인지는 아래 예시를 통해 설명한다)

이것을 \(\theta\)라고 하겠다. \(\theta\)는 실험 데이터를 구분하기 위해 필요한 정보들이라 보면된다.

\(\theta\)를 알아야 Z를 구할 수 있고 Z를 알아야 \(\theta\)를 구할 수 있다.

EM알고리즘은 이 문제를 해결해준다.

구체적인 예시를 통해 어떻게 해결하는지 알아보자.

Z와 \(\theta\)를 처음부터 동시에 정확하게 구분하려하지 않는다.

대신 먼저 동전의 앞면 확률을 임의로 설정한다.

이 값들은 처음에는 정확하지 않아도 된다. 현재 임시 파라미터 p_A, p_B가 주어지면 각 실험 결과가 어느 동전에서 나왔을 가능성이 높은지를 계산할 수 있다.

예를들어 동전 A에서 앞면이 나왔을 확률이

\[P(H\mid A)=0.8\]

동전 B에서 앞면이

\[P(H\mid B)=0.4\]

나왔을 확률이 0.4라고 해보자

그리고 각 실험에서 동전이 사용되었을 확률이 0.5로 동일하다고 가정해보자.

\[P(A) = 0.5, \quad P(B) = 0.5\]

첫 번째 실험을 통해 관측했던 데이터가 10번의 동전을 던져서 앞면이 7번 나온것이라 해보자.

\[X_1 = (7H, 3T)\]

우리가 구하고 싶은 것은 이 실험이 동전 A로 수행되었을 확률이다.

\[P(A|X_1)\]

앞면이 나올 확률이 0.8인 동전 A에서 10번의 시행중 앞면 7번이 나올 확률은

\[P(X_1 | A) = \binom{10}{7} 0.8^7 0.2^3 = 0.201\]

앞면이 나올 확률이 0.4인 동전 B에서 10번의 시행중 앞면 7번이 나올 확률은

\[P(X_1 | B) = \binom{10}{7} 0.4^7 0.6^3 = 0.042\]

가 된다.

우리가 구하고자 하는 것은

\[P(A|X_1)\]

였음으로 Bayes정리에 의해

\[P(A | X_1) = \frac{P(X_1 | A)P(A)}{P(X_1)}\]

이다.

분모는

\[P(X_1) = P(X_1 | A)P(A) + P(X_1 | B)P(B)\]

이므로 값을 대입하면

\[0.201 \times 0.5 + 0.042 \times0.5 = 0.1215\]

이고 분자는

\[0.201\times 0.5=0.1005\]

따라서

\[P(A | X_1) = \frac{0.1005}{0.1215} = 0.827\]

이번에는 이 실험이 동전 B로 수행되었을 확률은

\[P(B | X_1) = \frac{0.042 \times 0.5}{0.1215} = 0.173\]

의미는 첫 번째 실험은 동전 A에서 나왔을 가능성이 약 83%이고 동전 B에서 나왔을 가능성이 약 17%라고 계산된다. 이것을 EM알고리즘 중 E-step이라고 한다.

E-step에서 구한 이 가능성을 이용해서 다음 M-step에서

\[P(H \mid A), \;P(H \mid B)\]

를 계산한다.

EM은 현재 추정된 각 동전의 앞면 확률을 이용하여 각 실험이 어느 동전에서 나왔을 확률을 계산하고, 그 확률을 바탕으로 각 동전의 앞면 확률을 다시 추정하는 것입니다.

군집분포의 파라미터는 (파이, 뮤, 시그마)로 구성되어있으며 파이는 k번째 군집의 비율, 뮤는 k번째 군집의 중심, 시그마는 k번째 군집의 퍼진 정도와 방향을 나타낸다.