转:DP和HDP

Dirichlet Process and Hierarchical Dirichlet Process

原文:http://hi.baidu.com/zentopus/item/46a622f5ef13e4c5a835a28e

 

Dirichlet Process and Hierarchical Dirichlet Process

       在这篇文章里,我会初步地介绍Dirichlet Process以及Hierarchical Dirichlet Process,不过仅仅局限于模型本身,并不涉及其inference和具体的application。

       首先,我将简单地介绍Dirichlet分布。Dirichlet分布可以看做是分布之上的分布。其定义为对于一个K维的probability simplex:


   

       我们说这组是Dirichlet distributed, 参数为如果其满足:
   

 

       如何理解这个定义呢?我们可以举个例子:假设我们有一个从魔术店买来的骰子,我们不知道这是不是一个和普通骰子一样均匀的骰子,即每面出现的概率都是1/6。那么我们现在就可以用一个分布来描述我们对于这个骰子的uncertainty,也就是说,我们想知道这个骰子是一个公平的骰子的概率是多少。那么这个分布,就可以是一个Dirichlet Distribution,只要我们可以将这个分布描述为上述的数学形式。我们再看一眼这个例子,投掷一次骰子,必然会有一面出现(这是一个好骰子),那么六面出现的概率总和必然为1,换句话说,我们可以用这样一个分布来描述骰子出现的概率。而后我们又想知道,这样一个分布出现的概率是多少,那么我们就可以用Dirichlet分布来描述它。从而我们可以说,Dirichlet分布是一个分布之上的分布。
    

Dirichlet Process

    接下来,我们将从Dirichlet分布过渡到Dirichlet Process。

    首先,我们先来看一下probability measure的概念:我们定义G为可度量空间X上的一个probability measure,如果其满足:

       

       我们还是从刚才的骰子的例子开始,我们现在认为整个骰子所描述的事件空间为一个可度量的空间。一个骰子投掷出去之后,六面必然有一面出现,那么我们可以自然地将整个空间分成为6个部分,我们称每一个部分为一个划分。那么针对这种六个划分的情况,我们可以有一个对应于这个划分的Dirichlet分布。现在我们想做一些调整,我们将骰子投掷出去的结果分成了2种,一种是大{4,5,6},另外是小,对应于{1,2,3}。那么我们可以认为整个空间,被分割成为了2个划分,那么相应的,我们可以对这样一种划分有一个对应的Dirichlet分布。现在我们将其进行一个一般性的描述。假设我们现在有一个可度量的空间X,其上的任意一个有限(finite)划分(partition)满足:

 


       我们说一个probability measure G服从都Dirichlet Process,如果其满足:对于这个可度量空间上的任意一个有限划分,以及一个实数一个probability measure G0:



       这里G0称作base measure,有些类似于这个DP的均值(mean),称作Strength parameter, 有些类似于这个DP的inverse-variance,在描述一个DP的时候,我们写作:


       接下来,我将简单介绍一下其对应的几种常见的表现形式

The Chinese Restaurant Process

       把Chinese Restaurant Process(CRP)放在最前,是我认为这是最容易理解的一种表现形式。其对应的并不是G本身,而是对应一个从G进行sampling的过程。

       假设现在有一家中餐馆,里面有无限多的桌子,当然,不是所有桌子上都坐了人。首先进来第一个顾客,第一个顾客只能坐在一号桌子。他坐下之后点了一个菜(这个菜的分量足够大)。然后进来了第二个顾客,他看了一眼一号桌的菜,如果他喜欢吃的话,就坐到一号桌去,如果不喜欢的话,就另外再开一桌,自己点菜。假设这个过程一直下去,当第i个顾客进店的时候,假设这时候已经有了k桌菜,这个顾客巡视了一圈,然后寻找自己喜欢的菜。我们认为他是一个具有大众口味的人,他选择某一桌的概率,完全正比于这桌上坐了多少个顾客。如果他实在没有找到喜欢的菜,他也可以新开一桌,新开一桌的概率正比于某个初始的数值。

       现在我们数学一点来看待这个过程:假设每一个sample,对应于一个顾客。那么我们可以认为第i个sample选择桌子k的概率为的概率,代表了这桌的菜。这个概率正比于已经坐在这桌的顾客数量,而这个顾客开一个新桌的概率则正比于初始化的参数.

       从刚才的描述中,我们已经看出了Dirichlet Process所获得的样本是离散的,并且其抽样过程中体现出了一种聚类的特性。而这些特性不受Base Measure是离散或者连续的影响。

       出了CRP之外,还有一个非常类似的方式,称之为Polya urn scheme(Blackwell 1973)。这个过程和CRP非常相似。假设我们现在有一组samples:


       这组样本是i.i.d的,并且其满足:


       我们可以这样理解抽样的过程:我们现在口袋里有很多很多球,都是不同颜色的。我们从中取出一个球,鉴别了它的颜色,然后拿一个和这个球一样颜色的球和这个球一块儿放回去。如此往复,得到了我们现有的一组样本。

       我们和CRP统一一下,则这个过程可以表现为:



       如果G的sample可以满足上述的分布,我们就认为从G符合DP。


