# Dirichlet分布与共轭

## Dirichlet分布

### 引入

均匀生成20个\[0,1]之间的随机数, 同时第7大和第13大的数是什么?

数学表达:

* $$X\_1,X\_2,\cdots,X\_n {\stackrel{\mathrm{iid}} {\sim}}Uniform(0,1)$$, 排序后对应的顺序统计量$$X\_{(1)},X\_{(2)}，\cdots, X\_{(n)}$$
* 问$$(X\_{(k\_1)}, X\_{(k\_1+k\_2)})$$的联合分布是什么

### 推导得到Dirichlet分布

![](http://cos.name/wp-content/uploads/2013/01/dirichlet-game.png)

取$$x\_3$$满足$$x\_1+x\_2+x\_3 = 1$$, $$(X\_{(k\_1)}, X\_{(k\_1+k\_2)})$$如下:

$$
\begin{aligned}
& P\Bigl(X\_{(k\_1)}\in(x\_1,x\_1+\Delta x),X\_{(k\_1+k\_2)}\in(x\_2,x\_2+\Delta x)\Bigr) \\\
& = n(n-1)\binom{n-2}{k\_1-1,k\_2-1}x\_1^{k\_1-1}x\_2^{k\_2-1}x\_3^{n-k\_1-k\_2}(\Delta x)^2 \\\
& = \frac{n!}{(k\_1-1)!(k\_2-1)!(n-k\_1-k\_2)!}x\_1^{k\_1-1}x\_2^{k\_2-1}x\_3^{n-k\_1-k\_2}(\Delta x)^2
\end{aligned}
$$

于是我们得到$$(X\_{(k\_1)}, X\_{(k\_1+k\_2)})$$的联合分布是:

$$\begin{align\*} f(x\_1,x\_2,x\_3) & = \frac{n!}{(k\_1-1)!(k\_2-1)!(n-k\_1-k\_2)!}x\_1^{k\_1-1}x\_2^{k\_2-1}x\_3^{n-k\_1-k\_2} \ & = \frac{\Gamma(n+1)}{\Gamma(k\_1)\Gamma(k\_2)\Gamma(n-k\_1-k\_2+1)}x\_1^{k\_1-1}x\_2^{k\_2-1}x\_3^{n-k\_1-k\_2} \end{align\*}$$

上面这个分布其实就是3维形式的**Dirichlet分布**$$Dir(x\_1,x\_2,x\_3|k\_1,k\_2,n-k\_1-k\_2+1)$$, 令$$\alpha\_1=k\_1,\alpha\_2=k\_2,\alpha\_3=n-k\_1-k\_2+1$$, 分布密度可以写为:

$$\begin{equation} \displaystyle f(x\_1,x\_2,x\_3) = \frac{\Gamma(\alpha\_1 + \alpha\_2 + \alpha\_3)} {\Gamma(\alpha\_1)\Gamma(\alpha\_2)\Gamma(\alpha\_3)}x\_1^{\alpha\_1-1}x\_2^{\alpha\_2-1}x\_3^{\alpha\_3-1} \end{equation}$$

这就是一般形式的3维**Dirichlet分布**, 从形式上我们也能看出, **Dirichlet分布是Beta分布在高维度上的推广**, 和Beta分布一样也是一个百变星君, 密度函数可以展现出多种形态:

![](http://cos.name/wp-content/uploads/2013/01/dirichlet-distribution.png)

一般形式的**Dirichlet分布**定义如下:

$$\begin{equation} \displaystyle Dir(\overrightarrow{p}|\overrightarrow{\alpha}) = \displaystyle \frac{\Gamma(\sum\_{k=1}^K\alpha\_k)} {\prod\_{k=1}^K\Gamma(\alpha\_k)} \prod\_{k=1}^K p\_k^{\alpha\_k-1} \end{equation}$$

## Dirichlet-Multinomial共轭

### 引入

调整一下游戏, 从魔盒中生成$$m$$个随机数$$Y\_1,Y\_2,\cdots,Y\_m {\stackrel{\mathrm{iid}}{\sim}}Uniform(0,1)$$, 且知道$$Y\_i$$和$$(X\_{(k\_1)}, X\_{(k\_1+k\_2)})$$相比谁大谁小, 再求上面的联合分布(后验分布).

数学表示如下:

* $$X\_1,X\_2,\cdots,X\_n {\stackrel{\mathrm{iid}} {\sim}}Uniform(0,1)$$, 排序后对应的顺序统计量$$X\_{(1)},X\_{(2)}，\cdots, X\_{(n)}$$
* 令$$p\_1=X\_{(k\_1)}, p\_2=X\_{(k\_1+k\_2)},p\_3 = 1-p\_1-p\_2$$, 猜测$$\overrightarrow{p}=(p\_1,p\_2,p\_3)$$
* $$Y\_1,Y\_2,\cdots,Y\_m {\stackrel{\mathrm{iid}}{\sim}}Uniform(0,1)$$, $$Y\_i$$中落到$$\[0,p\_1),\[p\_1,p\_2),\[p\_2,1]$$三个区间的个数分别为$$m=m\_1+m\_2+m3$$
* 问后验分布$$P(\overrightarrow{p}|Y\_1,Y\_2,\cdots,Y\_m)$$的分布是什么

### 推导

记$$\overrightarrow{m}=(m\_1,m\_2,m\_3),\quad \overrightarrow{k}=(k\_1,k\_2,n-k\_1-k\_2+1)$$, 由游戏中的信息, 我们可以推理得到$$p\_1, p\_2$$在$$X\_1,X\_2,\cdots,X\_n,Y\_1,Y\_2,\cdots,Y\_m{\stackrel{\mathrm{iid}}{\sim}} Uniform(0,1)$$这$$m+n$$个数中分别成为了第$$k\_1+m\_1, k\_2+m\_2$$大的数, 于是后验分布$$P(\overrightarrow{p}|Y\_1,Y\_2,\cdots,Y\_m)$$应该是:

$$Dir(\overrightarrow{p}|k\_1+m\_1,k\_1+m\_2,n-k\_1-k\_2+1+m\_3)$$

即$$Dir(\overrightarrow{p}|\overrightarrow{k}+\overrightarrow{m})$$. 按照贝叶斯推理的逻辑, 同样可以把以上过程整理如下:

* 要猜测参数$$\overrightarrow{p}=(p\_1,p\_2,p\_3)$$, 其先验分布为$$Dir(\overrightarrow{p}|\overrightarrow{k})$$
* 数据$$Y\_i$$落到$$\[0,p\_1),\[p\_1,p\_2),\[p\_2,1]$$三个区间的个数分别为$$m\_1,m\_2,m\_3$$, 服从**多项分布**$$Mult(\overrightarrow{m}|\overrightarrow{p})$$
* 在给定了来自数据提供的知识$$\overrightarrow{m}$$, $$\overrightarrow{p}$$的后验分布变为$$Dir(\overrightarrow{p}|\overrightarrow{k}+\overrightarrow{m})$$

以上贝叶斯分析过程的简单直观的表述就是:

$$Dir(\overrightarrow{p}|\overrightarrow{k}) + MultCount(\overrightarrow{m}) = Dir(\overrightarrow{p}|\overrightarrow{k}+\overrightarrow{m})$$

令$$\overrightarrow{\alpha}=\overrightarrow{k}$$, 把$$\overrightarrow{\alpha}$$从整数集合延拓到实数集合, 更一般的可以证明有如下关系:

$$\begin{equation} Dir(\overrightarrow{p}|\overrightarrow{\alpha}) + MultCount(\overrightarrow{m}) = Dir(p|\overrightarrow{\alpha}+\overrightarrow{m}) \end{equation}$$

以上式子实际上描述的就是**Dirichlet-Multinomial共轭**, 从以上过程可以看到, Dirichlet 分布中的参数$$\overrightarrow{\alpha}$$可以理解为物理计数, 类似于Beta分布.

对于给定的$$\overrightarrow{p}$$和$$N$$, 多项分布定义为:

$$\begin{equation} \displaystyle Mult(\overrightarrow{n} |\overrightarrow{p},N) = \binom{N}{\overrightarrow{n}}\prod\_{k=1}^K p\_k^{n\_k} \end{equation}$$

$$Mult(\overrightarrow{n} |\overrightarrow{p},N)$$和$$Dir(\overrightarrow{p}|\overrightarrow{\alpha})$$这两个分布是共轭关系.

## Dirichlet分布性质

类似于Beta分布, 如果$$\overrightarrow{p} \sim Dir(\overrightarrow{t}|\overrightarrow{\alpha})$$, Dirichlet分布的期望/均值为:

$$\begin{equation} E(\overrightarrow{p}) = \Bigl(\frac{\alpha\_1}{\sum\_{i=1}^K\alpha\_i},\frac{\alpha\_2}{\sum\_{i=1}^K\alpha\_i},\cdots, \frac{\alpha\_K}{\sum\_{i=1}^K\alpha\_i} \Bigr) \end{equation}$$

这个结论很重要, 例如在LDA数学推导中就需要使用到这个结论.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kerasnoone.gitbook.io/garnet/shu-xue-ji-chu/gai-shuai-lun/fen-bu/0x04dirichlet-fen-bu-yu-gong-e.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
