浅谈狄利克雷分布的概念与简单使用。

定义

首先介绍基本定义。

二项分布(Binomial Distribution)

进行 n n n次独立随机试验,出现结果1的概率是 p p p,如果用随机变量 X X X表示结果 1 1 1出现的次数,那么:
P ( X = m ) = ( n m ) p m ( 1 − p ) n − m , m = 0 , 1 , 2 , … , n P(X=m) = \begin{pmatrix} n \\ m \end{pmatrix}p^{m}(1-p)^{n-m},\quad m = 0,1,2,\dots,n P(X=m)=(nm)pm(1p)nm,m=0,1,2,,n 如果 n = 1 n=1 n=1,那么二项分布等同于伯努利分布(Bernoulli Distribution)。

多项分布(Multinomial Distribution)

下面我们将二项拓展到多项。进行 n n n次独立随机试验,每次实验结果有 k k k种,其中第 i i i种出现的概率为 p i p_{i} pi,第 i i i种出现的次数为 n i n_{i} ni,如果用随机变量 X = { X 1 , X 2 , … , X k } X = \{X_{1},X_{2},\dots,X_{k}\} X={X1,X2,,Xk}表示试验所有可能结果的次数,那么:
P ( X 1 = n 1 , X 2 = n 2 , … , X k = n k ) = n ! n 1 ! n 2 ! ⋯ n k ! p 1 n 1 p 2 n 2 ⋯ p 3 n 3 = n ! ∏ i = 1 k n i ! ∏ i = 1 k p i n i \begin{aligned} P(X_{1}=n_{1},X_{2}=n_{2},\dots,X_{k}=n_{k}) &= \frac{n!}{n_{1}!n_{2}!\cdots n_{k}!}p_{1}^{n_{1}}p_{2}^{n_{2}}\cdots p_{3}^{n_{3}} \\ &=\frac{n!}{\prod_{i=1}^{k}n_{i}!}\prod_{i=1}^{k}p_{i}^{n_{i}} \end{aligned} P(X1=n1,X2=n2,,Xk=nk)=n1!n2!nk!n!p1n1p2n2p3n3=i=1kni!n!i=1kpini 记作 X ∼ M u l t ( n , p ) X\sim\mathrm{Mult}(n,p) XMult(n,p)
如果 n = 1 n=1 n=1,那么多项分布等同于类别分布(Categorical Distribution)。可以看出,二项分布是多项分布的特殊情况,而伯努利分布式类别分布的特殊情况。

贝塔分布(Beta Distribution)