Stick-breaking Construction

       除了CRP之外,我们还可以通过别的方式来构造一个DP,这就是Stick-breaking construction。整个构造过程如下:



       我们观察上面的这个过程,可以发现sample的过程,就相当于CRP中给每个桌子赋予一个值,而获取的过程,则是确定每个桌子上的顾客数量。

       我们注意到:


       所以,我们可以将解释为一个random probability measure。并且,如果是以这样的方式产生的,我们可以将其写为:


       GEM代表三个人名,分别为:Griffith,Engen和McCloskey


Dirichlet Process Mixture

       另一个理解DP的角度,就是从一个混合模型来看。假设在一个混合模型中,我们不知道component的明确数量,这时候我们应该怎么处理呢?常规的方法是,重复做多次试验,每次试验中假设不同的数量的component,而后利用AIC,BIC等判别方式来进行选择。但是这样的方式又耗时又费力,有没有轻松一些的方式呢?DP mixture model给了我们一个新的选择,其关键点在于,认为空间中是有无限多的mixtrue component的,但是根据我们的数据,只有其中有限个的component被激活了,并且,这些激活的component的proportion满足一个Dirichlet Distribution。下面我们就从一个有限的mixture model出发,来推广到一个DP mixtrue model。

       我们假设这个mixtrue model有L个component,我们用来表示每个component的proportion,并且,我们给这个proportion加上一个对称的Dirichlet先验,则我们有:


       我们用z代表每个sample的component assignment,即选中了哪一个component,用代表每个component的参数,而这组参数符合一个分布G0,则我们有:



       我们此时可以得到一个分布


       而如果我们将L推向infinite,则这个模型便成为了DP mixture, 如同下图



       我们再完整地看一次DP mixture的生成过程:



Why Dirichlet Process

       我们用了这么复杂的数学手段,搞出来一个DP,是为什么呢?我们观察DP,发现其有一个非常重要的特性,即在抽样的过程中,可以获取到值相等的2个样本。这有什么重要意义呢?这意味着这一过程本身在重复抽样的过程中,就完成了一个聚类的过程。并且我们注意到,DP对于其Base Measure并无要求,也就是说其Base Measure可以为连续的分布。而我们知道,对于一个连续的分布,其抽样的过程中,两个样本完全相同的概率为绝对的0,而DP则可以在这个分布的基础上,将样本离散化,使得2个样本的值相同的概率不为0。

 

Hierarchical Dirichlet Process
       

       我们发现DP具有很好的聚类的特性,并且我们也不用事先设定好类别的数量,使得整个过程变得更为智能。
 
       那么我们现在考虑另一个问题,假设我们已经有了很多数据,并且数据自身是按照组别出现的,每一组数据都可以看做一个mixture model。除了组别内部是mixture model之外,我们还希望这些mixture component是可以share的。我们换一个角度来看这个问题:假设我们现在有一个巨大的空间,整个空间中包含了无数的mixture component,我们每次选择其中的几个,然后利用这几个component生成一组数据。我们把一组一组的数据放在一起,就得到了我们现在所拥有的数据。我们现在希望可以用mixture model来描述这样一种数据,DP可以帮上什么忙么?
 
       我们注意到,在每一组数据中,我们需要进行一次clustering,这意味着我们可以选择DP来描述某一组数据。但是我们又希望在整个数据中share component,一个很原始的原始的想法,就是限制DP的Base Measure为离散的,从而让我们有固定的component可以进行选择。但是这样就使得问题失去了一般性,并且我们还需要面对一个问题,如何选择这样一个Base Measure以及其component数量。这时候,我们发现这个问题其实和针对每一个组内的问题是一致的,那么我们很自然地就想到了,在这一层上我们再利用一次DP来描述,从而使得我们可以克服这些麻烦的问题。那么在DP之上再引入一层DP的模型,就是Hierarchical Dirichlet Process(HDP)。其图模型可以参看下图



       现在我们从生成模型的角度,来看一下这整个的过程:



