来源: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的更多相关文章

  1. Notes on the Dirichlet Distribution and Dirichlet Process

    Notes on the Dirichlet Distribution and Dirichlet Process In [3]: %matplotlib inline   Note: I wrote ...

  2. Dirichlet Process 和 Dirichlet Process Mixture模型

    Dirichlet Process 和 Dirichlet Process Mixture模型 [本文链接:http://www.cnblogs.com/breezedeus/archive/2012 ...

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

    狄利克雷过程(dirichlet process )的五种理解  原文:http://blog.csdn.net/xianlingmao/article/details/7342837   无参数贝叶 ...

  4. A Simple Introduction To Computer Networking

    Most networking discussions are a jumble of acronyms. Forget the configuration details - what are th ...

  5. The Most Simple Introduction to Hypothesis Testing

    https://www.youtube.com/watch?v=UApFKiK4Hi8

  6. Dirichlet Process

    http://www.cnblogs.com/zhangbojiangfeng/p/5962039.html [各种函数推导]

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

    0. 引入 现观察得到两个样本 θ1,θ2,来推测它们可能来自的分布: 假设来自于连续型概率密度函数, θ1,θ2∼H(θ) 则 θ1,θ2 相等的概率为 0,p(θ1=θ2)=0 概率为 0,不代表 ...

  8. 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 ...

  9. An Introduction to Variational Methods (5.1)

    在这篇文章中,我引用Bishop书中的一个例子,来简单介绍一下Variational Methods的应用.想要更详细地理解这个例子,可以参考Bishop的书Pattern Recongnition ...

随机推荐

  1. TCP/IP漫游

    TCP/IP漫游 TCP/IP是互联网的基础协议栈,它包括大大小小几十个协议.本篇文章主要涉及到就是HTTP.TCP.IP协议.我们经常学的网络模型是七层或者五层,实际上一般认为一共只有四层就可以了. ...

  2. Java:IDEA设置虚拟机运行时参数

    第一步:打开“Run->Edit Configurations”菜单 第二步:选择“VM Options”选项,输入你要设置的VM参数 第三步:点击“OK”.“Apply”后设置完成

  3. Docker - 常用命令集

    启动容器 docker run -d -p 58080:8080 -p 58000:8000 --name mytomcat1.0 -v /root/webapps/:/opt/apache-tomc ...

  4. 无法嵌入互操作类型“ADOX.CatalogClass”。请改用适用的接口。

    编译环境:vs2013 系统报错:无法嵌入互操作类型"ADOX.CatalogClass".请改用适用的接口. 解决方法:选中项目中引入的dll(本例中为Microsoft ADO ...

  5. postman使用感言

    这段时间接口测试一直使用的postman,一款谷歌接口测试插件,感受如下 优点: 1.对于中小型公司来说应该是够用的,特别是一键接口环境切换,一键设置header,作为一般的接口测试来说已经很不错了, ...

  6. Git 新建文件并提交

    1.创建一个readme.txt. cd /home/cyp/learngit touch readme.txt vim readme.txt 编写内容, wq 保存推出 2.提交步骤 2.1  gi ...

  7. 微信小程序之基础案例详细解释

    这是案例的初始页面 首先关于这个案例上面的app.json做一个特别详细的解释 首先提醒一下.json文件不能有注释,因此如果要复制的话,请把注释删去 //关于app.json详细学习 { //pag ...

  8. 【WXS数据类型】RegExp

    生成 regexp 对象需要使用 getRegExp函数,注意与JS的使用方法不同( new RegExp(pattern,modifiers);) 原型:getRegExp(pattern, mod ...

  9. 对HashMap进行排序

    首先来看看Map集合获取元素的三种常见方法keySet().values().entrySet() 1. values():返回map集合的所有value的Collection集合(于集合中无序存放) ...

  10. 数据库Mysql的学习(七)-自定义函数和流程控制

    DELIMITER // (设置结束符 其实我也不太明白为啥要这样 记住就行把) CREATE FUNCTION ym_date(mydate DATE) (创建函数 函数名字(参数)) ) (指定函 ...