Dirichlet distribution(Dirichlet prior)를 사용하는 이유

April 2, 2019    Bayesian NLP

이 글은 Dirichlet distribution(디리클레 분포)를 사용하는 이유에 대해서 제가 주관적으로 작성한 내용이며, 전반적인 분포 추정의 개념이 필요해 서론에 추가 하였습니다.


Distribution Estimation

  • 분포를 추정하는 방법은 크게 두가지로 나눠진다.
    • Parametric 분포 추정
      • 모수를 가정
        • 가우시안 분포: 평균($\mu$), 분산($\sigma$)
        • binomial 분포: 샘플 수 n, 확률 p
      • 데이터가 적어도, Parametric 분포를 잘 가정하면 좋은 추정이 될 수 있음
      • 모수에 영향을 받기 때문에, 데이터 따른 분포의 업데이트(유지보수)가 어려움
    • Nonparametric 분포 추정
      • 모수를 가정하지 않음
      • 데이터가 많아질수록 좋은 추정을 할 수 있음
      • 모수에 영향을 받지 않기 때문에, 데이터 따른 분포의 업데이트가 쉬움
      • 데이터가 적을 때 분포의 모양이 over-fitting될 수 있음


Parametric 분포 추정 Nonparametric 분포 추정
예시 가우시안 분포 Parzen Window
사용된 모수 $\mu$ (분포의 위치를 결정), $\sigma$ (분포의 모양) -
분포의 다양성 smooth한 분포 표현 flexible한 분포 표현


Parametric distribtutions

  • 먼저, classification에 사용되는 대표적인 4개의 분포를 소개해드리겠습니다.
    • Binomial 분포: 단변량, 이산형(discrete)분포
      • 베르누이 이산형 확률변수($\in$ {0,1})를 가정할 때, $n$ 시행횟수로 성공확률 $p$를 표현
    • Beta 분포: 단변량, 연속형(continious)분포
      • $\alpha, \beta$를 이용해 continuous 확률변수을 이용한 분포 표현
    • Multinomial: 다변량, 이산형(discrete)분포
      • $n$ 시행횟수에 대하여, k개의 이산형 확률변수에 대응되는 k개의 확률값($p_k$)들을 사용한 분포
    • Dirichlet 분포: 다변량, 연속형(continious)분포
      • $\alpha_k$에 대하여, k개의 연속형 확률변수에 대응되는 k개의 continous values($x_k$, $\sum_k x_k =1, \forall x_k \geq 0$)들을 사용하여 분포를 표현
    • $k$=3이고, $\alpha_k$가 동일한(symmetry) $\alpha$로 변한다고 할때 아래와 같이 시각화 할 수 있다.

  • 위 성질을 이용하여, 좌변에는 단변량 random variable속성을 가진 분포를 두고, 우변에는 다변량 random variable속성을 가진 비례식을 세울 수 있습니다.
\[Binomial: Beta = Multinomial:Dirichlet\]


Dirichlet distribtutions

\[f(x_1, \cdots, x_k; \alpha_1, \cdots, \alpha_k) = \frac{1}{\mathrm{B}(\alpha)} \prod_{i=1}^k x_i ^{\alpha_i - 1} \\ {\displaystyle \mathrm {B} (\alpha )={\frac {\prod _{i=1}^{k}\Gamma (\alpha _{i})}{\Gamma {\bigl (}\sum _{i=1}^{k}\alpha _{i}{\bigr )} \ }} \ } ( {\displaystyle \Gamma } \text{is gamma function})\]
  • 여기서 중요한 점은 dirichlet 분포에서 샘플링 했을 때 k개의 continuous random variables를 샘플을 할 수 있습니다.
  • 다른 말로 k차원을 가진 continuous random variables vector라고 생각할 수도 있습니다.
  • dirichlet 특성(probabilistic k-simplex)에 따라, 이 continuous random variables은 0보다 크며, 합은 1이 됩니다(확률의 정의: $x_k$, $\sum_k x_k =1, \forall x_k \geq 0$).
  • 따라서 이 k차원 vector는 sum to 1를 만족하기 때문에, multinomial 분포의 모수인 $p_k$($\sum p_k = 1$)에 사용될 수도 있습니다.
  • 다시 정리하면, dirichlet 분포에서 샘플링된 k차원 vector는 multinomial 분포를 parameterize(control)한다고 생각할 수 있습니다.
  • k차원 vector는 고정된 값이 아니므로 k차원 vector의 분포(각 continuous random variable의 분포) 또는 uncetainty를 표현한다고 생각할 수 있습니다.


활용 예제

  • LDA 토픽모델링으로 예를 들면, 한 문서에 대한 토픽의 분포는 k개의 토픽의 확률($p_k$)로 표현할 수 있습니다.
  • 이 토픽 분포에서 특정 토픽을 샘플을 할때(해당하는 문서에서 각 단어에 대한 topic), 이 토픽 분포는 multinomial 분포를 가정하게 됩니다. 따라서 이 분포를 알기 위해 $p_k$ 확률 값을 알 필요가 있습니다.
  • 한 방법으로, dirichlet 분포의 샘플링 된 k차원 vectorsum to 1를 만족하기 때문에, multinomial 분포의 모수 $p_k$에 사용될 수 있습니다.
  • $k=3$일 때, 2차원으로 시각화하면 다음과 같습니다.

  • 따라서 분포의 분포(distribution over distributions)를 표현한다고 할 수 있습니다.
  • 이러한 구조는 문서의 토픽의 분포, 각 토픽의 단어의 분포를 표현하는 목적(distribution over distributions)과 굉장히 부합이 잘 됩니다.


Reference

https://en.wikipedia.org/wiki/Dirichlet_distribution

https://www.youtube.com/watch?v=fCmIceNqVog&feature=youtu.be


DSBA