以上均是离散随机变量的概率分布,下面考虑连续随机变量的情况。此时我们需要研究概率密度。设 X X X为连续随机变量,取值范围为 [ 0 , 1 ] [0,1] [0,1],其概率密度函数为:
p ( x ) = { 1 B ( s , t ) x s − 1 ( 1 − x ) t − 1 , 0 ≤ x ≤ 1 0 , otherwise p(x) = \left\{ \begin{aligned} &\frac{1}{B(s,t)}x^{s-1}(1-x)^{t-1}, \quad & 0\leq x\leq 1 \\ &0, & \text{otherwise} \end{aligned} \right. p(x)=B(s,t)1xs1(1x)t1,0,0x1otherwise 其中 s > 0 , t > 0 s>0, t>0 s>0,t>0是参数。贝塔分布表示为 X ∼ B e t a ( s , t ) X\sim\mathrm{Beta}(s,t) XBeta(s,t),概率密度取值如下图所示。
在这里插入图片描述

贝塔分布是均匀分布的更一般形式。
B ( ⋅ ) B(\cdot) B() 是贝塔函数 B ( s , t ) = ∫ 0 1 x s − 1 ( 1 − x ) t − 1 d x = Γ ( s ) Γ ( t ) Γ ( s + t ) , Γ ( s ) ≜ ∫ 0 ∞ x s − 1 e − x d x , s > 0 B(s,t) = \int_{0}^{1}x^{s-1}(1-x)^{t-1}\mathrm{d}x = \frac{\Gamma(s)\Gamma(t)}{\Gamma(s+t)}, \quad \Gamma(s) \triangleq\int_{0}^{\infty}x^{s-1}e^{-x}\mathrm{d}x, s>0 B(s,t)=01xs1(1x)t1dx=Γ(s+t)Γ(s)Γ(t),Γ(s)0xs1exdx,s>0 Γ ( ⋅ ) \Gamma(\cdot) Γ() 是伽马函数。伽马函数具有性质: Γ ( s + 1 ) = s Γ ( s ) \Gamma(s+1) = s\Gamma(s) Γ(s+1)=sΓ(s),且当 s s s是自然数时有: Γ ( s + 1 ) = s ! \Gamma(s+1) = s! Γ(s+1)=s!。此时可以看出,当 s , t s,t s,t是自然数时 B ( s , t ) = ( s − 1 ) ! ( t − 1 ) ! ( s + t − 1 ) ! B(s,t) = \frac{(s-1)!(t-1)!}{(s+t-1)!} B(s,t)=(s+t1)!(s1)!(t1)! 贝塔函数取值分布 如下图所示。
betaFunc

狄利克雷分布(Dirichlet Distribution)

下面我们再扩展到多元连续随机变量。狄利克雷分布是贝塔分布的扩展。定义多元连续随机变量 θ = { θ 1 , θ 2 , … , θ k } \theta = \{\theta_{1},\theta_{2},\dots,\theta_{k}\} θ={θ1,θ2,,θk}的概率密度函数为
p ( θ ∣ α ) = Γ ( ∑ i = 1 k α i ) ∏ i = 1 k Γ ( α i ) ∏ i = 1 k θ i α i − 1 , α i > 0 , i = 1 , 2 , … , k p(\theta|\alpha) = \frac{\Gamma\left( \sum_{i=1}^{k}\alpha_{i} \right)}{\prod_{i=1}^{k}\Gamma(\alpha_{i})}\prod_{i=1}^{k}\theta_{i}^{\alpha_{i}-1},\quad \alpha_{i}>0,\quad i = 1,2,\dots,k p(θα)=i=1kΓ(αi)Γ(i=1kαi)i=1kθiαi1,αi>0,i=1,2,,k 其中 ∑ i = 1 k θ i = 1 , θ i ≥ 0 \sum_{i=1}^{k}\theta_{i} = 1, \theta_{i}\geq 0 i=1kθi=1,θi0,则称随机变量 θ \theta θ 服从参数为 α \alpha α 的狄利克雷分布,记作 θ ∼ D i r ( α ) \theta\sim\mathrm{Dir}(\alpha) θDir(α)
方便起见,我们定义 B ( α ) ≜ ∏ i = 1 k Γ ( α i ) Γ ( ∑ i = 1 k α i ) B(\alpha) \triangleq \frac{\prod_{i=1}^{k}\Gamma(\alpha_{i})}{\Gamma\left( \sum_{i=1}^{k}\alpha_{i} \right)} B(α)Γ(i=1kαi)i=1kΓ(αi) 那么狄利克雷分布的概率密度函数可以表示为 p ( θ ∣ α ) = 1 B ( α ) ∏ i = 1 k θ i α i − 1 p(\theta|\alpha) = \frac{1}{B(\alpha)}\prod_{i=1}^{k}\theta_{i}^{\alpha_{i}-1} p(θα)=B(α)1i=1kθiαi1 B ( α ) B(\alpha) B(α) 又称多元贝塔函数或扩展贝塔函数,其积分表示为 B ( α ) = ∫ ∏ i = 1 k θ i α i − 1 d θ B(\alpha) = \int\prod_{i=1}^{k}\theta_{i}^{\alpha_{i} - 1}\mathrm{d}\theta B(α)=i=1kθiαi1dθ

共轭先验(Conjugate Prior)

共轭分布常在贝叶斯学习中使用,共轭分布的好处是便于从先验分布计算后验分布。如果后验分布与先验分布属于同类,则先验分布于后验分布成为共轭分布,先验分布成为共轭先验。狄利克雷分布属于指数分布族,常作为多项分布的共轭先验分布使用。作为共轭先验的狄利克雷分布的参数被成为超参数

假设随机变量 X X X服从集合 W = { w 1 , w 2 , … , w k } W=\{w_{1},w_{2},\dots,w_{k}\} W={w1,w2,,wk}上的多项分布,即 X ∼ M u l t ( n , θ ) X\sim \mathrm{Mult}(n,\theta) XMult(n,θ)。将样本数据表示为 D D D,目标是计算在样本数据 D D D给定的条件下参数 θ \theta θ的后验概率 p ( θ ∣ D ) p(\theta|D) p(θD)。此时对于给定样本 D D D的似然函数是 p ( D ∣ θ ) = θ 1 n 1 θ 2 n 2 ⋯ θ k n k = ∏ i = 1 k θ i n i p(D|\theta) = \theta_{1}^{n_{1}}\theta_{2}^{n_{2}}\cdots \theta_{k}^{n_{k}} = \prod_{i=1}^{k}\theta_{i}^{n_{i}} p(Dθ)=θ1n1θ2n2θknk=i=1kθini 我们假设随机变量 θ \theta θ 服从狄利克雷分布 p ( θ ∣ α ) p(\theta|\alpha) p(θα),即 θ ∼ D i r ( α ) \theta\sim\mathrm{Dir}(\alpha) θDir(α)。此时随机变量 θ \theta θ 的先验分布为 p ( θ ∣ α ) = 1 B ( α ) ∏ i = 1 k θ i α i − 1 , α i > 0 p(\theta|\alpha) = \frac{1}{B(\alpha)}\prod_{i=1}^{k}\theta_{i}^{\alpha_{i}-1} ,\quad \alpha_{i} > 0 p(θα)=B(α)1i=1kθiαi1,αi>0 根据贝叶斯公式,给定样本数据 D D D的条件下, θ \theta θ的后验分布是 p ( θ ∣ D , α ) = p ( D ∣ θ ) p ( θ ∣ α ) p ( D ∣ α ) = ∏ i = 1 k θ i n i 1 B ( α ) θ i α i − 1 ∫ ∏ i = 1 k θ i n i 1 B ( α ) θ i α i − 1 d θ = 1 B ( α + n ) ∏ i = 1 k θ i α i + n i − 1 = D i r ( θ ∣ α + n ) \begin{aligned} p(\theta|D,\alpha) &= \frac{p(D|\theta)p(\theta|\alpha)}{p(D|\alpha)} \\ &=\frac{\prod_{i=1}^{k}\theta_{i}^{n_{i}}\frac{1}{B(\alpha)}\theta_{i}^{\alpha_{i}-1}}{\int\prod_{i=1}^{k}\theta_{i}^{n_{i}}\frac{1}{B(\alpha)}\theta_{i}^{\alpha_{i}-1} \mathrm{d}\theta} \\ &=\frac{1}{B(\alpha+n)}\prod_{i=1}^{k}\theta_{i}^{\alpha_{i}+n_{i}-1} \\ &=\mathrm{Dir}(\theta|\alpha+n) \end{aligned} p(θD,α)=p(Dα)p(Dθ)p(θα)=i=1kθiniB(α)1θiαi1dθi=1kθiniB(α)1θiαi1=B(α+n)1i=1kθiαi+ni1=Dir(θα+n) 此时 θ \theta θ的后验分布也是狄利克雷分布,所以狄利克雷分布是多项分布的共轭先验。同时,贝塔分布也是二项分布的共轭先验。

狄利克雷过程(Dirichlet Process)

未完待续……


  • 感谢 李航——《统计学习方法》第2版
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