狄利克莱过程模型(一):非参数贝叶斯无限混合模型和Dirichlet过程

[作者按] 这篇文章是根据edwin Chen的博客 http://blog.echen.me/2012/03/20/infinite-mixture-models-with-nonparametric-bayes-and-the-dirichlet-process/

和剑桥大学的一个ppt,http://mlg.eng.cam.ac.uk/zoubin/talks/uai05tutorial-b.pdf,还有fonnes beck在Bios366的讲义,http://nbviewer.ipython.org/github/fonnesbeck/Bios366/blob/master/notebooks/Section5_2-Dirichlet-Processes.ipynb,以及其他材料汇集整理而成。


        当前,我们进行聚类使用的方法比如kmeans/Gaussian Mixture modeling,都需要事先指定好要聚多少类在这里我们向大家介绍一种不需要指定聚多少类的方法,这种方法可以根据实际情况进行聚类,当往数据集中添加新数据时,产生的聚类数量可能会增多。这种方法就是nonparametrics bayes方法:非参数贝叶斯方法。

A generative story

       这个用于从任何数据集中需要聚类的生成模型是这样工作的:我们首先设想有无数潜在群体,每个群体用一组参数来描述,举例来说,一个组可以符合一个参数为mui和lambdai的高斯分布,而这些组的每对参数都来自基本分布G0.数据集中的数据是这样生成的:

       1.选择一个聚簇

       2.从这个聚簇中进行抽样,产生一个数据点

       举个例子,我们问10个朋友,他们昨天吃了多少种披萨、萨拉和米饭,我们得到的多个小组可能是这个样子:

  • A Gaussian centered at (pizza = 5000, salad = 100, rice = 500) (i.e., a pizza lovers group).
  • A Gaussian centered at (pizza = 100, salad = 3000, rice = 1000) (maybe a vegan group).
  • A Gaussian centered at (pizza = 100, salad = 100, rice = 10000) (definitely Asian).

        当Alice早上醒来决定吃些东西的时候,她会这么想,我今天很想吃pizza,于是她从pizza的高斯分布中进行抽样,然后我们的大问题就是:我们该怎么样把我们的朋友们分配到一个群组中去?

        一般来讲,关于这个问题,我们应用dirichlet过程模型来解决,说到dirichlet过程,首先得讲dirichlet分布长什么样子,它的期望是什么方差是什么?

      这就是狄利克莱分布的长相 :


      它的期望公式是:


      dirichlet分布有一个很可爱的性质,如下:

狄利克莱过程模型(一):非参数贝叶斯无限混合模型和Dirichlet过程_第1张图片

      百度出不少讲dirichlet分布的帖子,说它是分布上的分布,不过我一点都不明白,这种beta分布的一般化形式,怎么就成了分布上的分布了?后来找到肖智博的PPT看了下,他也是借用nigel Crook的slide,在其中直观地描述了下dirichlet分布到底是个什么东东:

     1.对于包含n个随机变量的多项式分布的全体,实际上就是在一个n维超平面:

狄利克莱过程模型(一):非参数贝叶斯无限混合模型和Dirichlet过程_第2张图片


而dirichlet分布,也即multinomial的共轭先验分布,实际描述的是取这个超平面上哪个multinomial可能性有多大的分布函数,它们受到dirichlet的参数值的控制。

狄利克莱过程模型(一):非参数贝叶斯无限混合模型和Dirichlet过程_第3张图片

      dirichlet process 分布描述的也是分布上的分布。

      关于dirichlet process:


      它的中心是基线概率测度P0,alpha暂且称之为分散系数,用于控制得到聚簇数量的多少,alpha越大,越分散,得到的聚簇数量越多。Dirichlet process 分布(下文简称DPP)的期望:


     方差是:

 

        本质上讲,它是一个无限锐减狄氏分布,对于每个样本子集B,其边缘概率是一个beta分布:


        对于DPP,我们有三个经典的类比

        1.中国餐馆过程(chinese resteraut process)

        2.波利亚罐子模型(polya urn model)

        3.掰棍子过程(stick-breaking process)

        下面一篇博文依次进行讲解。

       

你可能感兴趣的:(狄利克莱过程模型(一):非参数贝叶斯无限混合模型和Dirichlet过程)