在机器学习领域中,概率模型是一个常用的利器。用它来对问题进行建模,有几点好处:1)当给定参数分布的假设空间后,可以通过很严格的数学推导,得到模型的似然分布,这样模型有很好的概率解释;2)可以利用现有的EM算法或者Variational method来学习。通常为了方便推导参数的后验分布,会假设参数的先验分布是似然的某个共轭分布,这样后验分布和先验分布具有相同的形式,这可以大大简化建模过程中的数学推导,保证最后的形式是tractable。
在概率模型中,Dirichlet这个词出现的频率非常的高。初学机器学习的同学,在学习概率模型的时候,很多同学都不清楚为啥一个表现形式如此奇怪的分布Dirichlet分布会出现在我们的教科书中,它是靠啥关系攀上了多项分布(Multinomial distribution)这个亲戚的,以至于它可以“堂而皇之”地扼杀我大天朝这么多数学家和科学家梦想的?为了引出背后这层关系,我们需要先介绍一个概念——共轭先验(Conjugate Prior)。
- 在贝叶斯统计理论中,如果某个随机变量Θ的后验概率 p(θ|x)和其先验概率p(θ)属于同一个分布簇的,那么称p(θ|x)和p(θ)为共轭分布,同时,也称p(θ)为似然函数p(x|θ)的共轭先验。
- 事情还没有发生,要求这件事情发生的可能性的大小,是先验概率。事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小,是后验概率。
分布函数的定义为
因此F函数始终是非降的, 右连续的, 且 limx→∞F(x)=1
离散随机变量的密度函数为:
伯努利分布就是对单次抛硬币的建模,X~Bernoulli(p)的密度函数是 f(x)=px(1−p)1−x ,随机变量只能取{0,1}。对于所有的密度函数都要归一化!而伯努利分布天然是归一化。因此归一化参数就是1.
多次伯努利实验即为二项分布,其密度函数为
概率密度函数
把二项分布再推广,就得到多项分布。二项分布的典型例子是扔硬币,硬币正面向上的概率为p,重复扔n次硬币,k次为下面的概率即为一个二项分布。二项分布即为多重伯努利实验。
不同于扔硬币,多项分布类似于扔骰子。假设萤火虫对食物的喜欢程序,我们给三种选择:花粉,蚜虫,面团。假设20%的萤火虫喜欢花粉,35%的萤火虫喜欢蚜虫,45%的萤火虫喜欢面团。我们对30只萤火虫做实验,发现8只喜欢花粉,10只喜欢蚜虫,12只喜欢面团,这件事的概率为
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 ,因此就像选择伯努利分布的共轭先验贝塔函数时那样,狄利克雷分布的函数形式应该如下: