在机器学习领域中,概率模型是一个常用的利器。用它来对问题进行建模,有几点好处:1)当给定参数分布的假设空间后,可以通过很严格的数学推导,得到模型的似然分布,这样模型有很好的概率解释;2)可以利用现有的EM算法或者Variational method来学习。通常为了方便推导参数的后验分布,会假设参数的先验分布是似然的某个共轭分布,这样后验分布和先验分布具有相同的形式,这可以大大简化建模过程中的数学推导,保证最后的形式是tractable。
在概率模型中,Dirichlet这个词出现的频率非常的高。初学机器学习的同学,在学习概率模型的时候,很多同学都不清楚为啥一个表现形式如此奇怪的分布Dirichlet分布会出现在我们的教科书中,它是靠啥关系攀上了多项分布(Multinomial distribution)这个亲戚的,以至于它可以“堂而皇之”地扼杀我大天朝这么多数学家和科学家梦想的?为了引出背后这层关系,我们需要先介绍一个概念——共轭先验(Conjugate Prior)。
- 在贝叶斯统计理论中,如果某个随机变量Θ的后验概率 p(θ|x)和其先验概率p(θ)属于同一个分布簇的,那么称p(θ|x)和p(θ)为共轭分布,同时,也称p(θ)为似然函数p(x|θ)的共轭先验。
- 事情还没有发生,要求这件事情发生的可能性的大小,是先验概率。事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小,是后验概率。
1、累积分布函数(分布函数)(CDF-Cumulative Distribution Function)
分布函数的定义为
假设 P(X=0)=14,P(X=1)=12,P(X=2)=14 ,那么分布函数如下图所示:
这里需要注意两点
- 函数是右连续的
- FX(1.4)=34 , 这里 P(1≤X<2)=12
因此F函数始终是非降的, 右连续的, 且 limx→∞F(x)=1
2、概率密度函数(PDF-Probability Density Function)
离散随机变量的密度函数为:
对于连续随机变量,若存在一个函数 fX 对所有的x均满足 fX(x)≥0 , ∫abfX(x)dx=1 ,并且有
则 fX 就是 FX(x) 的密度函数,并且 FX(x)=∫x−∞fX(t)dt,fX(x)=ddxFX(x) ,这是一个很重要的概念,后面所谓的密度估计(density estimation)(EM algorithm和Sampling Methods)都是要估计出一个概率密度函数来。
3、伯努利分布,二项分布
伯努利分布就是对单次抛硬币的建模,X~Bernoulli(p)的密度函数是 f(x)=px(1−p)1−x ,随机变量只能取{0,1}。对于所有的密度函数都要归一化!而伯努利分布天然是归一化。因此归一化参数就是1.
多次伯努利实验即为二项分布,其密度函数为
f(x)=P(X=x)=P(X=x|n,p)=Cxnpx(1−p)n−x
这里 Cxn 可以看作是二项分布的归一化参数。
4、 β 分布
概率密度函数
其中
5、多项分布
把二项分布再推广,就得到多项分布。二项分布的典型例子是扔硬币,硬币正面向上的概率为p,重复扔n次硬币,k次为下面的概率即为一个二项分布。二项分布即为多重伯努利实验。
不同于扔硬币,多项分布类似于扔骰子。假设萤火虫对食物的喜欢程序,我们给三种选择:花粉,蚜虫,面团。假设20%的萤火虫喜欢花粉,35%的萤火虫喜欢蚜虫,45%的萤火虫喜欢面团。我们对30只萤火虫做实验,发现8只喜欢花粉,10只喜欢蚜虫,12只喜欢面团,这件事的概率为
这时的参数 μ 变成了一个向量 μ⃗ ={μ1,μ2,...,μk} 表示第一个取值被选中的概率,这里为 μ⃗ ={0.2,0.35,0.45} ,那么X~Multinomial(n,p)的PDF为:
6、Dirichlet Distribution(迪利特雷分布)
Dirichlet分布可以看做是分布之上的分布。如何理解这句话,我们可以先举个例子:假设我们有一个骰子,其有六面,分别为{1,2,3,4,5,6}。现在我们做了10000次投掷的实验,得到的实验结果是六面分别出现了{2000,2000,2000,2000,1000,1000}次,如果用每一面出现的次数与试验总数的比值估计这个面出现的概率,则我们得到六面出现的概率,分别为{0.2,0.2,0.2,0.2,0.1,0.1}。现在,我们还不满足,我们想要做10000次试验,每次试验中我们都投掷骰子10000次。我们想知道,骰子六面出现概率为{0.2,0.2,0.2,0.2,0.1,0.1}的概率是多少(说不定下次试验统计得到的概率为{0.1, 0.1, 0.2, 0.2, 0.2, 0.2}这样了)。这样我们就在思考骰子六面出现概率分布这样的分布之上的分布。而这样一个分布就是Dirichlet分布。
下面正式进入狄利克雷分布介绍,首先说一下这个多项分布的参数
μ
。在伯努利分布里,参数
μ
就是抛硬币取某一面的概率,因为伯努利分布的状态空间只有{0,1}。但是在多项分布里,因为状态空间有K个取值,因此
μ
变成了向量
μ⃗ ={μ1,μ2,...,μk}
。多项分布的likelihood函数形式是
∏μmix
,因此就像选择伯努利分布的共轭先验贝塔函数时那样,狄利克雷分布的函数形式应该如下:
上式中, ∑kμk=1 , α⃗ =(α1,...,αk) 是迪利特雷参数,把上式归一化为真正的迪利特雷分布为:
其中 α0=∑k=1Kαk 。这个函数和贝塔分布有点像,跟多项式分布也有点像。就像 β 分布那样,狄利克雷分布就是它所对应的后验多项分布的参数 μ⃗ 的分布,只不过 μ 是一个向量。