狄利克雷过程(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 )和分布相关推荐

  1. 【算法】狄利克雷过程 (Dirichlet过程)

    本小节是层次狄利克雷过程的笔记. 狄利克雷混合模型DPMM是一种可以自动确定聚类类别数量的聚类方法. 狄利克雷过程DP是"分布的分布",由2个参数和确定,即.其中是分布参数,值越大 ...

  2. 狄利克雷分布公式_Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程)...

    Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程) Dirichlet Distribution(狄利克雷分布)与Dirichlet Pr ...

  3. Dirichlet Process

    Introduction 考虑如下一个随机过程 给定分布G0G_0G0​,一个正实数α\alphaα 从分布G0G_0G0​中采样X1X_1X1​ n>1n>1n>1时: 以概率αn ...

  4. Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程)

    Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程) 请看,我师兄的写的文章http://www.datalearner.com/blog/ ...

  5. 【转帖】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 ...

  6. Dirichlet Process(狄利克雷过程)

    Dirichlet Process Dirichlet过程是一个常用于非参数模型的随机过程,对于随机过程的性质可以类比于Gauss过程.它是一个定义在分布上的分布,也就是说每一个Dirichlet过程 ...

  7. 狄利克雷过程(dirichlet process )的五种理解

    狄利克雷过程(dirichlet process )是目前变参数学习(non parameter)非常流行的一个理论,很多的工作都是基于这个理论来进行的,如HDP(hierarchical diric ...

  8. 狄利克雷过程(Dirichlet Process)

    0. 引入 现观察得到两个样本 θ1,θ2\theta_1,\theta_2,来推测它们可能来自的分布: 假设来自于连续型概率密度函数, θ1,θ2∼H(θ)\theta_1,\theta_2\sim ...

  9. 狄利克雷分布的三维实现和狄利克雷过程中的stick—breaking算法的实现

    转载请标明作者 首先是狄利克雷分布的三维实现,由于没法保证下面的坐标值加起来唯一,所以我采用了抽样的方法,从dirchidirichlet~(1,1,1)中抽的三维图像的坐标值,我只去前两个作为我的x ...

最新文章

  1. python保存大列表(list)数据到文件并后续重新加载为列表(list)对象实战
  2. exchange 2003队列清空方法参考
  3. android中bitmap压缩的几种方法的解读
  4. Oracle 随机取某一列的值
  5. BZOJ2646 : neerc2011 flight
  6. 安卓案例:利用相对布局实现注册页面
  7. 如何用python处理图片_如何用python获取图像
  8. bzoj 1109: [POI2007]堆积木Klo(二维偏序)
  9. openfire的搭建与运行(转)
  10. 解决Maven:com.oracle:ojdbc7-12.1.0.2.jar在pom文件中无法下载问题
  11. 没想到一个起点中文网都可以掀起这么大的波澜
  12. 如何评价柏拉图_哲学家如何看待死亡?|读柏拉图《斐多篇》(1)
  13. RadioButtonList功能汇总
  14. 实验详解OSPF的几类LSA、FA转发规则(思科设备)
  15. 锤子T1(Smartisan T1 4G)版刷成3G版,即sm705运行sm701的CM11 Android 4.4.4ROM
  16. 微软正打造新一代 Windows 操作系统
  17. Oracle Windows ODBC 数据源配置
  18. [项目管理]敏捷宣言
  19. 微信Android客户端架构演进之路
  20. 【建议背诵】软考高项考试案例简答题汇总~(6)

热门文章

  1. php如何获取客户端请求ip地址的方法
  2. 计算机视觉编程 第六章 图像聚类
  3. 记一次USB声卡设计开发
  4. 微信小程序云开发-证件照的实现
  5. linux查看某个文件大小
  6. MySQL-SQL语句的优化
  7. 年轻代和年老代分配过大 或 过小
  8. java高内聚低耦合
  9. 【dgl学习】dgl中edges.src/edges.dst/edges.data解释
  10. 2021蓝桥杯B组 第I题杨辉三角形