转:Simple Introduction to Dirichlet Process
来源:http://hi.baidu.com/vyfrcemnsnbgxyd/item/2f10ecc3fc35597dced4f88b
Dirichlet Process(DP)是一个很重要的统计模型,其可以看做是Dirichlet分布的一种在连续空间的推广过程。在统计学习中,DP尤其是其变形有很多 重要应用,是非参贝叶斯学习的重要方法。不过目前缺乏对于这样一个模型的入门级的介绍,本文将会介绍如何从Dirichlet分布演变到 Dirichlet Process,从而帮助大家更容易地踏入这个领域。其中也会有很多疏漏,请读者指正。
另一篇关于Dirichlet Distribution的博文 The Dirichlet Distribution 狄利克雷分布 (PRML 2.2.1)
Dirichlet Distribution
首先,我将简单地介绍Dirichlet分布。Dirichlet分布可以看做是分布之上的分布。如何理解这句话,我们可以先举个例子:假设我们有 一个骰子,其有六面,分别为{1,2,3,4,5,6}。现在我们做了10000次投掷的实验,得到的实验结果是六面分别出现了 {2000,2000,2000,2000,1000,1000}次,我们可以简化一下,认为这个骰子的六面出现的概率分别为其出现的次数与试验总数的比 值,则我们得到六面出现的概率,分别为{0.2,0.2,0.2,0.2,0.1,0.1}。现在,我们还不满足,我们想要做10000次试验,每次试验 中我们都投掷骰子10000次。我们想知道,出现这样的情况使得我们认为,骰子六面出现概率为{0.2,0.2,0.2,0.2,0.1,0.1}的概率 是多少。这样我们就在思考骰子六面出现概率分布这样的分布之上的分布。而这样一个分布就是Dirichlet分布。
现在我们给出一个数学化的定义,Dirichlet分布形式如下:
?
其中,满足:
?
?
Theta是我们所希望的一种分布可能,在上面的例子中,可以认为是{0.2,0.2,0.2,0.2,0.1,0.1}这个结果,注意,这个结果 只是其很多结果中的一种。我们称M为base measure,其定义在我们的事件空间上,在骰子的例子中,就是我们认为,这个骰子的六面分别应该出现的概率。而alpha为一个精度参数,来表示这个 在分布之上的分布,有多靠近M这个基准。这个参数,从一定意义上,可以看做在整个实验之前,我们在脑子中进行的虚拟实验的数量,也就是投掷骰子出现1-6 的总次数。通过这么多次的虚拟实验,我们得到了M这样一个基准,作为我们判别的标志。所进行的虚拟实验的次数越多,我们认为M越可信。
Dirichlet Process
接下来,我们将从Dirichlet分布过渡到Dirichlet Process。
我们再来看刚才那个骰子的例子,我们用一种形式化的语言来描述这个问题:认为骰子的事件空间,就是掷骰子得到1到6中的一个结果为X,则X = {X1,X2,X3,X4,X5,X6}。 那么对于刚才那个问题,就可以看做在这个事件空间之上,有一个分布,用Theta表示。而我们的Dirichlet分布是建立在这个分布之上的分布,其参 数为alpha和M。
现在,我们换一个角度来看这个问题。我们现在是单纯地将骰子分成了6组,每组对应一个独立的事件。事实上,我们完全可以按照我们的想法来对其分组。 假如我们现在对事件空间进行重新分组,则我们将会得到完全不同的结果。比如我们分成3组,每组对应2个事件的话,我们将会得到一个新的Theta,即新的 分布。而我们对于这个新的分布,又能够建立一个新的对应的Dirichlet分布。
好,让我们推广一下,用一些形式化的语言来描述一下一般情况。对于给定的一个事件空间X,我们将其划分为n组,使得其满足:
?
?
?
对于这样一个分划,我们可以在其上定义一个对应的Dirichlet分布:
?
我们观察这个分布,我们发现这个式子其实是暗含了,对于事件空间上的任意一种分布,我们都可以有一个对应的Dirichlet分布存在。那么我们定 义Dirichlet Process为所有的划分上的所有分布所构成的空间上的唯一分布。这个定义也许很tricky,我们可以分两层来理解:首先对于事件空间X,是存在各种 分布的,而这些分布可以对应于各种划分。其次,这些分布本身,构成了一个由分布组成的空间,而定义在这个空间之上的分布,就是我们所定义的 Dirichlet Process。
转:Simple Introduction to Dirichlet Process的更多相关文章
- Notes on the Dirichlet Distribution and Dirichlet Process
Notes on the Dirichlet Distribution and Dirichlet Process In [3]: %matplotlib inline Note: I wrote ...
- Dirichlet Process 和 Dirichlet Process Mixture模型
Dirichlet Process 和 Dirichlet Process Mixture模型 [本文链接:http://www.cnblogs.com/breezedeus/archive/2012 ...
- 转:狄利克雷过程(dirichlet process )的五种理解
狄利克雷过程(dirichlet process )的五种理解 原文:http://blog.csdn.net/xianlingmao/article/details/7342837 无参数贝叶 ...
- A Simple Introduction To Computer Networking
Most networking discussions are a jumble of acronyms. Forget the configuration details - what are th ...
- The Most Simple Introduction to Hypothesis Testing
https://www.youtube.com/watch?v=UApFKiK4Hi8
- Dirichlet Process
http://www.cnblogs.com/zhangbojiangfeng/p/5962039.html [各种函数推导]
- 狄利克雷过程(Dirichlet Process)
0. 引入 现观察得到两个样本 θ1,θ2,来推测它们可能来自的分布: 假设来自于连续型概率密度函数, θ1,θ2∼H(θ) 则 θ1,θ2 相等的概率为 0,p(θ1=θ2)=0 概率为 0,不代表 ...
- A simple introduction to Three kinds of Delegation of Kerberos
1.What is Delegation? Just like the name. Delegation is that a server pretend to behalf of a user an ...
- An Introduction to Variational Methods (5.1)
在这篇文章中,我引用Bishop书中的一个例子,来简单介绍一下Variational Methods的应用.想要更详细地理解这个例子,可以参考Bishop的书Pattern Recongnition ...
随机推荐
- 成都Uber优步司机奖励政策(3月14日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- elasticsearch集群整合elqsticsearch-sql插件
1.本来整合这个插件是比较简单易操作的,但是由于公司从AWS下载禁掉了,给安装带来一些麻烦, 采用离线安装,先FQ将elasticsearch-sql-5.1.2.0.zip下载下来: ./bin/e ...
- jquery实现倒计时功能
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 翻译:利用GDAL生成cogeoff文件
翻译自: Introducing the AWS Lambda Tiler https://hi.stamen.com/stamen-aws-lambda-tiler-blog-post-76fc11 ...
- python学习五
打包代码与数据 数据结构要与数据匹配,数据结构影响代码的复杂性 列表 集合 字典 #创建与初始化 cleese={} cleese2=dict() cleese["name"] ...
- selenium自动化之显式等待和EC(expected_conditions)模块
很多人都有这种经历,selenium脚本当前运行没问题,过了一段时间再运行就报错了,然后过几天又好了.其中的原因估计60%的人都知道,是因为元素加载这块有问题.通常的解决方案就是加上sleep或者隐式 ...
- jmeter的脚本增强之参数化
jmeter作为一款开源的测试工具,功能广泛,深受测试同胞们的喜爱,这次来讲讲关于如何参数化及其方式.那为什么要进行一个参数化呢,如做压测时,要有大量的数据来模拟用户的真实场景,像登录页面操作,系统是 ...
- C++11 type_traits 之is_pointer,is_member_function_pointer源码分析
源码如下: template<typename> struct __is_pointer_helper : public false_type { }; template<typen ...
- solidity合约详解
Solidity 是一个面向合约的高级语言,其语法类似于JavaScript .是运行在以太坊虚拟机中的代码.这里我们用的是remix编译环境.是一个在线的编译环境.地址为http://remix.e ...
- VUE中组件的使用
关于vue组件引用 使用Nodejs的方法 被引用的组件要暴露 module.exports={}; 引用时 用 var abc= require("组件的路径") 然后 就可以用 ...