狄利克雷过程(dirichlet process )是目前变参数学习(non parameter)非常流行的一个理论,很多的工作都是基于这个理论来进行的,如HDP(hierarchical dirichlet process)。
下面我们谈谈dirichlet process的五种角度来理解它。
第一种:原始定义:假设存在在度量空间 Θ 上的分布 H 和一个参数 α ,如果对于度量空间 Θ 的任意一个可数划分(可以是有限或者无限的) A1,A2,...,An ,都有下列式子成立:
(G(A1),G(A2),...,G(An))∼Dir(αH(A1),αH(A2),...,αH(An)) , 这里Dir是dirichlet 分布,
我们称G是满足Dirichlet process的。
这个定义是1973年Ferguson最早提出的定义。在有了这个定义之后,我们怎么去构造一个dirichlet process(DP)出来呢?或者如果我们想从这个DP中抽取出一些样本,怎么抽呢?由于这个原因,我们有了下面三种构造性定义或者解释: 中国餐馆过程(CRP),polya urn ,stick-breaking。
第二种:中国餐馆过程(CRP)
假设一个中国餐馆有无限的桌子,第一个顾客到来之后坐在第一张桌子上。第二个顾客来到可以选择坐在第一张桌子上,也可以选择坐在一张新的桌子上,假设第 n+1 个顾客到来的时候,已经有 k 张桌子上有顾客了,分别坐了 n1,n2,...,nk 个顾客,那么第 n+1 个顾客可以以概率为 ni/(α+n) 坐在第 i 张桌子上, ni 为第 i 张桌子上的顾客数;同时有概率为 α/(α+n) 选取一张新的桌子坐下。那么在 n 个顾客坐定之后,很显然CRP把这 n 个顾客分为了 K 个堆,即 K 个clusters,可以证明CRP就是一个DP。
注意这里有一个限制,每张桌子上只能有同一个dish,即一桌人喜欢吃同一道菜。
第三种:Polya urn模型
假设我们有一个缸,里面没有球,现在我们从一个分布H中选取一种颜色,然后把这种颜色涂在一个球上放入缸中;然后我们要么从缸中抽取一个球出来,然后再放入两个和这个球同种颜色的球进入缸中;要么就从分布H中选取一个颜色,然后把这种颜色涂在一个球上放入缸中。从缸中抽取某种颜色的一个球的概率是 ni/(α+n) , ni 是这种颜色的球的个数,n是总的球个数;不从缸中抽取而放入一种颜色的球的概率是 α/(α+n) 。很明显,polya urn模型和CRP有一一对应的关系,颜色对应一个桌子,坐新桌子对应于不从缸中选取而是从H中选取一种颜色涂球放入缸中。
第四种:stick-breaking模型
假设有一个长度为1的线段,我们从中选取 π1 长出来,剩下的部分再选取 π2 出来,循环下去, πn ,无穷下去,这个有点类似我们古代的一句话:
“一尺之踵,日取其半,万世不竭”,它们满足 ∑πi=1
对每个 πi ,我们都从分布H中选取一个 θi ,然后从 F(θi) 中选取出一个 xi 出来。这里的 θi 就对应一个cluster,类似地,我们可以看到数据自然地被分为了各个堆,可以证明这个模型仍然是一个DP。
第五种:无限混合模型
从stick-breaking模型我们看出,我们可以把DP看着是一个无限混合模型,即
G∼∑inf1πi∗F(θi) ,其中 ∑πi=1 。 πi 就是混合模型中每个子模型的权重。
目前应用最多的还是从第五种角度来看待问题,即把DP看着是一个无限混合模型,其中值得注意的是:
1)虽然DP是一个无限混合模型,但是可以证明,随着数据的增多,模型的个数是呈现log 增加的,即模型的个数的增长是比数据的增长要缓慢得多的;
2)DP是有一个马太效应在里面的,即越富裕的人越来越富裕,我们可以从第二和第三种解释中看到,每个桌子或者颜色已经有的数据越多,那么下一次被选中的概率越大,因为是与在桌子上的个数成正比的。
DP是一个复杂的随机过程,需要进一步深入理解,下篇将会继续这个话题。
转载:http://blog.csdn.net/xianlingmao/article/details/7342837
Dirichlet distribution,对于做主题模型(topic model)研究特别的重要,因为很多模型之中都需要它作为先验分布。
本来这个分布Wikipedia和大多数的教科书已经讲得非常清楚,没有必要在这里多介绍,但是最近在理解Dirichlet process过程中,发现从另外一个角度来理解Dirichlet Distribution,对于理解Dirichlet Process有一定的帮助,特此介绍如下。
传统的Dirichlet Distribution的形式:
P(x1,x2,...,xk|α1,α2,...,αk)∝∏k1(xi)(αi−1)
Dirichlet Distribution是分布的分布,其中 ∑xi=1 。
另外一种形式:
P(x1,x2,...,xk|α,M)∝∏k1(xi)(α∗Mi−1)
其中, ∑Mi=1 。从而M可以看做一个分布。可以记为: P∼Dir(α,M)
下面我们来看看Dirichlet process的定义:
对于一个空间,已经有一个分布M,和一个正实数 α ,如果对于该空间的任意可数划分 A1,A2,...,An ,都有
(G(A1),G(A2),...,G(An))∼Dir(α∗M(A1),α∗M(A2),...,α∗M(An))=Dir(α,M)
其中,Dir是一个dirichlet distribution, M是[M(A1), M(A2), ..., M(An)]的概率向量。我们就称G是一个Dirichlet Process。
注意观察这个定义与Dirichlet Distribution的第二种形式的异同,Dirichlet distribution描述了空间上的一种划分情况下的分布,而Dirichlet Process描述了整个空间上的所有划分的情况下的分布情况,M是人们对于分布的主观看法,而 α 就是描述如果抽样的话,会多好地接近分布M。即M是Base Distribution, α 是精度。
这样,我们就可以把Dirichlet Distribution和Dirichlet process更加统一地来看待,同时加深我们对于它们的理解。