Dirichlet Process 和 Dirichlet Process Mixture模型

[本文链接:http://www.cnblogs.com/breezedeus/archive/2012/11/05/2754940.html,转载请注明出处。]

Dirichlet Process (DP)被称为分布的分布。从DP抽取出的每个样本(一个函数)都可以被认为是一个离散随机变量的分布函数,这个随机变量以非零概率值在可数无穷个离散点上取值。比较有意思的是,从DP可以推导出几个非常著名的问题: Chinese Restaurant Process (CRP)、Polya Urn Scheme和Stick-breaking Process。简单的介绍可以见Edwin Chen的博文“Infinite Mixture Models with Nonparametric Bayes and the Dirichlet Process”。

DP的特性使得它在非参数贝叶斯聚类模型中可以被用作参数的先验分布。Dirichlet Process Mixture (DPM)是这种非参数贝叶斯聚类模型中的一个典型代表。DPM可以认为是有限混合(Finite Mixture,FM)模型的一个推广,FM(如Gaussian Mixture模型)必须首先给定类数,而DPM则不需要,它可以依据数据自行判断类数。理论上来说,DPM的类数随着log(样本点数量)的增长速度增长。目前研究者已经提出了很多训练DPM的算法,从Gibbs Sampling,到Collapsed Gibbs Sampling,到Variational方法。我自己实现了Collapsed Gibbs Sampling方法,速度是个很大的约束,跑大数据很费劲。DPM的一个另一个问题是它的类数由算法自动控制(虽然有个超参数alpha可以大致上调节类数),最终产生的类数可能与期望的差别很大。

想进一步了解DP和DPM的同学,可以去Yee W. Teh的主页上看看,里面可以找到很多相关的papersslidespresentations,以及用Matlab写的DPM开源软件。想仔细了解DPM的各个算法及具体推导,建议看看Xiaodong Yu的博文,里面也有他总结的一个很详细的学习笔记(虽然里面有一些小笔误),以及更多的参考资料。我自己也写了一份总结,但是懒得用Latex打出来了,就以图片打包的方式放在网盘里了,只把最后一页的参考文献贴下面。那些参考文献可以直接Google后下载。对理论没有兴趣的同学请忽略吧,哈哈。

Dirichlet Process 和 Dirichlet Process Mixture模型的更多相关文章

  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. com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command ' finished with non-zero exit value 1

    Error:Execution failed for task ':lenovoAlbum:processReleaseResources'. > com.android.ide.common. ...

  3. Process Kill Technology && Process Protection Against In Linux

    目录 . 引言 . Kill Process By Kill Command && SIGNAL . Kill Process By Resource Limits . Kill Pr ...

  4. How to change current process to background process

    Situation: there is a script or command is running, but we need to close current box/windows to do o ...

  5. node中__dirname、__filename、process.cwd()、process.chdir()表示的路径

    直接上结论:__dirname 表示当前文件所在的目录的绝对路径__filename 表示当前文件的绝对路径module.filename ==== __filename 等价process.cwd( ...

  6. 使用CreateProcess创建新的process 并返回process运行结束返回值

    转自:http://blog.csdn.net/zgl7903/article/details/5975284 转载这篇主要是记住:获得create的新进程运行结束时的返回值的方法 如下:   #in ...

  7. checkpoint process vs writer process vs wal writer process

    开始 我目前的理解是: 如果我执行了一条SQL文,那么 先是相关数据写到  wal buffer里, 然后再写到 data  buffer(shared_buffer)里. 这之后, 由于wal wr ...

  8. Linux进程自保护攻防对抗技术研究(Process Kill Technology && Process Protection Against In Linux)

    0. 引言 0x1: Linux系统攻防思想 在linux下进行"进程kill"和"进程保护"的总体思路有以下几个,我们围绕这几个核心思想展开进行研究 . 直接 ...

  9. AS错误:Error:Execution failed for task ':gM99SDK:processReleaseResources'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'F:\BaiduYunDown

    原因,buildToolsVersion 版本太低. 在build.gradle文件设置 buildToolsVersion 设置高一点,但必须是SDK里面有的.

随机推荐

  1. 使用ExpandableListView实现一个时光轴

    在许多App上都能看到时光轴的效果,比如携程等等,那么我们今天就利用ExpandableListView来实现一个时光轴效果,先来看看效果图: 效果还是挺简单的,这里我们主要是采用Expandable ...

  2. Java 实现折半查找

    package search; import java.util.*; /*折半查找要求线性表是有序的,假设递增 * 基本思路:R[low...high]是当前的查找区间,首先确定中间位置mid=(l ...

  3. Android Activiy的作用

    在Android应用程序中 ,Activity主要的负责创建窗口的,一个Activicy就是代表一个单独的屏幕,并且是用户唯一可以看到的东西 也就是说Activity就是用来实现和用户交互的,就和.n ...

  4. 第一章建立asp.net MVC

    第一步 第二步 创建controller 创建View view和controller之间的关系

  5. 使用WebView显示网页

    简单的页面跳转 package com.example.webtest; import java.security.PublicKey; import android.support.v7.app.A ...

  6. verilog中的function用法与例子

    函数的功能和任务的功能类似,但二者还存在很大的不同.在 Verilog HDL 语法中也存在函数的定义和调用. 1.函数的定义 函数通过关键词 function 和 endfunction 定义,不允 ...

  7. YII中的表单挂件

    利用助手(widget)在页面实现表单 控制器中 <?php class YiiFormController extends Controller { public function actio ...

  8. 玩转html5<canvas>画图

    导航 前言 基本知识 绘制矩形 清除矩形区域 圆弧 路径 绘制线段 绘制贝塞尔曲线 线性渐变 径向渐变(发散) 图形变形(平移.旋转.缩放) 矩阵变换(图形变形的机制) 图形组合 给图形绘制阴影 绘制 ...

  9. Activiti工作流引擎使用

    http://www.kafeitu.me/activiti/2012/03/22/workflow-activiti-action.html 1.简单介工作流引擎与Activiti 对于工作流引擎的 ...

  10. SQL Server 2008 TOP 新用途

    /***************创建测试表******************************/ IF NOT OBJECT_ID('[Demo_Top]') IS NULL DROP TAB ...