LDA-math-认识Beta/Dirichlet分布(3)

LDA-math-认识Beta/Dirichlet分布(3):

2. LDA-math-认识Beta/Dirichlet分布(3)

2.3 Dirichlet-Multinomial 共轭 对于魔鬼变本加厉的新的游戏规则,数学形式化如下:

  1. $X_1,X_2,cdots,X_n {stackrel{mathrm{iid}} {sim}}Uniform(0,1)$,
  2. 排序后对应的顺序统计量 $X_{(1)},X_{(2)},cdots, X_{(n)}$,
  3. 问 $(X_{(k_1)}, X_{(k_1+k_2)})$的联合分布是什么;

游戏3

完全类似于第一个游戏的推导过程,我们可以进行如下的概率计算(为了数学公式的简洁对称,我们取$x_3$满足$x_1+x_2+x_3 = 1$,但只有$x_1,x_2$是变量)

dirichlet-game [

](http://www.52nlp.cn/5165/dirichlet-distribution)$(X_{(k_1)}, X_{(k_1+k_2)})$的联合分布推导

begin{align*}

& PBigl(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{align*}

于是我们得到 $(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*}

熟悉 Dirichlet的同学一眼就可以看出,上面这个分布其实就是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 分布,即便 $overrightarrow{alpha}=(alpha_1,alpha_2, alpha_3)$ 延拓到非负实数集合,以上概率分布也是良定义的。

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

dirichlet-distribution不同 $alpha$ 下的Dirichlet 分布

类似于魔鬼的游戏2,我们也可以调整一下游戏3,从魔盒中生成$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)})$相比谁大谁小。于是有如下游戏4

  1.  $X_1,X_2,cdots,X_n {stackrel{mathrm{iid}}{sim}}Uniform(0,1)$,排序后对应的顺序统计量 $X_{(1)},X_{(2)},cdots, X_{(n)}$
  2. 令$p_1=X_{(k_1)}, p_2=X_{(k_1+k_2)},p_3 = 1-p_1-p_2$(加上$p_3$是为了数学表达简洁对称),我们要猜测 $overrightarrow{p}=(p_1,p_2,p_3)$;
  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_1,m_2,m_3$,$m=m_1+m_2+m3$;
  4.  问后验分布 $P(overrightarrow{p}|Y_1,Y_2,cdots,Y_m)$ 的分布是什么。

游戏4

为了方便,我们记

$ 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})$。按照贝叶斯推理的逻辑,我们同样可以把以上过程整理如下:

  1.  我们要猜测参数 $overrightarrow{p}=(p_1,p_2,p_3)$,其先验分布为$Dir(overrightarrow{p}|overrightarrow{k})$;
  2.  数据$Y_i$落到$[0,p_1), [p_1,p_2),[p_2,1]$三个区间的个数分别为 $m_1,m_2,m_3$,所以$overrightarrow{m}=(m_1,m_2,m_3)$ 服从多项分布$Mult(overrightarrow{m}|overrightarrow{p})$
  3.  在给定了来自数据提供的知识$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 分布,我们也可以把 $Dir(overrightarrow{p}|overrightarrow{alpha})$作如下分解

$ Dir(overrightarrow{p}|overrightarrow{1}) + MultCount(overrightarrow{m}-overrightarrow{1})

= Dir(overrightarrow{p} overrightarrow{alpha}) $

此处$overrightarrow{1}=(1,1,cdots,1)$。自然,上式我们也可以类似地用纯粹贝叶斯的观点进行推导和解释。 以上的游戏我们还可以往更高的维度上继续推,譬如猜测 $X_{(1)},X_{(2)},cdots, X_{(n)}$ 中的4、5、…等更多个数,于是就得到更高纬度的 Dirichlet 分布和 Dirichlet-Multinomial 共轭。一般形式的 Dirichlet 分布定义如下

begin{equation}

displaystyle Dir(overrightarrow{p} overrightarrow{alpha}) =

displaystyle frac{Gamma(sum_{k=1}^Kalpha_k)}

{prod_{k=1}^KGamma(alpha_k)} prod_{k=1}^K p_k^{alpha_k-1}

end{equation}

对于给定的 $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})$这两个分布是共轭关系。 Beta-Binomail 共轭和 Dirichlet-Multinomail 共轭都可以用纯粹数学的方式进行证明,我们在这两个小节中通过一个游戏来解释这两个共轭关系,主要是想说明这个共轭关系是可以对应到很具体的概率物理过程的。 2.4 Beta/Dirichlet 分布的一个性质 如果 $psim Beta(t|alpha,beta)$, 则

begin{align*}

E(p) & = int_0^1 t*Beta(t alpha,beta)dt

& = int_0^1 t* frac{Gamma(alpha+beta)}{Gamma(alpha)Gamma(beta)} t^{alpha-1}(1-t)^{beta-1}dt

& = frac{Gamma(alpha+beta)}{Gamma(alpha)Gamma(beta)} int_0^1 t^{alpha}(1-t)^{beta-1}dt

end{align*}

上式右边的积分对应到概率分布 $Beta(t|alpha+1,beta)$,对于这个分布,我们有

$

int_0^1 frac{Gamma(alpha+beta+1)}{Gamma(alpha+1)Gamma(beta)} t^{alpha}(1-t)^{beta-1}dt = 1

$

把上式带入$E(p)$的计算式,得到

begin{align}

E(p) & = frac{Gamma(alpha+beta)}{Gamma(alpha)Gamma(beta)}

cdot frac{Gamma(alpha+1)Gamma(beta)}{Gamma(alpha+beta+1)} notag

& = frac{Gamma(alpha+beta)}{Gamma(alpha+beta+1)}frac{Gamma(alpha+1)}{Gamma(alpha)} notag

& = frac{alpha}{alpha+beta}

label{beta-mean}

end{align}

这说明,对于Beta 分布的随机变量,其均值可以用$frac{alpha}{alpha+beta}$来估计。Dirichlet 分布也有类似的结论,如果$overrightarrow{p} sim Dir(overrightarrow{t}|overrightarrow{alpha})$,同样可以证明

begin{equation}

E(overrightarrow{p}) = Bigl(frac{alpha_1}{sum_{i=1}^Kalpha_i},frac{alpha_2}{sum_{i=1}^Kalpha_i},cdots, frac{alpha_K}{sum_{i=1}^Kalpha_i} Bigr)

label{dir-mean}

end{equation}

以上两个结论很重要,因为我们在后面的 LDA 数学推导中需要使用这个结论。

相关文章:

  1. LDA-math-认识Beta/Dirichlet分布(1)
  2. LDA-math-认识Beta/Dirichlet分布(2)
  3. LDA-math-神奇的Gamma函数(3)
  4. LDA-math-神奇的Gamma函数(1)
  5. LDA-math-神奇的Gamma函数(2)
  6. LDA-math-MCMC 和 Gibbs Sampling(2)
  7. LDA-math-MCMC 和 Gibbs Sampling(1)
  8. 正态分布的前世今生(四)
  9. 正态分布的前世今生(二)
  10. HMM学习最佳范例七:前向-后向算法5

Written on January 26, 2013