728x90

디리클레 분포(Dirichlet Distribution)는 Beta distribution을 다항분포 형태로 확장시킨 분포이다.

디리클레 분포의 수식은 아래과 같이 표현되며 α는 디리클레 분포의 하이퍼 파라메터 벡터이다.

 

 

예시는 아래와 같다.

 

가위/바위/보는 3가지 경우가 나타나는 사건이므로 다항분포(카테고리 분포)에 속합니다. 따라서 관측 사건이 다항분포이므로, 사전확률을 다항분포의 켤레 분포인 디리클레 분포를 사용하면 손쉽게 사후확률 분포를 계산할 수 있겠죠.

 

  1. 그러므로 친구가 가위/바위/보를 내는 확률 X는 디리클레 분포를 따른다고 가정하고 시작합시다. 관측된 값이 없으므로 하이퍼 파라미터 3개는 모두 1로 주었습니다.
    사전 확률 분포: X ~ Dir(1, 1, 1)
  2. 가위바위보 5판을 했는데, 친구가 (가위, 바위, 보) = (2, 2, 1) 번을 냈습니다. 
    관측값: (2, 2, 1)
  3. 관측값을 바탕으로 사후 확률분포를 계산합니다. 디리클레 분포의 하이퍼 파라미터를 각각 (2, 2, 1) 씩 키워주면 되겠죠.
    사후 확률 분포: X' ~ Dir(3, 3, 2)
  4. 가위바위보 3판을 더했는데, 친구가 (가위, 바위, 보) = (0, 1, 2)번을 냈습니다.
    관측값: (0, 1, 2)
  5. 관측값을 바탕으로 사후 확률분포를 또 업데이트합시다.
    새로운 사후 확률 분포: X'' ~ Dir(3, 4, 4)

처음 단계에서 친구가 가위/바위/보를 낼 확률이 (0.25, 0.25, 0.5)일 가능도는 다음과 같겠죠.

 

3번에 이르렀을 때, 친구가 가위/바위/보를 낼 확률이 (0.25, 0.25, 0.5)일 가능도를 계산하고자 하면 다음과 같이 됩니다.

 

5번에 이르렀을 때, 마찬가지로 (0.25, 0.25, 0.5)일 가능도를 계산하면 다음과 같이 되겠죠. (실제 계산방법은 생략했습니다. 컴퓨터가 알아서 해줄테니깐 계산식에 집착할 필요는 없다고 생각합니다.)

 

관측 과정을 통해 가능도가 바뀌어나가는 것을 확인할 수 있죠. 따라서 베이즈 추론과 디리클레 분포를 이용하면 친구가 가위/바위/보를 낼 확률값이 어느 정도인지 추정해볼 수 있습니다.

 

 

 

이러한 디리클레 분포는 토픽 모델링에 사용된다.

 

 

728x90

+ Recent posts