学习笔记 Beta分布与狄利克雷分布

本文最后更新于:2024年2月23日 中午

学习笔记 Beta分布与狄利克雷分布

在调研Evidential Deep Learning(EDL)的时候了解到EDL是基于Dirichlet分布的,由于这方面数学知识不够,所以额外调查了关于Beta分布、Dirichlet分布的知识,汇总为本学习笔记。

总的来说,Beta分布和Dirichlet分布都是一种“分布的分布”(a distribution on probability distribution)。

Beta分布

棒球的例子

在棒球运动中,运动员的击球率常常作为一个评价标准,击球率的定义是:击中的球数除以击球的总数。现在有一个新运动员小明,我们希望对小明的击球率做一个估计,但是小明在比赛中只打了一个球,并且击中了,直接计算击球率就是100%。显然,这是不合理的,但是应该怎么进行估计呢?

对于这个问题,我们可以使用beta分布来进行建模。根据统计,0.266是正常水平的击球率,大部分选手的击球率在0.215到0.360之间。下图是对Beta分布的两个参数分别取81和219的概率密度函数(PDF),其均值为0.27,分布主要落在[0.2,0.35],符合棒球运动中的统计规律。

估计小明的击球率的方法就是Beta(α+hits,β+misses)\text{Beta}(\alpha+\text{hits},\beta+\text{misses}),即令α\alpha加上击中次数、β\beta加上未击中次数,结果能得到下面这个图:

这里可以看到,小明击球率很可能在0.27左右,显然是一个比100%更合理的数字。但是很遗憾的是,和棒球运动整体统计的曲线没什么变化,因为击中一次实在是太少了,但是随着小明继续击球,我们会得到新的曲线:

此时,直接估计的击球率是100100+200=0.333\frac{100}{100+200}=0.333,但是根据beta分布的均值则是αα+β=181181+419=0.302\frac{\alpha}{\alpha+\beta}=\frac{181}{181+419}=0.302(如何求均值后面再说,这里只说结论)。这里的不一样是因为,我们设置的初始的α=81,β=219\alpha=81,\beta=219的参数表示我们给予了“小明在击球前已经成功81次、失败219次”的先验信息。

整体来看,小明的击球应该服从一个参数为θ\theta的二项分布,而这里的beta分布是一个能够帮助我们建模θ\theta的分布,所以beta分布是一种“分布的分布”。当你不知道一个东西的具体概率是多少时,beta分布能给出所有概率出现的可能性的大小。

公式推导

Beta的PDF

根据二项分布,小明总共击nn个球,击中xx个的概率是p(x)=\pmatrix{n \\ x} \theta^x(1-\theta)^{n-x},这里θ\theta就是击球的概率,我们以其为变量,将刚才的式子表示为θ\theta的参数:

f(θ)θa(1θ)b=kθa(1θ)b\begin{align} f(\theta) &\propto \theta^a(1-\theta)^b \\ &= k \cdot \theta^a(1-\theta)^b \end{align}

其中,a,ba,b是常数,表示成功(击中)和失败(未击中)的次数,θ\theta[0,1][0,1]范围内的概率。为了f(θ)f(\theta)是概率,需要乘一个kk来标准化,这个kk就是:

k=101θa(1θ)bdθk=\frac{1}{\int^1_0 \theta^a(1-\theta)^b d\theta}

即除以θa(1θ)b\theta^a(1-\theta)^b曲线下的面积。

α=a+1,β=b+1\alpha=a+1,\beta=b+1,则Beta分布的PDF为

f(θ;α,β)=θα1(1θ)β101θα1(1θ)β1dθ=θα1(1θ)β1B(α,β)f(\theta;\alpha,\beta)=\frac{\theta^{\alpha-1}(1-\theta)^{\beta-1}} {\int^1_0 \theta^{\alpha-1}(1-\theta)^{\beta-1} d\theta} =\frac{\theta^{\alpha-1}(1-\theta)^{\beta-1}} {\text{B}(\alpha,\beta)}

回到第一个式子,我们可以发现其实\pmatrix{n \\ x}=C^x_n=\frac{n!}{x!(n-x)!},所以B(α,β)=(α1)!(β1)!(α+β2)!B(\alpha,\beta)=\frac{(\alpha-1)!(\beta-1)!}{(\alpha+\beta-2)!},而Γ\Gamma(gamma)函数是阶乘的推广,所以Beta的PDF还可以表示为

f(θ;α,β)=Γ(α+β)Γ(α)Γ(β)θα1(1θ)β1f(\theta;\alpha,\beta)=\frac{\Gamma(\alpha+\beta)} {\Gamma(\alpha)\Gamma(\beta)} \theta^{\alpha-1}(1-\theta)^{\beta-1}

其中,Γ\Gamma函数函数为:

Γ(z)=0tz1etdt=(z1)!\Gamma(z)=\int^\infty_0 t^{z-1}e^{-t}dt=(z-1)!

