Gibbs Sampling for the Uninitiated (Gibbs采样算法)
来源:互联网 发布:sodu源码zip 编辑:程序博客网 时间:2024/06/05 10:09
Reading Note : Gibbs Sampling for the Uninitiated
这几天较空总算把《Gibbs Sampling for the Uninitiated》看明白了点,看完这个对其他模型的 Gibbs Sampling 感觉应该是不会有大问题了,之后可以再仔细看看《Parameter estimation for text analysis》,然后对照他的代码写一份总结。
在此真是万分感谢这个作者,拯救了万千Uninitiated!要是没有这样的tutorial,也没人教,谁特么知道这东西怎么弄。
基础知识:随机过程、马尔科夫蒙特卡洛、Gibbs Sampling的理论基础(待写)
注:本文档主要是Learning Note,而不是独立教程,因此没有:1、基础概念 2、符号解释 3、详细公式推导 这些都可以从《Gibbs Sampling for the Uninitiated》原文找到。我的水平也极其有限,同时我认为如果只看别人博客而不愿意读原文那么肯定是不成的!本文主要目的是写一个学习记录给自己,使得以后忘记的时候能够迅速回顾。若能达到与人交流的目的,那就更好啦。
————————— 伟大的分割线:Gibbs Sampling for the Uninitiated!—————————
1.模型解析
首先应该看清楚这个model的真实面目,如下图:
对于文中Figure4,展开来应该如上图,之前我对于Graph Model其实具体接触比较少,对于Figure4那样画成Plate还是有误导性(主要是会误以为W只是一个随机变量),在这个图里Plate被展开了,所以我就随便用虚线替代实线,对于该图展开后的解释如下:
1.每一个文档有一个Label(j),是文档的class,同时
2.在Gibbs Sampling中,所有的圆圈都是要被sample的,也就是每一个
3.在这个model中,Gibbs Sampling所谓的P(Z),就是产生图中这整个数据集的联合概率,也就是产生这N个文档整体联合概率,还要算上包括超参
2.联合概率公式推导
分别对红色、绿色、蓝色、紫色部分求表达式,得到如下结果:
1)红色部分:这个是从beta分布sample出一个伯努利分布,伯努利分布只有一个参数就是
2)绿色部分:这里L是一整个向量,其中值为0的有C0个,值为1的有C1个,多次伯努利分布就是二项分布啦,因此:
3)蓝色部分:对于0类和1类的两个
4)紫色部分:这部分,首先要求对于单独一个文档n,产生所有word也就是
上面这个概率是针对单个文档而言的,把所有文档的这些概率乘起来,就得到了紫色部分:
其中x的取值可以是0或1,所以
最后把上述4部分乘起来,就得到整个模型的联合概率。不再赘述,只是说明文中从式(29)跳到(30),以及式(31)到式(32)的计算,都用到了Beta分布与二项分布共轭的性质,以及多项分布与狄利克雷分布共轭性质,这些可以从PRML2.2和2.3中读到【1】。
3.将隐含变量
为了方便,可以对隐含变量
图中带圈的(1)作者是直接通过Beta分布的Normalize Constant得出的,也就是和【1】是同一个道理。
4.吉布斯采样框架
包含三个步骤,按照顺序(1),(2),(3)进行
(1)对所有L变量采样一轮。即整个数据集合有N个文档,也就是有N个L实例,依次对每一个文档j,采样
注意表达式后面那部分的样子,在条件概率中,没有
(2)对
(3)对
对于其他变量,
然后就要求出
然后我用random函数从uniform distribution产生一个随机数r,如果r<=0.4,则将
在这里不累赘写L的概率表达式了,记录一些关键内容。首先,计算
另外,对于式(52),其实作者还是没有写清楚,怎么从伽马分布
最后的最后,文章给出了很关键的理解:
这个式子中,前半部分其实只有Cx是变量,所以如果C0大,则
- Gibbs Sampling for the Uninitiated (Gibbs采样算法)
- GIBBS SAMPLING FOR THE UNINITIATED 学习备注
- Reading Note : Gibbs Sampling for the Uninitiated
- Reading Note : Gibbs Sampling for the Uninitiated
- GIBBS SAMPLING FOR THE UNINITIATED 的学习笔记
- Gibbs sampling [Gibbs采样]
- Gibbs sampling [Gibbs采样]
- Gibbs sampling [Gibbs采样]
- Gibbs sampling [Gibbs采样]1
- 吉布斯采样(Gibbs Sampling)
- 吉布斯采样(Gibbs Sampling)及相关算法
- 吉布斯采样(Gibbs Sampling)及相关算法
- 吉布斯采样(Gibbs Sampling)及相关算法
- 吉布斯采样(Gibbs Sampling)及相关算法
- 吉布斯采样(Gibbs Sampling)及相关算法
- Gibbs Sampling(吉布斯采样)
- 马尔科夫链MCMC采样算法和LDA Gibbs Sampling
- 采样之Gibbs算法
- 打开本地程序,未安装则提示要求安装的实现攻略
- 可以让你少奋斗10年的工作经验
- 解决JasperReport在Linux系统下找不到字体的问题
- 网站建设内页设计也重要
- adr 与 ldr 的区别
- Gibbs Sampling for the Uninitiated (Gibbs采样算法)
- android学习
- C++标准库函数
- Linux学习之scp命令与Windows之XCOPY命令
- ORA-02266: 表中的唯一/主键被启用的外部关键字引用
- startup mount 时报ORA-12514错误的解决方法
- 步步为营Hibernate全攻略(五)Hibernate解决高并发问题之:悲观锁 VS 乐观锁
- WPF 中动态创建和删除控件
- 学习javascript基础知识系列第四节 - 闭包