转:狄利克雷过程(dirichlet process )的五种理解
狄利克雷过程(dirichlet process )是目前变参数学习(non parameter)非常流行的一个理论,很多的工作都是基于这个理论来进行的,如HDP(hierarchical dirichlet process)。
下面我们谈谈dirichlet process的五种角度来理解它。
第一种:原始定义:假设存在在度量空间\Theta上的分布H和一个参数\alpha,如果对于度量空间\Theta的任意一个可数划分(可以是有限或者无限的)A1, A2,...,An,都有下列式子成立:
(G(A1),G(A2),...,G(An)) ~ Dir(\alpha H(A1), \alpha H(A2),..., \alpha 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/(\alpha+n)坐在第i张桌子上,ni为第i张桌子上的顾客数;同时有概率为\alpha/(\alpha+n)选取一张新的桌子坐下。那么在n个顾客坐定之后,很显然CRP把这n个顾客分为了K个堆,即K个clusters,可以证明CRP就是一个DP。
注意这里有一个限制,每张桌子上只能有同一个dish,即一桌人喜欢吃同一道菜。
第三种:Polya urn模型
假设我们有一个缸,里面没有球,现在我们从一个分布H中选取一种颜色,然后把这种颜色涂在一个球上放入缸中;然后我们要么从缸中抽取一个球出来,然后再放入两个和这个球同种颜色的球进入缸中;要么就从分布H中选取一个颜色,然后把这种颜色涂在一个球上放入缸中。从缸中抽取某种颜色的一个球的概率是ni/(\alpha+n),ni是这种颜色的球的个数,n是总的球个数;不从缸中抽取而放入一种颜色的球的概率是\alpha/(\alpha+n)。很明显,polya urn模型和CRP有一一对应的关系,颜色对应一个桌子,坐新桌子对应于不从缸中选取而是从H中选取一种颜色涂球放入缸中。
第四种:stick-breaking模型
假设有一个长度为1的线段,我们从中选取\pi_1长出来,剩下的部分再选取\pi_2出来,循环下去,\pi_n,无穷下去,这个有点类似我们古代的一句话:
“一尺之踵,日取其半,万世不竭”,它们满足\sum \pi_i = 1
对每个\pi_i,我们都从分布H中选取一个\theta_i,然后从F(\theta_i)中选取出一个x_i出来。这里的\theta_i就对应一个cluster,类似地,我们可以看到数据自然地被分为了各个堆,可以证明这个模型仍然是一个DP。
第五种:无限混合模型
从stick-breaking模型我们看出,我们可以把DP看着是一个无限混合模型,即
G ~ \sum_1^\inf \pi_i*F(\theta_i),其中\sum \pi_i = 1。\pi_i 就是混合模型中每个子模型的权重。
目前应用最多的还是从第五种角度来看待问题,即把DP看着是一个无限混合模型,其中值得注意的是:
1)虽然DP是一个无限混合模型,但是可以证明,随着数据的增多,模型的个数是呈现log 增加的,即模型的个数的增长是比数据的增长要缓慢得多的;
2)DP是有一个马太效应在里面的,即越富裕的人越来越富裕,我们可以从第二和第三种解释中看到,每个桌子或者颜色已经有的数据越多,那么下一次被选中的概率越大,因为是与在桌子上的个数成正比的。
DP是一个复杂的随机过程,需要进一步深入理解,下篇将会继续这个话题。
转:狄利克雷过程(dirichlet process )的五种理解的更多相关文章
- 说说基于网络的五种IO模型
# django不是一个异步框架 # tornado是异步的web框架 # 处理每秒大量的请求 # 个人理解的IO:就是应用层与内核驱动层的交互,这个过程无论从应用层到内核中,还是驱动层等待硬件层的数 ...
- 狄利克雷过程(Dirichlet Process)
0. 引入 现观察得到两个样本 θ1,θ2,来推测它们可能来自的分布: 假设来自于连续型概率密度函数, θ1,θ2∼H(θ) 则 θ1,θ2 相等的概率为 0,p(θ1=θ2)=0 概率为 0,不代表 ...
- Activity启动过程中获取组件宽高的五种方式
第一种:(重写Activity的onWindowFocusChanged方法) /** * 重写Acitivty的onWindowFocusChanged方法 */ @Override public ...
- 转:Simple Introduction to Dirichlet Process
来源:http://hi.baidu.com/vyfrcemnsnbgxyd/item/2f10ecc3fc35597dced4f88b Dirichlet Process(DP)是一个很重要的统计模 ...
- 聊聊 Linux 中的五种 IO 模型
本文转载自: http://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666538919&idx=1&sn=6013c451 ...
- 转:Windows Socket五种I/O模型
原文转自: Windows Socket五种I/O模型 Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模 ...
- I/O模型系列之二:Unix的五种网络I/O模型
1. Unix的五种I/O模型 从上往下:阻塞程度(高-----低)I/O效率 (低-----高) 阻塞I/O(Blocking I/O):传统的IO模型 非阻塞I/O(Non-Blocking I ...
- I/O模型之一:Unix的五种I/O模型
目录: <I/O模型之一:Unix的五种I/O模型> <I/O模型之二:Linux IO模式及 select.poll.epoll详解> <I/O模型之三:两种高性能 I ...
- 04: 事件驱动、五种I/O操作、I/O多路复用select和epoll
网络编程其他篇 目录: 1.1 事件驱动 1.2 五种I/O操作 1.3 I/O 多路复用之select.poll.epoll详解 1.1 事件驱动返回顶部 1.什么是事件驱动 定义:就是根据不同事 ...
随机推荐
- CF 1027 F. Session in BSU
F. Session in BSU https://codeforces.com/contest/1027/problem/F 题意: n场考试,每场可以安排在第ai天或者第bi天,问n场考完最少需要 ...
- PS 旋转任意角度的照片
1.选择标尺工具 2.在图片上画一个线,然后工具栏--图像--图像旋转
- Linux系统中ElasticSearch搜索引擎安装配置Head插件
近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.Ela ...
- 怎样下载JDBC驱动
MySQL官网: https://www.mysql.com/ 请注意: 需要把mysql-connector-java-5.1.45-bin.jar放到C:\JMeter\apache-jmeter ...
- Siki_Unity_0_Unity A计划直播视频
Unity A计划直播视频 2017-07-04直播 任务1:如何识别以招聘来招培训生的公司: 打着招聘的旗号帮培训机构找培训生 关键词:实训生 任务2:如何识别一个公司的好坏和规模大小: 猎聘(中高 ...
- [USACO09Open] Tower of Hay 干草塔
为了调整电灯亮度,贝西要用干草包堆出一座塔,然后爬到牛棚顶去把灯泡换掉.干草包会从传送带上运来,共会出现N包干草,第i包干草的宽度是W i ,高度和长度统一为1.干草塔要从底层开始铺建.贝西会选择最先 ...
- CodeForces - 776C(前缀和+思维)
链接:CodeForces - 776C 题意:给出数组 a[n] ,问有多少个区间和等于 k^x(x >= 0). 题解:求前缀和,标记每个和的个数.对每一个数都遍历到1e5,记录到答案. # ...
- WCF:REST + Basic authentification + IIS
近期一个项目中用到Restful WCF提供服务,但是需要验证机制,网上搜刮了一些,都是太复杂.FQ找到了一篇不错的文章分享一下. 原地址连接:http://vgolovchenko.wordpres ...
- Reject Inference: Your Data is Deceiving You
Keyword: Reject Inference Suppose there is a dataset of several attributes, including working condit ...
- leetcode个人题解——#5 Container with most water
class Solution { public: string longestPalindrome(string s) { int length = s.length(); ) return s; ; ...