狄利克雷过程(dirichlet process )是目前变参数学习(non parameter)非常流行的一个理论。
随机过程可以看做一个可数无穷多的随机向量的集合(astochastic process is an indexed collection of random variables,where the index set can be infinite)
dirchlet process由两个参数(/alpha, 基本分布H)定义,生成无限数量的随机变量,
这些随机变量的联合分布是dirchlet distribution(有限维)在无限维上的推广,同dir和beta分布一样,可以用作无限维multinomial的共轭先验
(注意,虽然Dirichlet process和无限维multinomial理论上是“无限维”,但是在有限个可见训练/测试样本中,其表现为有限维,
也就是说,我们不必预先指定类别数量K,而是,当新类别的样本出现时,将自动被打上新标签,这是non parametric的基础
另有一种算法叫Bayesian finite mixture model,也能从样本中推断出类别数,但是这模型的类别数有一个预设上界K,而DPMM(Dirichlet Process mixture model)的类别数没有上界)
1.Dirichlet Process 的定义
假设存在在度量空间\Theta上的分布H,和一个参数\alpha,
G是在度量空间\Theta上的一个分布(意思是对任意theta的子集A,G(A)是一个函数,使得0<G(A)<=1, 且具备可加性,且G(\theta)=1)
如果对于度量空间\Theta的任意一个可数划分(可以是有限或者无限的)T1, T2,...,Tn,都有下列式子成立:
这里Dir是dirichlet 分布,我们称G是满足Dirichlet process的。H也成为base distribution。
举个简单的例子,
在CRP中,Ti可以看成是第i张桌子,G(Ti)就是第i张桌子的概率
(G(1),G(2),...,G(K))~Dirichlet(alpha/K,alpha/K,....alpha/K),
在K趋于无穷大时候的情况
以下为DP的性质。
这个定义是1973年Ferguson最早提出的,比较晦涩。有三种构造性方法:Polya urm model,chinese restaurant proces,Stick-breaking construction
基本的构造是这样:
2. Polya urm model
假设存在可数无限多种颜色的球,一个空的urn
1. 第一次,按照H分布选定一个颜色,取出对应颜色的球放入urn中
2. 后续,有两种选球法,按其中之一选定一个颜色,取出对应颜色的一个球放入urn中
i)按均匀分布从urn中取出一个球,按该球的颜色取
ii)按H分布选定一个颜色
则有
也就是
其中Xi表示第i个摸出来的球的颜色;
在chinese restaurant process中,Xi表示第i个客人选中的桌子,
可以看出,polya urn model和chinese restaurant process都满足exchangeable性质,因此可以表示为上面的(1)式。
此时随机元素G就是dirichlet process。
(但是我不知道(6)和(4)如何等价???在http://www.iro.umontreal.ca/~lisa/seminaires/31-10-2006.pdf看到一个解释是在K->无穷时,
3.Stick-breaking construction
可以看出,G的生成方法是,先按照H分布抽取出无限样本点,然后/pai_k重新赋权。这是一个取值无限的离散分布(取值点数量是可数无穷,而如果H是实数上的分布,取值点数量是阿列夫1哦),每次抽取,可以抽取出不同的/beta,H,生成不同的G。
可以证明G是dirichlet process。(stick-break 来源是/pai数列,这有点象每次从长度为1 的木棍上折下一定的长度,E(/beta)=1/(1+/alpha),当/alpha较小,则开始几个木棍会很长,也就是说,如果用它作为聚类的prior,将会倾向于分成更少更大的类)
Stick-breaking 和之前CRP和urn的关系是
Imagine running either the Chinese Restaurant Process or the Polya Urn Model without stop. For each group