[转]非参数Bayesian模型的学习基础
2013-04-08 08:32
92 查看
非参数Bayesian模型的学习基础
非参数模型中,Dirichlet process是基础。Dirichlet process是Dirichlet分布的推广,而Dirichlet 分布是Beta分布的推广。理解Dirichlet过程,先从了解Beta分布开始。Beta分布有关两个随机变量,而Dirichlet分布关于多维变量的概率分布。 抛硬币的实验中,设硬币正面的概率为p,反面的概率则为1-p。那么,连续抛n次硬币,其中k次为正面的概率服从二项分布B(n,p)。在实际的问题中,简单地处理,可以假设一枚硬币正面和反面的概率相等,即p=0.5。但若进一步考虑,由于一些特别的原因,一枚硬币正面和反面的概率可能并不相等,此时就需要估计参数p的值。一般假定参数p服从Beta分布,即用Beta分布作为参数p的先验分布。 Beta分布是定义在(0,1)区间上的连续概率分布簇,有两个正的形状参数。贝叶斯统计中,如上述的抛硬币实验中,Beta分布可视为在观察到α-1个正面和β-1个反面后,参数p的后验概率。因此,虽然预先不知道p值是多少,但利用Beta分布作为p的先验分布,则可通过观察(α+β-2)个抛硬币的实验情况,确定p的值。 类似地,可将抛硬币实验扩展到聚类分析中。设n个样本中,聚类为2个簇c1和c2,那么c1和c2的先验概率是多少呢?一样可以假定其服从Beta分布。当簇的数目超过2个时,这时就需要采用Dirichlet分布了。以Dirichlet分布Dir(α)作为簇的先验分布,其中α为向量,αi表示第i个簇中数据样本的数码。Dirichlet分布可以视为k维变量的联合分布函数,当k趋于无穷时,即得到Dirichlet过程。 Dirichlet过程的基础是stick-breaking过程。stick-breaking过程是一个构造算法,描述了如何产生(0,1)之间的离散值序列,每个值可以允许重复,而值的取值可能是无限的。若将stick-breaking中的每个离散值视为一个簇标签,则stick-breaking过程描述了无限簇标签的分布。根据stick-breaking过程,可以产生更复杂的其他Dirichlet过程。 因此,LDA模型中,其假定每个话题的出现概率是不同的,并且服从Dirichlet分布,这样就可以通过样本来估计不同话题的先验概率。而非参数Bayesian方法中,由于假定话题服从Dirichlet过程,使得话题数目不受限制,因此具有更强的适应能力。 Binomial分布:http://en.wikipedia.org/wiki/Binomial_distribution Beta分布:http://en.wikipedia.org/wiki/Beta_distribution Dirichlet分布:http://en.wikipedia.org/wiki/Dirichlet_distribution LDA模型:http://en.wikipedia.org/wiki/Latent_Dirichlet_allocation Dirichlet过程:http://en.wikipedia.org/wiki/Dirichlet_process 下面的文章可以作为基础: Michale I. Jordan的Bayesian Nonparametric Learning:Expressive Priors for Intelligent Systems Thomas L. riffiths, Alan Yuille的Technical Introduction: A primer on probabilistic inference 转载请注明出处:http://luowei828.blog.163.com/转载于:https://www.cnblogs.com/saliwei/archive/2013/04/08/3006630.html
相关文章推荐
- Java基础第十七天学习日记_Collections和Arrays的常用方法、高级for循环、可变参数、静态导入
- OpenGL学习: 光照系列1-光照基础(phong模型)
- css基础学习--尺寸与框模型、背景色、文本
- LDA主题模型学习笔记3.5:变分参数推导
- 深度学习基础模型算法原理及编程实现--06.循环神经网络
- Javascript 基础知识学习--javascript中的参数传递都是按值传递的
- 分布式机器学习系统笔记(一)——模型并行,数据并行,参数平均,ASGD
- LDA主题模型学习笔记4:求解模型参数(M-step)
- task2 学习笔记文本预处理;语言模型;循环神经网络基础
- 学习笔记(07):零基础搞定Python数据分析与挖掘-模型的假设检验
- MXNET:深度学习计算-模型参数
- C++学习笔记:函数指针语法基础以及函数指针做函数参数的思想剖析
- ogre3D学习基础12 --- 让机器人动起来(移动模型动画)
- HTML基础学习-18- div css容器 盒子模型学习1
- 深度学习基础系列:CNN模型及其应用
- 监督学习的模型,参数,方法
- 【Scikit-Learn 中文文档】模型选择:选择估计量及其参数 - 关于科学数据处理的统计学习教程 - scikit-learn 教程 | ApacheCN
- 深度学习基础模型算法原理及编程实现--01.感知机
- junit基础学习之-参数初始化(5)
- backbone学习笔记:模型(Model)(1)基础知识