Beta的统计性质

  • 期望

    E(X)=01xf(x;α,β)dx=01xxα1(1x)β1B(α,β)dx=1B(α,β)01xα(1x)β1dx=B(α+1,β)B(α,β)=Γ(α+β)Γ(α)Γ(β)Γ(α+1)Γ(β)Γ(α+β+1)=αα+β\begin{align} E(X) &= \int_0^1 x f(x;\alpha,\beta) dx \\ &= \int_0^1 x \frac{x^{\alpha-1}(1-x)^{\beta-1}}{\text{B}(\alpha,\beta)} dx \\ &= \frac{1}{\text{B}(\alpha,\beta)} \int_0^1 x^{\textcolor{red}{\alpha}}(1-x)^{\beta-1} dx \\ &= \frac{\text{B}(\alpha+1,\beta)}{\text{B}(\alpha,\beta)} \\ &= \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} \cdot \frac{\Gamma(\alpha+1)\Gamma(\beta)}{\Gamma(\alpha+\beta+1)} \\ &= \frac{\alpha}{\alpha+\beta} \\ \end{align}

    最后一步根据阶乘的思路化简即可

  • 二阶矩

    E(X2)=01x2f(x;α,β)dx=01x2xα1(1x)β1B(α,β)dx=1B(α,β)01xα+1(1x)β1dx=B(α+2,β)B(α,β)=α(α+1)(α+β)(α+β+1)\begin{align} E(X^2) &= \int_0^1 \textcolor{red}{x^2} f(x;\alpha,\beta) dx \\ &= \int_0^1 x^2 \frac{x^{\alpha-1}(1-x)^{\beta-1}}{\text{B}(\alpha,\beta)} dx \\ &= \frac{1}{\text{B}(\alpha,\beta)} \int_0^1 x^{\textcolor{red}{\alpha+1}}(1-x)^{\beta-1} dx \\ &= \frac{\text{B}(\alpha+2,\beta)}{\text{B}(\alpha,\beta)} \\ &= \frac{\alpha (\alpha+1)}{(\alpha+\beta)(\alpha+\beta+1)} \\ \end{align}

  • 方差

    D(X)=E(X2)E2(X)=αβ(α+β)2(α+β+1)\begin{align} D(X) &= E(X^2)-E^2(X) \\ &= \frac{\alpha \beta}{(\alpha+\beta)^2(\alpha+\beta+1)} \end{align}

根据贝叶斯估计求θ\theta的分布

根据贝叶斯公式,有:

P(θ;data)=P(data;θ)P(θ)P(data)P(data;θ)P(θ)P(\theta;\text{data})= \frac{P(\text{data};\theta)P(\theta)}{P(\text{data})} \propto P(\text{data};\theta)P(\theta)

因为数据的分布是一个定值,所以忽略它,只保留分子,即先验分布与参数为θ\theta的二项分布乘积。

P(θ;data)θx(1θ)(nx)θα1(1θ)β1θα+x1(1θ)(β+(nx)1)P(θ;data)=θα1(1θ)(β1)B(α,β),where α=α+xdata中成功次数,β=β+(nx)data中失败次数\begin{align} P(\theta;\text{data}) &\propto \theta^x(1-\theta)^{(n-x)} \cdot \theta^{\alpha-1}(1-\theta)^{\beta-1} \\ &\propto \theta^{\alpha+x-1} (1-\theta)^{(\beta+(n-x)-1)} \\ P(\theta;\text{data}) &= \frac{\theta^{\alpha^\prime-1} (1-\theta)^{(\beta^\prime-1)}}{\text{B}(\alpha^\prime, \beta^\prime)} , \quad \text{where}\ \alpha^\prime=\alpha+\overbrace{x}^{\text{data中成功次数}},\beta^\prime=\beta+\overbrace{(n-x)}^{\text{data中失败次数}} \end{align}

所以根据数据和先验对参数的估计方法,就是先验的α\alpha加上成功次数、先验的β\beta加上失败次数。

红鞋蓝鞋的例子

假如观察小明每天会穿一双蓝色的鞋子或者一双红色的鞋子来到学校,但是我们对他穿什么颜色的鞋子没有任何先验知识,那么应该怎么利用beta分布进行估计呢?

答案是将先验设置为平均分布,如上图所示,将α\alphaβ\beta都设置为1即可获得一个均匀分布的beta分布,然后我们再根据观察往α\alphaβ\beta上加蓝鞋红鞋的天数。

Dirichlet分布

然而,Beta分布只能对成功/失败进行建模,假如小明穿红绿蓝三种颜色的鞋子时,beta分布就无能为力了,所以,狄利克雷分布就出现了。

Dirichlet分布是Beta分布的拓展,Beta分布是Dirichlet分布的特例。

Beta分布的公式为:

f(θ)=Γ(α+β)Γ(α)Γ(β)θα1(1θ)β1f(\theta)=\frac{\Gamma(\alpha+\beta)} {\Gamma(\alpha)\Gamma(\beta)} \theta^{\alpha-1}(1-\theta)^{\beta-1}

而Dirichlet分布的公式为:

f(θ)=Γ(kαk)kΓ(αk)k=1mθkαk1f(\theta)=\frac{\Gamma(\sum_k\alpha_k)} {\prod_k\Gamma(\alpha_k)} \prod^{m}_{k=1} \theta_k^{\alpha_k-1}

其中总共有mm个参数,αk\alpha_k是其参数,同样也可以写作:

f(θ)=1B(α)k=1mθkαk1f(\theta)=\frac{1}{B(\boldsymbol{\alpha})} \prod^{m}_{k=1} \theta_k^{\alpha_k-1}

统计性质

  • 均值

    E[θi]=αikαkE[\theta_i]=\frac{\alpha_i}{\sum_k \alpha_k}

  • 众数

    mode=αi1kαkKmode = \frac{\alpha_i-1}{\sum_k \alpha_k - K}

参考文献

狄利克雷分布(Dirichlet Distribution) - 知乎 (zhihu.com)

来源:如何通俗理解 beta 分布? - 小杰的回答 - 知乎

【统计学进阶知识(一)】深入理解Beta分布:从定义到公式推导 - 知乎 (zhihu.com)

狄利克雷分布 - 维基百科,自由的百科全书 (wikipedia.org)

Β分布 - 维基百科,自由的百科全书 (wikipedia.org)

Intro to 狄利克雷(Dirichlet)分布 - 知乎 (zhihu.com)