马尔可夫“折棍子”过程 Markovian Stick-breaking Process 在直方图平滑中的应用

  • 用Dirichlet prior做Histogram Smoothing
  • 用Markovian Stick-breaking Prior做Histogram Smoothing
    • Dirichlet Generator
    • Tridiagonal Generator

上一篇介绍了Markovian Stick-breaking Process的构造,这一篇介绍它在非参贝叶斯统计中的一个简单应用——Histogram Smoothing。

用Dirichlet prior做Histogram Smoothing

这个toy example来自WILLIAM LIPPITT AND SUNDER SETHURAMAN的manuscript(ON THE USE OF MARKOVIAN STICK-BREAKING PRIORS)。

假设一个鞋店老板想了解附近居民的鞋码分布,假设有ddd种尺码。在实际走访之前,因为他没有任何关于鞋码分布的先验信息,于是他决定使用non-informative measure:
μ=1⃗d\mu=\frac{\vec 1}{d}μ=d1​

在他走访之后,记下了每种鞋码对应的人数,用f⃗\vec ff​表示;如果先验为Dirichlet(θμ)Dirichlet(\theta \mu)Dirichlet(θμ),则对于Multinomial的数据,后验为Dirichlet(θμ+f⃗)Dirichlet(\theta\mu+\vec f)Dirichlet(θμ+f​),后验均值为
θμ+f⃗θ+f⃗T1⃗\frac{\theta \mu+\vec f}{\theta+\vec f^T \vec 1}θ+f​T1θμ+f​​

因此θ\thetaθ可以代表先验的强度,θ\thetaθ越大,先验对后验的影响就越大。

上图展示了Dirichlet prior的缺陷,在处理count data的时候,如果某些类别的数据样本很少(中图),那么在后验均值中,这些类别也不会被填充(右图),所以后验均值的直方图依旧无法展示数据的真实特征,也就是说Dirichlet prior并没有完全发掘出所有类别的先验信息。

用Markovian Stick-breaking Prior做Histogram Smoothing

Dirichlet Generator

要使用MSB(G)MSB(G)MSB(G)作为先验的话,需要先确定generator matrix GGG,因为Dirichlet prior是MSB(G)MSB(G)MSB(G)的一个特例,我们可以先看看Dirichlet prior Dirichlet(α)Dirichlet(\alpha)Dirichlet(α)对应的generator matrix。

用有向图代表Dirichlet prior不同category(在这个例子中就是鞋码)之间的dependence,但是Dirichlet prior中不同category是独立的,因此从节点iii到jjj的有向边的权重只取决于jjj,对于Dirichlet(α)Dirichlet(\alpha)Dirichlet(α)而言,这个权重与αj\alpha_jαj​成正比(简单起见可以就用αj\alpha_jαj​),因此Dirichlet prior有向图的伴随矩阵为

A=[α1α2α3⋯αdα1α2α3⋯αdα1α2α3⋯αd⋯⋯⋯⋯⋯α1α2α3⋯αd]A=\left[ \begin{matrix} \alpha_1 & \alpha_2 & \alpha_3 & \cdots & \alpha_d \\ \alpha_1 & \alpha_2 & \alpha_3 & \cdots & \alpha_d \\ \alpha_1 & \alpha_2 & \alpha_3& \cdots & \alpha_d \\ \cdots & \cdots & \cdots & \cdots & \cdots \\ \alpha_1 & \alpha_2 & \alpha_3 & \cdots & \alpha_d\end{matrix} \right]A=⎣⎢⎢⎢⎢⎡​α1​α1​α1​⋯α1​​α2​α2​α2​⋯α2​​α3​α3​α3​⋯α3​​⋯⋯⋯⋯⋯​αd​αd​αd​⋯αd​​⎦⎥⎥⎥⎥⎤​

