先从狄利克雷过程的motivation开始说起,如果我们有一些数据,这些数据是从几个高斯分布中得出的,也就是混合高斯模型中得出的,比如下图这样

但是呢,我们并不知道混合高斯模型中到底有多少个高斯分布,它可能是这样

也可能是这样

在这个情况下,最大期望算法并不能解决这个问题,所以我们就需要狄利克雷过程来帮助我们。现实生活中的例子可以是,我有一堆论文但是我不知道这些论文到底讨论了多少论题。

首先,需要明确的是我们使用狄利克雷过程是想解决聚类的问题,有多少类我并不知道。我们从最极端的例子开始考虑,假设有 个数据,每个数据都是从不同的分布产生的 。那么,每一个分布会有对应自己的参数 ,例如 是高斯分布,那么 。 既然, 是分布 产生的, 又可以用 来定义,那么我们可以对 建模。假设 是遵循某一个分布 ,我们想想当 是连续分布的时候 ,这也就是我之前假设的,每个数据都来自不同的分布。但是,这个假设并不是我们想要的,我们想要解决的是聚类问题。所以,我们就想到构造一个离散的分布 使得 ,而且 要和 长得非常像。这个离散分布 就服从狄利克雷过程,也就是 。狄利克雷过程里的 ,就是我之前提到的 也称作base measure,且不一定是连续的,也可以是离散的。 是一个矢量且 ,可以理解为离散程度:如果 很大代表非常不离散,当 的时候 小就代表非常的离散,当 的时候,我们就是在用一个分布来对所有的 建模。这里我需要说一下,为了解释的简单一点,这样解释其实不是非常的准确,但是这样理解是没有问题的。

讲到这里,我必须提醒一下大家, 是从狄利克雷过程中产生的,不是一个随机变量而是一整个离散分布。

这里我讲完了狄利克雷过程的大致理解,接下来说狄利克雷过程具体是怎么定义的,和狄利克雷过程与狄利克雷分布的一些联系。

假设 都是从同一个狄利克雷过程中产生的,那么他们必然是有某一些内在的联系,至少得长得比较像。如下图,这两个分布,都是是从 过程中产生的。我们将这两个分布,分成 个不同的区域 ,这个可以任意划分

重申一下, 都是完整的分布,所以

从图中,我们也可以看出,每一个区域,长相都是略有相似的,所以我们定义:

以上其实就是狄利克雷过程的定义。也就是说 在每一个空间 里面的测度都要服从一个狄雷克雷分布。

以上就讲完了狄利克雷过程的定义,其实呢还想讲一讲狄利克雷过程的一些性质,因为确实有一些非常有意思的性质,也对我前面狄利克雷过程的解释有一些呼应。

随手百度就可以知道如果 ,则

根据狄利克雷过程的定义,

我们将 带入狄利克雷分布的期望和方差式子里面我们可以看到

因为 是一个分布,

从上面的式子中,首先我们可以看到, 的期望是和 没有关系的,而且就是等于 ,这也符合最开始我说过的,我们的目的是构造一个尽量和 相近的离散分布。同样,前面我也提到 代表了这个狄利克雷过程到底有多离散。当 也就是最不离散的情况。当 ,结合 ,是不是有点儿眼熟?对,就是伯努利分布。也就是说,要么有一个测度在 里面,要么就不在,这也就是最离散的情况。

链接:https://www.zhihu.com/question/31398469/answer/533132532

DP的构造:stick breaking (掰棍构造,断棒过程)

是从这个分布中产生的,它的位置和DP中的参数无关,但是它的权重πi和有关。βi~Beta(1,α) 服从Beta分布,范围为(0,1)

π1 = β1,π2= (1 - π1)*β2,...         第一根棍子的长度为权重值,第二根棍子的长度为剩余长度*权重值

E[βi] = 1/1+α , 如果α=0,说明第一次采样的时候,就把所有的权重都给第一个样本,对应只有一根棍子,也就是说G是最离散的版本(用一个值来代表整个分布)

当α趋于无穷,每个θ都是一个很小的权重,也就是说G=H。

G~DP(α,H)

θ~G

xi~F(θ)

迪利克雷过程的性质:

G~DP(a,H) <=> (G(a1),...G(ak)) ~ DIR(aH(a1),...,aH(ak))

P(G|θ1.....θn)  : G的后验

P(θ1.....θn|G):G的先验,因为G是一个分布,所以先验就为G

P(G):多项式似然函数

根据贝叶斯理论 ,P(G|θ1.....θn)  正比与 P(θ1.....θn|G) * P(G)

一个离散的分布P服从DIR迪利克雷分布,数据n1...nk服从多项式分布

(P1,...PK)~DIR(a1,...,ak)

(n1,...,nk)~mult(P1,...PK)

那么P(P1,...PK|n1,...,nk) = DIR(a1+n1,...,ak+nk)

类比下来

