先说说Dirichlet Process
要了解DP,推荐两篇文章Redford Neal的Markov Chain Sampling Methods for Dirichlet Process Mixture Models 和 Xiaodong Yu的 Gibbs Sampling Methods for Dirichlet Process Mixture Model: Technical Details. 第二篇文章是第一篇文章的解释,Neal的文章写的很好,但是对于新手来说跨度很大。Xiaodong Yu的这篇文章解释的很好。
狄利克雷过程(DP)是非参数贝叶斯的基础。基本上可以理解为一个离散化一个分布的过程。一个连续的分布被放到这个DP里面出来的就是一个离散的分布。同样一个离散的分布被放倒这个DP后就会更加离散。
离散化一个分布的好处就是可以用来聚类。一个连续性的分布不可能有两个点的概率是完全一样的,离散化之后就可以使两个或多个点有同样的概率,这样就可以把这几个点放到一起作为一个类。
DP的参数
DP可以写为:
里面有两个参数
G0 叫做基础测度,就是刚才说的待离散化的分布。
α0 叫Concentration parameter, 用来表示这个离散化过程有多大。
中国餐馆问题
问题描述是这样的,一个人去选一个餐馆吃饭,按照葛优的说法就是得选人多的餐馆。但是有时候又想尝试些新的口味,还可以选一个新的没人的餐馆。这个就是一个DP的问题。选择一个已经有人的餐馆就是刚才的离散化问题中的聚类问题,选择新的餐馆的时候是根据已有人数的大小来确定自己的选择。但是如果一开始没有人那就没法选择了,所以一开始的时候是根据基础测度 G0 的分布来选择一个新的餐馆。
详细解释参见这两篇文章。
最终数学化的表示是:
去一个新餐馆的概率:
去一个已经有人的参观的概率:
nk 是第k个餐馆的人数, n 是总人数。
添加概率分布
这里面还有个问题就是Stick breaking来构建一个DP的过程,这个可以看文章,这里要提一下
根据SB构建的DP有下面的形式: