본문 바로가기

AI/Machine Learning

[머신 러닝] EM(Expectation-Maximization) vs MLE(Maximum likelihood estimation) soft clustering , k-means clustering - 컴도리돌이

728x90
728x90

MLE(maximum likelihood estimation)

 

-> 어떤 시행의 결과에 대해서 가장 발생 가능성이 높은 가설 H를 찾는 방법

그림과 같이  A와 B 모델의 결과를 나타내는 데이터가 5개가 있다.  주어진 데이터를 가지고 물어보는 데이터가 어느 데이터 모델인지 예측을 해보자

 

1. 주어진 모델들의 데이터와 물어보는 데이터가 앞면과 뒷면이 몇 번 나왔는지 구한다.

 

2. 각 모델을 분류(classification)를 하고 분류한 표에 해당 모델의 데이터 값을 정리한다.

 

 

 

3. 주어진 데이터에서 각 모델에 대한 precision을 구한다.

 

A모델 : 주어진 데이터 3개에서 실제 앞면이 24번 나온 값에 앞면이 24번, 뒷면이 6번의 합으로 나눠준다.

-> 0.8

B 모델 : 주어진 데이터 2개에서 실제 앞면이 9번 나온 값에 앞면이 9번, 뒷면이 11번의 합으로 나눠준다.

-> 0.45

 


EM(Expectation-Maximization)

 

->주어진 데이터에 대한 모델을 모르고, 물어보는 데이터에 대한 모델을 물어볼 때

->숨겨진(hidden)(관측되지 않은(latent, unobserved)) 변수 및 모수를 추정해야 함

 

->EM은 부분적으로 관측된 데이터로부터 숨겨진 변수를 학습하는 절차다.

 

X : 관측된 변수(데이터)

Z : 숨겨진 변수(데이터) ->hidden variable (관측할 수 없는 변수)

θ : 모델에 대한 매개변수

 


<E-step> - 지정된 모형에 따라 숨겨진 변수에 기댓값을 할당한다.

 

1. 관측된 변수(X) 찾기

   1) X(관측된 변수)를 임의로 설정 - X = {x1, x2, x3, x4, x5}

   2) 임의로 설정한 X(관측된 변수)의 값을 앞면의 수로 설정한다. - x1 = 5, x2 = 9, x3 = 8, x4 = 4, x5 = 7

 

2. θ(모델)의 값을 초기화 - 임의로 지정 ( A = 0.6 , B = 0.5)

 

3. 관측된 변수(X)의 값들이 어느 모델인지(숨겨진 변수(Z)) 판별

 

<example>

x1의 데이터는 앞면이 5번 나왔다. 

1) 만약 x1이 θA일 경우 P(z1 = A | x1) = 0.45

2) 만약 x1이 θB일 경우 P(z1 = B | x1) = 0.55

 

초기 값을 통해서 숨겨진 변수(Z) 값을 판별하였다. 


<M-step> - 확률을 최대화하는 매개변수 업데이트

 

확률을 최대화하는 매개변수 업데이트

θ(모델)의 값이 업데이트되었다. 이 과정을 계속 반복시켜 최적화된(optimaied) 값을 찾는다.

 

<example>

 

EM 과정 반복 - 최적화 단계


soft clustering EM

 

soft clustering에서는 숨겨진 데이터(Z)의 값을 어느 한 θ(모델)로 한정하지 않고 관측된 데이터(X)가 각 θ(모델) 일 확률을 모두 고려를 한다. 


K-means clustering EM

 

k clustering은 분리형 군집화 알고리즘으로 각 군집은 하나의 중심을 가진다. 각 개체는 가장 가까운 중심에 할당되며, 같은 중심에 할당된 개체들이 모여 하나의 군집을 형성한다. 해당 알고리즘은 군집 수(k)를 초기화시켜줘야 한다. 즉 k를 가정하여 시행해야 한다.

 

 

soft clustering의 군집 수 k를 2로 정하였다.

 

모든 데이터가 가장 가까운 중심에 군집하여 할당된다. (E-step)
중심을 군집 경계에 맞게 업데이트 (M-step)
다시 가장 가까운 중심에 군집하여 할당 된다. (E-step)
M-step
E-step

k-mean는 초기 값을 랜덤 하게 정하는 알고리즘이어서, 초기값에 따라 결과가 달라질 수 있다. 또한 군집의 크기에 다를 경우 제대로 작동하지 않을 수 있다. k-means의 복잡성은 O(n)으로 무겁지 않은 알고리즘이다.

728x90
728x90