Dirichlet Process
标签(空格分隔): LDA DMM DP Dirichlet Dirichlet-Process
作者: 王琳(大连理工大学信息检索研究室)
写在前头
- 对于非参数化的机器学习模型,我之前研究的并不多。通过这几天的学习,简单总结一下我所了解到的非参数化的模型。
- 鉴于非参数化的学习模型涉及大量的概率计算,晦涩难懂,然而在这篇总结材料中,我并不细推每个公式,而是以一种感性的方式理解每个模型。有的时候,不,是所有时候,感性的认识比理解其中的公式推导更加深刻有效。
- 如果想了解具体某个模型原理,请大家下载相应论文。相信你如果仔细阅读完本教程,会让你在阅读相关论文时如虎添翼!!!
- 最后,感谢邵华师弟与我的学术交流,对我了解DP有很大帮助。
1 预备知识
1.1 Beta 分布函数
- Beta分布函数是一种定义在实数区间[0,1]的特殊函数。该分布包含两个参数:a,b,具体分布公式如下:
Beta(x;a,b)=Γ(a+b)Γ(a)Γ(b)xa−1(1−x)b−1(1.1)- 其中 Γ(a) 为gamma函数,是定义在实数区间上的阶乘运算,参数 a ,
b 又称为伪计数变量,分别代表二项分布中成功与失败的次数。类似于beta函数这类值域为[0,1]的函数又称概率度量函数(probability measure),可以作为其他分布参数的先验分布。如beta分布可以作为二项分布中参数 p 的先验分布。二项分布公式为:
B(k;n,p)=(nk)pk(1−p)n−k(1.2)
不同的 Beta(a,b) 函数
1.2 Dirichlet 分布函数
- 与Beta分布相同,Dirichlet分布也是定义在实数区间[0,1]的概率度量函数,只是Dirichlet分布的值域是Beta分布拓展到高维的情形,其中的参数为一个 K 维向量
α ,分布公式如下:
Dir(x⃗ ;α⃗ )=Γ(∑Ki=1x⃗ i)∏Ki=1Γ(x⃗ i)∏i=1Kx⃗ α⃗ i−1i(1.3)- Dirichlet分布可以作为多项式分布中参数向量 p⃗ 的先验分布,多项式分布公式为:
Multi(k⃗ ;n,p⃗ )=(nk⃗ )∏i=1Kp⃗ k⃗ ii(1.4)
不同的 Dirichlet( α⃗ ) 函数
1.3 共轭关系
- 通过观察二项分布与Beta分布的公式,不难发现其中有很多相似的特点,下面我们来慢慢挖掘二项分布于beta分布的关系。在Bayes理论中,认为二项分布中的参数 p 并不是固定的一个值,而是一个未知的参数。因此,在求某个伯努利事件的时候,不能仅仅利用一个固定的概率值
p 来计算,需要枚举所有可能取得的概率值。即:
P(x;n,a,b)=∫pB(x;n,p)Beta(p;a,b)dp(1.5)- 式1.5表示的是: p 并不只是在取某一个值的时候才能发生事件
x ,需要枚举所有可能发生事件 x 时的p ,累和所有可能的 p 的概率P(p) 及对应发生事件 x 时的概率的乘积。在现实世界中,相比P(x) ,我们往往更关心 P(p|x) ,因为我们并不关心已经发生的事件的概率,而是关心在已经发生事实的前提下,再发生某事件的概率。根据式子1.5及贝叶斯公式我们可以很容易得到:
P(p|x;n,a,b)=B(x;n,p)Beta(p;a,b)∫p′B(x;n,p′)Beta(p′;a,b)dp′(1.6)- 看到式子1.6,你可能会感到厌倦,因为貌似这个式子特别复杂。但是如果你继续阅读本讲义,你将会非常喜欢这个式子,因为其超级简单。这个式子表示的意思是:用某个特定的 p 计算事件
x 发生的概率(分子)除以所有可能的 p 发生事x 的累和(分母),相信你读到这里会感觉即使自己不懂贝叶斯公式也应该觉得这个式子是合理的。如果二项分布与Beta分布没有满足共轭关系,则式子1.6将会很难继续化简。但幸运的是二项分布与Bbeta分布相似的表达形式我们可以很快推出以下公式:
P(p|x;n,a,b)=Beta(p;a+x,b+n−x)(1.7)- 其中 x 表示的是某个事件成功地次数,
n−x 表示的是某个事件失败的次数。式子1.7表示的意思是:当参数 p 先验概率满足Beta分布的时候,并且发生了一系列伯努利事件,则p 的后验概率依旧满足Beta分布,变化的只是伪计数变量。不仅仅Beta分布与二项分布满足这样神奇的关系,dirichlet分布与多项式分布也满足这样的关系,我们称这类关系为两个分布的共轭关系。- 这类关系可以描述为:
先验分布(Beta/Dir)+数据事实(B/Multi)=后验分布(Beta/Dir)
1.4 数学期望
- 虽然,我们假定二项分布中的参数 p 并不是固定,但是人们总希望其最有可能的值是多少。Beta分布与Dirichlet分布的期望如下:
E[Beta(a,b)]=aa+b(1.8)
E[Dir(α⃗ )]=α⃗ ∑Ki=1αi(1.9)- 我们并不打算推倒这个式子,有兴趣可以参考《LDA数学八卦》,我们这里想告诉大家的是:式子1.8与1.9就是将伪计数当做真实事件计数时的最大似然估计。也就是最简单的计数方法:某个事件发生的次数除以所有事件发生的总次数。
1.5 一个例子
这个例子非常重要,它是我们之后学习LDA模型和DP模型的基础,建议大家仔细阅读。
- 假设一篇文档 D 由
n 个不同单词组成,并且文档产生某个单词的概率符合Dirichlet分布 D∼Dirichlet(α⃗ )