Chinese Restaurant Franchise

       和DP一样,我们也可以用中餐馆这样一个描述方式来加强对于这个问题的理解。

       这次,我们不是有一个中餐馆,我们有一家中餐连锁店,每一家都有一样的一份菜单。对于第j家餐馆,我们考虑其第i个顾客。和之前一样,这个顾客走进这家餐馆之后,选择坐在已有的一桌,或者是新开辟一桌。不过这里有一点特别的是,我们允许不同的餐馆中的不同的桌子点相同的菜,因为这些顾客是从同一份菜单里点菜的,当然,每桌还是只有一个菜。那么从一个餐馆的层面来说,我们有:



       那么,在选择每桌的菜的层面上,我们有:



       我们注意到,在整个过程中,各种菜是可以在组间和组内共享的,这是HDP的关键特性。

Stick-breaking Construction

       现在,我们再从Stick-breaking Construction的角度来看一看HDP。

       从图中我们可以看出,G0是符合DP的,根据之前我们对于DP的描述,我们有:


       其中:


       既然G0有support,那么自然的,以G0为Base Measure的Gj也有相同的support,则:


       其中,满足:


       在给定的情况下,之间是相互独立的。那么之间的关系又是如何呢?

       我们知道,根据DP的定义,对于可度量空间上的任意一种有限划分{A1,A2,...,Ar},我们有:


       那么,这也就意味着:



       从这个式子中,我们就不难看出:


       而,我们则认为其均为probability measure。

       那么对于图中所描述的混合模型,我们的完整的生成模型为:


       其中



Discussion

       相同的问题,我们为什么要使用HDP?最基本的理由是,如果我们遇到这样的数据集的时候,即一个component会不断变化的mixture model,并且在subgroup中,component是可以共享的这样一个数据集,我们就可以利用HDP来进行建模。实际中,HDP也已经被广泛的使用,应用包括topic modeling,cognitive science等等。

       HDP本身是Dependent Dirichlet Process(DDP)的一种具体的形式,它能够有效地描述这种垂直的层级关系。但是HDP也有局限性,其并不能描述即时变化,不能够描述component的生成与消亡。而在解决这个问题上,目前我们可以依靠Poisson Process Based Dependent Dirichlet Process来给出一个方案,这其中利用了Poisson Process,Gamma Process以及DP的内在关系,具体可以看Dahua Lin的NIPS 2010文章。有时间的话,我也会把对那个模型做一个简单的描述。

       HDP可以利用Variational Inference和Gibbs Sampling来进行"求解",Wang Chong也提出了一种Online的算法,其中利用了一种不同的Stick-breaking的构造方式,来使得上下两层关系之间进行解耦,从而能够进行Online的求解过程。

转载于:https://www.cnblogs.com/lifegoesonitself/p/3423363.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

摩尔定律的三种走向

来源:科学网中兴事件以来,中国集成电路行业的发展受到全国人民的关注。许多人群情激奋,恨不得马上自力更生,赶上先进。也有一些人认为现在的世界经济是一个综合体,一个国家不可能样样领先,需要时日。正好&a…

李航《统计学习方法》笔记

虽然书名是统计学习,但是却是机器学习领域中和重要的一本参考书。当前的机器学习中机器指计算机,但是所运用的方法和知识是基于数据(对象)的统计和概率知识,建立一个模型,从而对未来的数据进行预测和分析&a…

【2018第五届世界互联网大会】世界互联网领先科技成果发布:带你看看这15项“黑科技”...

世界互联网领先科技成果发布现场。来源:央视网11月7日,第五届世界互联网大会“世界互联网领先科技成果发布活动”在浙江乌镇举行。这是世界互联网大会第三次面向全球发布领先科技成果。发布活动由中国工程院院士、中国互联网协会理事长邬贺铨主持&#x…

利用caffe的python接口实现DeepImageSynthesis实例

在之前实现faster rcnn的博客中,先是配置了caffe的python接口,但是在验证的时候用DeepTexture的实例没有成功。改用pycharm而不是jupyter notebook再试一试,毕竟在IDE中更好调试。 新建工程,选择anaconda2作为解释器,因…

深度:语音技术革命正在改变人类的交流方式

来源:资本实验室语言是我们日常交流的主要方式,可以让我们快速了解对方的意图,并做出适当的反应。但对很多语言障碍者而言,说话这一看似简单的行为依旧是难以想象的困难。语言是件极其复杂的事情,不仅仅是文字表面上的…

李航《统计学习方法》---感知机

这一章就讲了感知机。我觉得是深受工业革命的影响,把一些可以实现功能的基本单元都喜欢叫做什么机,这里的感知机,还有后来的以感知机为基础的支持向量机。直接看定义,看本质,实际上,感知机是一种线性分类模…

5G 对无线通讯芯片产业链的影响

来源:乐晴智库精选▌无线通信芯片概要:未来五年增速放缓,射频前端成为主要驱动力在智能手机普及的带动下,2012-2017五年无线通信芯片实现9.7%的复合增长率,根据iHS的数据,2017年市场规模达到1,322亿美金,占…

