1. 개요
| 디리클레 분포 Dirichlet Distribution | |
|---|---|
| 지지집합 | 확률 단체 , |
| 밀도 | |
| 모수 | , 집중도 |
| 평균 | |
| 주변분포 | |
| 구성 | 독립 감마 를 합으로 나눈다 |
| 켤레 관계 | 범주형·다항 분포의 켤레사전분포 |
| 쓰임 | 토픽 모형, 혼합 가중치 사전, 조성 데이터 |
「확률들의 확률분포」. 주사위 하나가 아니라 주사위 공장을 모형화한다.
디리클레 분포(Dirichlet distribution)는 개 성분이 음수가 아니고 합이 1 인 벡터 , 즉 확률 단체 위의 점에 대한 분포로, 밀도가
이다. 이면 베타 분포다. 정규화 상수 는 베타 함수의 다변수판이고, 이름은 그 적분(디리클레 적분)을 계산한 디리클레에게서 왔다.
샘플 하나가 그 자체로 확률 벡터라는 점이 핵심이다. 그래서 「범주형 분포의 모수가 얼마인지 모를 때 그 모수에 대한 믿음」, 곧 베이즈 사전분포로 쓰인다. 켤레사전분포 문서가 다항-디리클레 켤레 갱신 를 표로 정리했으니, 이 문서는 감마 구성과 그 결과(집약·막대 분할), 집중도 모수가 만드는 희소성, 모수 추정의 수치 계산, 그리고 작은 에서 배정밀도 난수가 0 으로 무너지는 문제를 다룬다.
2. 감마 구성 — 모든 성질의 출발점
독립인 를 뽑아
로 두면 이고, 게다가 는 합 와 독립이다. 이 한 줄이 디리클레의 거의 모든 성질을 낳는다.
- 집약(aggregation). 성분 몇 개를 합치면 다시 디리클레다. . 감마의 합이 감마라서다. 범주를 묶거나 쪼개도 모형이 일관되게 유지된다는 뜻이고, 이 일관성이 무한 차원 극한인 디리클레 과정(퍼거슨 1973)을 정의할 수 있게 해 준다.
- 주변분포. 위에서 나머지 전부를 하나로 합치면 .
- 적률. 평균 , 분산 , 공분산
로 40만 표본을 뽑으면 가 , 이론값 다. 합이 1 로 묶여 있으니 공분산은 항상 음수다. 양의 상관을 표현할 수 없다는 것이 디리클레의 구조적 한계이고, 토픽끼리 함께 나타나는 경향을 모형화하려면 로지스틱-정규 쪽으로 가야 한다.
- 막대 분할(stick-breaking). 로 막대의 첫 조각을 떼고, 남은 길이 에서 비율을 떼고… 를 반복해도 같은 분포가 나온다. 「중립성」이라 부르는 이 성질을 로 보낸 것이 디리클레 과정의 세투라만 표현이다.
3. 집중도와 희소성
평균 를 고정하고 집중도 만 바꾸면 분포의 성격이 바뀐다. 대칭 디리클레( 모두 같음)로 보면:
- : 단체 위의 균등분포. 「어떤 확률 벡터든 똑같이 그럴듯하다」.
- : 중심 근처로 모인다. 면 고정된 균등 확률.
- : 꼭짓점과 모서리로 몰린다. 표본 대부분이 성분 몇 개에 질량이 몰린 희소 벡터다.
에서 2만 표본으로 재면
| 0.1 | 1 | 10 | |
|---|---|---|---|
| 가장 큰 성분의 평균 | 0.663 | 0.292 | 0.154 |
| 0.01 미만인 성분 비율 | 62% | 8.6% | 0% |
다. 이면 성분 10 개 중 평균 6 개가 1% 미만이고, 가장 큰 성분 하나가 2/3 를 가져간다. 잠재 디리클레 할당(LDA, 블라이-응-조던 2003)에서 문서-토픽 사전의 를 1 보다 작게 두는 이유가 이것이다. 「문서 하나는 토픽 몇 개만 다룬다」는 가정을 사전분포 한 줄로 넣는 셈이다.1
디리클레-다항(폴리아) 분포. 확률 벡터 를 먼저 뽑고 번 범주를 뽑으면, 범주별 개수는 다항 분포보다 분산이 크다. 성분 분산이 다항 분산의 정확히 배다. , 이면 5.45 배. 감마-포아송 혼합이 음이항으로 과대산포를 만드는 것(감마 분포)과 똑같은 구조이고, 단어 빈도처럼 「한 번 나온 범주가 또 나오는」 데이터에 잘 맞는다. 폴리아 항아리(뽑은 색의 공을 하나 더 넣는다)가 이 분포를 순차적으로 생성한다.
4. 모수 추정 — 디감마 함수의 고정점
확률 벡터 표본 이 있을 때 최대우도 조건은
이다( 는 디감마 함수). 충분통계량이 로그 평균뿐인 지수족이라 우도가 오목하고 해가 유일하다. 민카(2000)가 정리한 두 가지 풀이를 직접 돌려 보면 차이가 선명하다. 참값 에서 500 개 표본:
- 고정점 반복 . 매 반복 우도가 줄지 않음이 보장되고 코드가 짧다. 그러나 선형 수렴이라 에서 출발해 까지 166 번, 적률 일치로 초기값을 잡아도 152 번 걸린다.
- 뉴턴법. 헤세 행렬이 「대각 + 계수 1」 꼴()이라 셔먼-모리슨 공식으로 에 역을 구한다. 같은 출발점에서 8 번 만에 같은 답 에 닿는다. 단 단계가 으로 넘어가지 않게 반으로 줄이는 안전장치가 필요하다.
역디감마 은 닫힌꼴이 없어 뉴턴 몇 번으로 구한다. 표본에 정확히 0 인 성분이 있으면 때문에 최대우도가 정의되지 않는다 — 조성 데이터(지질 성분비, 미생물 군집 비율)에서 흔한 골칫거리이고, 0 을 작은 값으로 바꾸는 처리 자체가 결과를 좌우한다.
5. 난수 생성 — 작은 의 함정
교과서 알고리즘은 감마 구성을 그대로 쓴다. 감마 난수는 마르살리아-창(2000) 방법이 표준이고, 형상모수가 1 보다 작을 때는 로 우회한다. 여기서 문제가 생긴다. 가 작으면 가 배정밀도 최솟값 아래로 떨어진다. 이므로
| 0.1 | 0.01 | 0.001 | |
|---|---|---|---|
| 가 0 으로 언더플로한 비율 (20만 표본) | 0 | 0.059% | 47.4% |
다. 이면 감마 난수의 절반이 정확히 0 이 된다. 성분이 모두 0 인 행은 10.9% () 이고, 그 행을 합으로 나누면 이다. 희소 사전을 쓰는 토픽 모형·혼합 모형에서 원인 모를 NaN 이 튀어나오는 고전적인 경로다.
해법은 로그 공간이다. 를 직접 계산하고, 최댓값을 빼서 지수를 취한 뒤 정규화한다(로그-합-지수 요령). 같은 에서 10만 행을 뽑으면 NaN 이 하나도 없고 성분 평균이 로 이론값 1/3 에 맞는다. 이 환경의 NumPy 2.x Generator.dirichlet 은 작은 에서 막대 분할 방식으로 우회해 NaN 을 내지 않았지만, 모든 라이브러리·모든 버전이 그렇다는 보장은 없으니 자작 코드라면 로그 공간이 국룰이다.2
6. 시뮬레이션에서 만나는 자리
- 혼합 모형의 가중치 사전. 가우스 혼합의 성분 가중치에 디리클레 사전을 두면 깁스 샘플링의 가중치 갱신이 디리클레 난수 한 번으로 끝난다. 이면 쓸모없는 성분의 가중치가 0 으로 줄어 성분 수를 자동으로 가지치기한다.3
- 라플라스 평활. 범주 빈도 추정에 「모든 칸에 1 을 더한다」는 요령은 사전의 사후 평균이다. 0.5 를 더하면 제프리스 사전이다(제프리스 사전분포).
- 불확실성 정량화의 입력. 조성(혼합 기체 몰분율, 합금 성분비)처럼 합이 1 로 묶인 입력을 몬테카를로 방법으로 흔들 때 각 성분을 독립으로 흔들고 다시 정규화하면 의도와 다른 분포가 나온다. 디리클레로 직접 뽑으면 합 제약과 평균을 동시에 지킨다. 단 음의 공분산만 허용된다는 위의 한계를 기억할 것.
- 베이지안 부트스트랩. 데이터 점 개의 가중치를 에서 뽑아 가중 통계량을 반복 계산하면 루빈(1981)의 베이지안 부트스트랩이다. 보통 부트스트랩의 다항 가중치를 연속 디리클레 가중치로 바꾼 것이다.
7. 관련 문서
- 베타 함수 · 감마 분포 · 감마 함수 · 디감마 함수 · 베타 분포
- 켤레사전분포 · 제프리스 사전분포 · 지수족
- 잠재 디리클레 할당 · 디리클레 과정 · 깁스 샘플링 · 부트스트랩
- 포아송 분포 · 최대우도추정 · 몬테카를로 방법
8. Footnotes
-
토픽 모형 논문에서 , 같은 숫자가 국룰처럼 보이는데, 이게 「문서는 토픽 몇 개, 토픽은 단어 몇 개만 쓴다」는 희소성 가정을 숫자로 박은 것이다. 근거를 물으면 대개 「원 논문이 그렇게 했다」가 답이다. ↩
-
디버거를 켜면 문제가 안 생기고 끄면 생기는 NaN 의 상당수가 이 부류다. 0.1% 확률이라도 표본을 수백만 개 뽑으면 반드시 맞는다. 확률이 작다고 0 은 아니다. ↩
-
범주가 수만 개(어휘)인 토픽 모형에서 디리클레를 매번 뽑는 대신 해석적으로 적분해 없애는 「붕괴 깁스」가 표준이 된 것도, 이 언더플로 문제와 계산량을 한꺼번에 피할 수 있어서다. ↩
이 문서의 주요 출처
- T. S. Ferguson (1973), A Bayesian analysis of some nonparametric problems, The Annals of Statistics 1(2), 209-230
- D. M. Blei, A. Y. Ng & M. I. Jordan (2003), Latent Dirichlet allocation, Journal of Machine Learning Research 3, 993-1022
- T. P. Minka (2000), Estimating a Dirichlet distribution, technical report
- G. Marsaglia & W. W. Tsang (2000), A simple method for generating gamma variables, ACM Transactions on Mathematical Software 26(3), 363-372
의견을 반영할게요. 감사합니다.