Dirichlet分布与共轭

Dirichlet分布

引入

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

数学表达:

  • X1,X2,,XniidUniform(0,1)X_1,X_2,\cdots,X_n {\stackrel{\mathrm{iid}} {\sim}}Uniform(0,1), 排序后对应的顺序统计量X(1),X(2),X(n)X_{(1)},X_{(2)},\cdots, X_{(n)}

  • (X(k1),X(k1+k2))(X_{(k_1)}, X_{(k_1+k_2)})的联合分布是什么

推导得到Dirichlet分布

x3x_3满足x1+x2+x3=1x_1+x_2+x_3 = 1, (X(k1),X(k1+k2))(X_{(k_1)}, X_{(k_1+k_2)})如下:

P(X(k1)(x1,x1+Δx),X(k1+k2)(x2,x2+Δx))=n(n1)(n2k11,k21)x1k11x2k21x3nk1k2(Δx)2=n!(k11)!(k21)!(nk1k2)!x1k11x2k21x3nk1k2(Δx)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(k1),X(k1+k2))(X_{(k_1)}, X_{(k_1+k_2)})的联合分布是:

上面这个分布其实就是3维形式的Dirichlet分布Dir(x1,x2,x3k1,k2,nk1k2+1)Dir(x_1,x_2,x_3|k_1,k_2,n-k_1-k_2+1), 令α1=k1,α2=k2,α3=nk1k2+1\alpha_1=k_1,\alpha_2=k_2,\alpha_3=n-k_1-k_2+1, 分布密度可以写为:

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

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

Dirichlet-Multinomial共轭

引入

调整一下游戏, 从魔盒中生成mm个随机数Y1,Y2,,YmiidUniform(0,1)Y_1,Y_2,\cdots,Y_m {\stackrel{\mathrm{iid}}{\sim}}Uniform(0,1), 且知道YiY_i(X(k1),X(k1+k2))(X_{(k_1)}, X_{(k_1+k_2)})相比谁大谁小, 再求上面的联合分布(后验分布).

数学表示如下:

  • X1,X2,,XniidUniform(0,1)X_1,X_2,\cdots,X_n {\stackrel{\mathrm{iid}} {\sim}}Uniform(0,1), 排序后对应的顺序统计量X(1),X(2),X(n)X_{(1)},X_{(2)},\cdots, X_{(n)}

  • p1=X(k1),p2=X(k1+k2),p3=1p1p2p_1=X_{(k_1)}, p_2=X_{(k_1+k_2)},p_3 = 1-p_1-p_2, 猜测p=(p1,p2,p3)\overrightarrow{p}=(p_1,p_2,p_3)

  • Y1,Y2,,YmiidUniform(0,1)Y_1,Y_2,\cdots,Y_m {\stackrel{\mathrm{iid}}{\sim}}Uniform(0,1), YiY_i中落到[0,p1),[p1,p2),[p2,1][0,p_1),[p_1,p_2),[p_2,1]三个区间的个数分别为m=m1+m2+m3m=m_1+m_2+m3

  • 问后验分布P(pY1,Y2,,Ym)P(\overrightarrow{p}|Y_1,Y_2,\cdots,Y_m)的分布是什么

推导

m=(m1,m2,m3),k=(k1,k2,nk1k2+1)\overrightarrow{m}=(m_1,m_2,m_3),\quad \overrightarrow{k}=(k_1,k_2,n-k_1-k_2+1), 由游戏中的信息, 我们可以推理得到p1,p2p_1, p_2X1,X2,,Xn,Y1,Y2,,YmiidUniform(0,1)X_1,X_2,\cdots,X_n,Y_1,Y_2,\cdots,Y_m{\stackrel{\mathrm{iid}}{\sim}} Uniform(0,1)m+nm+n个数中分别成为了第k1+m1,k2+m2k_1+m_1, k_2+m_2大的数, 于是后验分布P(pY1,Y2,,Ym)P(\overrightarrow{p}|Y_1,Y_2,\cdots,Y_m)应该是:

Dir(pk1+m1,k1+m2,nk1k2+1+m3)Dir(\overrightarrow{p}|k_1+m_1,k_1+m_2,n-k_1-k_2+1+m_3)

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

  • 要猜测参数p=(p1,p2,p3)\overrightarrow{p}=(p_1,p_2,p_3), 其先验分布为Dir(pk)Dir(\overrightarrow{p}|\overrightarrow{k})

  • 数据YiY_i落到[0,p1),[p1,p2),[p2,1][0,p_1),[p_1,p_2),[p_2,1]三个区间的个数分别为m1,m2,m3m_1,m_2,m_3, 服从多项分布Mult(mp)Mult(\overrightarrow{m}|\overrightarrow{p})

  • 在给定了来自数据提供的知识m\overrightarrow{m}, p\overrightarrow{p}的后验分布变为Dir(pk+m)Dir(\overrightarrow{p}|\overrightarrow{k}+\overrightarrow{m})

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

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

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

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

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

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

Dirichlet分布性质

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

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

最后更新于

这有帮助吗?