图像极坐标变换的研究

做图像配准的时候,发现图像进行旋转的情况下的配准有一些特殊。于是想到可以用极坐标进行配准。查了一下资料,发现大家用的更多的是对数极坐标Log Polar。 笛卡尔坐标系和极坐标系 先来说一下我们常用的笛卡尔坐标。X轴水平向右是正方向,y轴垂…

刚刚、Gartner发布物联网技术十大战略和趋势

来源:网络大数据Gartner的研究副总裁尼克•琼斯(Nick Jones)说:“物联网将在未来十年继续为数字化业务创新带来新的机遇,而许多新机遇有赖于新的或经过改进的技术。洞察创新物联网趋势的CIO们有机会领导本企业的数字化创新。”此外&#xff0…

图像的旋转和尺度缩放在对数极坐标系下的研究

首先来看一张特殊的同心圆图像及其极坐标变换:这是我自己在opencv下用cvLogPolar函数做的实验:极坐标原点选择在同心圆圆心时,同一个圆上的点到圆心的距离相等,所以映射在极坐标中应该是一组垂直于极轴的平行线。在自己的实验中因…

李航《统计学习方法》-----支持向量机

书中第七章才是支持向量机SVM,但在SVM与感知机有相似的地方,看了感知机的知识之后趁热先看看SVM。 首先回顾一下感知机。感知机的模型是线性分类模型,将两种类别标记为正负1,将新的样本输入线性函数,再将线性函数代入符…

乌镇互联网大会发布15项世界领先科技成果

来源:中央广电总台央视新闻客户端11月7日下午,第五届世界互联网大会“世界互联网领先科技成果发布活动”在乌镇互联网国际会展中心举行。大会共现场发布了15项世界互联网领域领先的“黑科技”,引得观众阵阵惊叹。15项世界互联网领先科技成果&…

OpenCV中的傅里叶的门道

接触到傅里叶-梅林算法,需要用到傅里叶变换,于是去查了一下OpenCV中的实现方法,没想到习以为常的傅里叶变换之中的门道还不少。 //傅里叶变换https://blog.csdn.net/keith_bb/article/details/53389819Mat I imread("Lena.jpg", I…

Science:人类迎来目前最为全面的癌症染色质可及性图谱

来源:吴晓波频道摘要:肿瘤在世界范围内导致人类死亡的首要原因之一,尤其是随着医疗水平的发展,人类的寿命的不断延长,癌症逐渐成为威胁人类健康的首要因素。肿瘤在世界范围内导致人类死亡的首要原因之一,尤…

傅里叶变换频谱的可视化保存

在上一篇关于傅里叶变换的博客中,知道了imshow的一个小trick:对normalize得到的0~1之间的浮点数构成的矩阵会进行放大255的操作,得到可视化的灰度图。即便是在python中也是如此操作的,只不过python中的函数封装得更加严密&#xf…

她取代马斯克成特斯拉新董事长 究竟什么来头?

来源:智车科技摘要:就如乔布斯之于苹果,对很多人来说,马斯克对特斯拉而言也有非凡的意义。甚至可以说,特斯拉的品牌吸引力很大程度上来自于“钢铁侠”本人。但由于当初任性发布“私有化”消息,被美国证交会…

十二天深入理解计算机系统(一)

计算机系统漫游 1 信息就是位上下文 系统中所有的信息都是由一串位表示的,在不同的上下文中,一个同样的字节序列可能表示一个整数、浮点数、字符串或者机器指令。 2 文本文件和二进制文件 有ASCII字符构成的文件称为文本文件,所有其他文件都是…

李航《统计学习方法》-----朴素贝叶斯

朴素贝叶斯法nave Bayes,在nave的中间字母上其实有两个点,查了一下才发现是法语中的分音符,在发音过程中发挥作用。但这不是重要的,重要的是在这种学习方法中贝叶斯承担了什么样的角色。 首先简单证明一下贝叶斯公式。联合概率Joi…

IEEE专访李开复:人类已打开潘多拉盒子,封堵AI变革只会徒劳

来源:《IEEE Spectrum》摘要:近期,李开复新书《AI未来》在美国同样反响不俗。在荣登多个排行榜后,IEEE旗下《IEEE Spectrum》,对李开复进行了专访,谈到了众多当前AI领域最受关注的话题。而且从《IEEE Spect…

Rand函数使用和对补码的理解

下面是在牛客网看到的一道题; //假设这n个数的序号依次为0,1,2,...,n-1,数组名为num void knuth1(int* pNum, int m, int n){srand((unsigned int)time(0));for (int i0; i<n; i){if (rand()%(n-i) < m)//rand()%(n-i)的取值范围是[0, n-i&#xff09;{cout << p…