狄利克雷过程(dirichlet process )和分布
狄利克雷过程(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更加统一地来看待,同时加深我们对于它们的理解。
狄利克雷过程(dirichlet process )和分布相关推荐
- 【算法】狄利克雷过程 (Dirichlet过程)
本小节是层次狄利克雷过程的笔记. 狄利克雷混合模型DPMM是一种可以自动确定聚类类别数量的聚类方法. 狄利克雷过程DP是"分布的分布",由2个参数和确定,即.其中是分布参数,值越大 ...
- 狄利克雷分布公式_Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程)...
Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程) Dirichlet Distribution(狄利克雷分布)与Dirichlet Pr ...
- Dirichlet Process
Introduction 考虑如下一个随机过程 给定分布G0G_0G0,一个正实数α\alphaα 从分布G0G_0G0中采样X1X_1X1 n>1n>1n>1时: 以概率αn ...
- Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程)
Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程) 请看,我师兄的写的文章http://www.datalearner.com/blog/ ...
- 【转帖】Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程)原文https://www.datalearner.com/blog/10514
beta分布的R语言实例 首先,我们可以画一个beta分布的概率密度函数. set.seed(1)x<-seq(0,1,length.out=10000)plot(0,0,main='proba ...
- Dirichlet Process(狄利克雷过程)
Dirichlet Process Dirichlet过程是一个常用于非参数模型的随机过程,对于随机过程的性质可以类比于Gauss过程.它是一个定义在分布上的分布,也就是说每一个Dirichlet过程 ...
- 狄利克雷过程(dirichlet process )的五种理解
狄利克雷过程(dirichlet process )是目前变参数学习(non parameter)非常流行的一个理论,很多的工作都是基于这个理论来进行的,如HDP(hierarchical diric ...
- 狄利克雷过程(Dirichlet Process)
0. 引入 现观察得到两个样本 θ1,θ2\theta_1,\theta_2,来推测它们可能来自的分布: 假设来自于连续型概率密度函数, θ1,θ2∼H(θ)\theta_1,\theta_2\sim ...
- 狄利克雷分布的三维实现和狄利克雷过程中的stick—breaking算法的实现
转载请标明作者 首先是狄利克雷分布的三维实现,由于没法保证下面的坐标值加起来唯一,所以我采用了抽样的方法,从dirchidirichlet~(1,1,1)中抽的三维图像的坐标值,我只去前两个作为我的x ...
最新文章
- python保存大列表(list)数据到文件并后续重新加载为列表(list)对象实战
- exchange 2003队列清空方法参考
- android中bitmap压缩的几种方法的解读
- Oracle 随机取某一列的值
- BZOJ2646 : neerc2011 flight
- 安卓案例:利用相对布局实现注册页面
- 如何用python处理图片_如何用python获取图像
- bzoj 1109: [POI2007]堆积木Klo(二维偏序)
- openfire的搭建与运行(转)
- 解决Maven:com.oracle:ojdbc7-12.1.0.2.jar在pom文件中无法下载问题
- 没想到一个起点中文网都可以掀起这么大的波澜
- 如何评价柏拉图_哲学家如何看待死亡?|读柏拉图《斐多篇》(1)
- RadioButtonList功能汇总
- 实验详解OSPF的几类LSA、FA转发规则(思科设备)
- 锤子T1(Smartisan T1 4G)版刷成3G版,即sm705运行sm701的CM11 Android 4.4.4ROM
- 微软正打造新一代 Windows 操作系统
- Oracle Windows ODBC 数据源配置
- [项目管理]敏捷宣言
- 微信Android客户端架构演进之路
- 【建议背诵】软考高项考试案例简答题汇总~(6)