根据Generator的定义把伴随矩阵修正为generator:
G=[α1−∑i=1dαiα2α3⋯αdα1α2−∑i=1dαiα3⋯αdα1α2α3−∑i=1dαi⋯αd⋯⋯⋯⋯⋯α1α2α3⋯αd−∑i=1dαi]G=\left[ \begin{matrix} \alpha_1-\sum_{i=1}^d \alpha_i & \alpha_2 & \alpha_3 & \cdots & \alpha_d \\ \alpha_1 & \alpha_2-\sum_{i=1}^d \alpha_i & \alpha_3 & \cdots & \alpha_d \\ \alpha_1 & \alpha_2 & \alpha_3-\sum_{i=1}^d \alpha_i & \cdots & \alpha_d \\ \cdots & \cdots & \cdots & \cdots & \cdots \\ \alpha_1 & \alpha_2 & \alpha_3 & \cdots & \alpha_d -\sum_{i=1}^d \alpha_i \end{matrix} \right]G=⎣⎢⎢⎢⎢⎢⎡​α1​−∑i=1d​αi​α1​α1​⋯α1​​α2​α2​−∑i=1d​αi​α2​⋯α2​​α3​α3​α3​−∑i=1d​αi​⋯α3​​⋯⋯⋯⋯⋯​αd​αd​αd​⋯αd​−∑i=1d​αi​​⎦⎥⎥⎥⎥⎥⎤​

这就是Dirichlet prior的generator matrix。

Tridiagonal Generator

根据Dirichlet generator的思想,用有向图表示不同category之间的dependence structure,再把有向图的伴随矩阵改写为generator的形式,这样我们就可以根据需求设计category之间的prior dependence structure。

在鞋码的这个例子中,我们可以假设鞋码其实是根据连续型随机变量——脚的长度——离散化之后的结果,因此鞋码之间的dependence structure应该是:

  1. 相邻鞋码之间可能存在dependence,用www来表示这种dependence的权重;
  2. 与相邻鞋码之外的其他鞋码之间无dependence

这两个结果非常直观,比如在买鞋的时候,平时穿40鞋的人最多再试一下39或者41,一般不会尝试38或者42;根据我们对鞋码之间dependence的认识,我们可以写出对应有向图的伴随矩阵:

A=[ww00wwww⋯00ww⋯0⋯⋯⋯⋯⋯w00⋯w]A=\left[ \begin{matrix} w & w & 0 & 0 & w \\ w & w & w & \cdots & 0 \\ 0 & w & w& \cdots & 0 \\ \cdots & \cdots & \cdots & \cdots & \cdots \\ w & 0 & 0 & \cdots & w\end{matrix} \right]A=⎣⎢⎢⎢⎢⎡​ww0⋯w​www⋯0​0ww⋯0​0⋯⋯⋯⋯​w00⋯w​⎦⎥⎥⎥⎥⎤​

这里我做了一点标准化处理,假设category 1与category d相邻,改写为generator之后它就成了对角元相同的一个很像三对角矩阵的矩阵(因为有右上左下两个www,所以并不是三对角矩阵),这是就称这种generator为tridiagonal generator的原因:

G=[−2ww00ww−2ww⋯00w−2w⋯0⋯⋯⋯⋯⋯w00⋯−2w]G=\left[ \begin{matrix} -2w & w & 0 & 0 & w \\ w & -2w & w & \cdots & 0 \\ 0 & w & -2w& \cdots & 0 \\ \cdots & \cdots & \cdots & \cdots & \cdots \\ w & 0 & 0 & \cdots & -2w\end{matrix} \right]G=⎣⎢⎢⎢⎢⎡​−2ww0⋯w​w−2ww⋯0​0w−2w⋯0​0⋯⋯⋯⋯​w00⋯−2w​⎦⎥⎥⎥⎥⎤​

下面是原文的两个模拟结果:


马尔可夫“折棍子”过程 Markovian Stick-breaking Process 在直方图平滑中的应用相关推荐

  1. 马尔可夫“折棍子”过程 Markovian Stick-breaking Process 简介

    马尔可夫"折棍子"过程 Markovian Stick-breaking Process 简介 Markovian Stick-breaking Process的构造 GEM分布 ...

  2. 从随机过程的熵率和马尔科夫稳态过程引出的一些思考 - 人生逃不过一场马尔科夫稳态...

    1. 引言 0x1:人生就是一个马尔科夫稳态 每一秒我们都在做各种各样的选择,要吃青菜还是红烧肉.看电影还是看书.跑步还是睡觉,咋一看起来,每一个选择都是随机的,而人生又是由无数个这样的随机选择组成的 ...

  3. HMM(马尔科夫过程及隐马尔科夫过程)

    转载地址(http://blog.csdn.net/xinzhangyanxiang/article/details/8522078) 学习概率的时候,大家一定都学过马尔科夫模型吧,当时就觉得很有意思 ...

  4. 【强化学习】MOVE37-Introduction(导论)/马尔科夫链/马尔科夫决策过程

    写在前面的话:从今日起,我会边跟着硅谷大牛Siraj的MOVE 37系列课程学习Reinforcement Learning(强化学习算法),边更新这个系列.课程包含视频和文字,课堂笔记会按视频为单位 ...

  5. MRF,马尔科夫随机场

    之前自己做实验也用过MRF(Markov Random Filed,马尔科夫随机场),基本原理理解,但是很多细节的地方都不求甚解.恰好趁学习PGM的时间,整理一下在机器视觉与图像分析领域的MRF的相关 ...

  6. NLP --- 隐马尔可夫HMM(概念详解、三个基本问题详解)

    本节将进入隐马尔可夫环节,再次提醒不懂马尔科夫过程的同学建议先搞懂什么是马尔科夫过程,什么是马尔科夫链,同时需要懂一点语言模型的知识,下面会用到一点点,本人打算详细总结隐马尔可夫算法思想,因此讲解的会 ...

  7. 深入浅出的马尔科夫入门文章

    http://blog.csdn.net/pipisorry/article/details/46618991 生成模式(Generating Patterns) 1.确定性模式(Determinis ...

  8. 隐马尔科夫模型 HMM 与 语音识别 speech recognition (1):名词解释

    0.引言 想在 CSDN 上看一下隐马尔科夫模型,简称HMM(Hidden Markov Model)的例子,找了几篇博文,却发现大部分都是转载的,转载的还没有出处,文中的表述与逻辑也看的人晕头转向, ...

  9. 马尔科夫随机场Markov Random Field

    马尔可夫随机场,描述了具有某种特性的集合.拿种地打比方,如果任何一块地里种的庄稼的种类仅仅与它邻近的地里种的庄稼的种类有关,与其它地方的庄稼的种类无关,那么这些地里种的庄稼的集合,就是一个马尔可夫随机 ...

最新文章

  1. 英特尔北京2022年冬奥会体验中心落成
  2. mybatis-plus团队新作:mybatis-mate 轻松搞定数据权限
  3. 如何从管理IT服务提供商获得最大收益
  4. 荐礼啦php知道与问问的采集插件
  5. vmware挂载共享目录
  6. Android Q 将增强未知来源应用安装的安全性
  7. GNU make manual 翻译( 一百八十七)
  8. 一起学Android之Intent
  9. kmp算法next计算方法_【数据结构——串】KMP算法——next数组Python的实现方式
  10. java多线程实现医院叫号_Java多线程经典题目(医院挂号)
  11. java 微博 屏蔽_最新JAVA调用新浪微博API之发微博(转)
  12. 学好数据结构的重要性
  13. 石墨烯海水淡化lammps模拟建模方法
  14. uni-app App和H5平台上传视频截取视频第一帧生成图片
  15. 苍穹插件常用事件与方法
  16. 【推荐】无需路由器,利用WIN7开启wifi,手机高速上网
  17. Java入土---面向对象(OOP)
  18. 从软件工程师到IT猎头:我的一点经…
  19. 世界过敏性疾病日 | 儿童过敏性鼻炎校园筛查启动
  20. 高等数学学习笔记——第二十一讲——函数的一致连续性

热门文章

  1. 概率编程库Pymc3案例之神经网络
  2. 【正一专栏】西班牙国家德比不再激情四射可更让人不舍
  3. Java定时多线程任务实现(TimerTask)
  4. Pandas简明教程:八、Pandas数据透视表
  5. 宁波工商职业技术学院计算机分数线,浙江工商职业技术学院历年分数线 2021浙江工商职业技术学院录取分数线...
  6. python中如何打开csv文件_在Python中从CSV文件读取数据
  7. 标准日本语初级上第一单元 第一课[李さんは 中国人です]
  8. Centos下本地连接postgresql时出现认证错误的问题
  9. poj 3255 Roadblocks (SPFA)
  10. hdu 2191 多重背包入门