P(G(a1),...G(ak) | n1,...,nk) 正比与mult(n1,...,nk | G(a1),...G(ak))* DIR(aH(a1),...,aH(ak)) = DIR(aH(a1)+a1,...,aH(ak)+ak)

根据这个性质:G~DP(a,H) <=> (G(a1),...G(ak)) ~ DIR(aH(a1),...,aH(ak))

δ是狄拉克函数,在集合里面取1,在集合外面取0,集合在这里是指基分布(H)被划分成的区间,\delta δ就是统计有多少atom落在每个区间的个数。

为一个连续的分布+一个离散的分布(称为 stick and slab)

狄利克雷过程(Dirichlet Process)的更多相关文章

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

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

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

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

  3. 转:Simple Introduction to Dirichlet Process

    来源:http://hi.baidu.com/vyfrcemnsnbgxyd/item/2f10ecc3fc35597dced4f88b Dirichlet Process(DP)是一个很重要的统计模 ...

  4. Notes on the Dirichlet Distribution and Dirichlet Process

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

  5. Dirichlet Process 和 Dirichlet Process Mixture模型

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

  6. Dirichlet Process

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

  7. 【综述】(MIT博士)林达华老师-"概率模型与计算机视觉”

    [综述](MIT博士)林达华老师-"概率模型与计算机视觉” 距上一次邀请中国科学院的樊彬老师为我们撰写图像特征描述符方面的综述(http://www.sigvc.org/bbs/thread ...

  8. PGM:概率图模型Graphical Model

    http://blog.csdn.net/pipisorry/article/details/51461878 概率图模型Graphical Models简介 完全通过代数计算来对更加复杂的模型进行建 ...

  9. 概率图模型(PGM)综述-by MIT 林达华博士

    声明:本文转载自http://www.sigvc.org/bbs/thread-728-1-1.html,个人感觉是很好的PGM理论综述,高屋建瓴的总结了PGM的主要分支和发展趋势,特收藏于此. “概 ...

  10. The Dirichlet Distribution 狄利克雷分布 (PRML 2.2.1)

    The Dirichlet Distribution 狄利克雷分布 (PRML 2.2.1) Dirichlet分布可以看做是分布之上的分布.如何理解这句话,我们可以先举个例子:假设我们有一个骰子,其 ...

随机推荐

  1. Spring Boot通过Actuator显示git和build的信息

    1 简介 为了更好的版本控制和问题定位,我们需要知道正在运行的应用是什么版本,什么时候打包的,Git的相关信息等.通过/actuator/info可以帮助我们获取这些信息. 2 配置 首先要有actu ...

  2. 01-Sed简介

    1 Sed简介 Sed(Stream EDitor)为Uninx系统上提供将编辑工作自动化的编辑器,使用者无需直接编辑数据.使用者可以利用Sed所提供的20多种不同的函数,进行不同的编辑动作. Sed ...

  3. Springboot+Dplayer+RabbitMQ实现视频弹幕延时入库

    编写之初,在网上找了很多关于springboot整合dplayer实现弹幕的方式,发现案例很少,然后自己就着手写一个小项目,分享给大家~ 注:Dplayer版本:v1.22.2 流程:前端自定义弹幕发 ...

  4. vue中wowjs的使用

    笔者亲测,在vue中使用wow.js如果不按照以下方法实施,会出现意想不到的BUG,网页刷新后图片就全部突然看不到了,被增加了一个隐藏属性,建议大家严格按照方法执行,不要随意使用 (1)通过npm安装 ...

  5. webSocket前端+nodejs后端简单案例多人在线聊天

    一:下面是一个简单的案例,回车发送消息,多人在线聊天 1.前端代码 <!DOCTYPE html> <html> <head> <meta charset=& ...

  6. 插入排序(CSP-J 2021 T2)

    题目:(由于题干过长直接上链接:P7910 [CSP-J 2021] 插入排序 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)) 不是打广告 又有一个新思路: 我们可以再开一个b数组 ...

  7. vue-cli环境搭建 (超详细保姆级教程)

    一.使用之前,我们先来掌握3个东西是用来干什么的. npm: Nodejs下的包管理器. webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资 ...

  8. PID控制_位置式

    位置式: 1. 位置式: pid.c: float PID_calculate( float dT_s, //周期(单位:秒) float in_ff, //前馈值 float expect, //期 ...

  9. 使用云服务器配置MariaDB环境,Navicat远程连接一直出错误代码 "2002 - Can't connect to server on '' (10060)"

    使用腾讯云或者阿里云的服务器配置MariaDB数据库环境的时候,用Navicat远程连接在Centos7的Linux上配置MariaDB数据库环境的时候一直出错误代码 "2002 - Can ...

  10. SQL语句中 left join 后用 on 还是 where,区别大了!

    前天写SQL时本想通过 A left B join on and 后面的条件来使查出的两条记录变成一条,奈何发现还是有两条. 后来发现 join on and 不会过滤结果记录条数,只会根据and后的 ...