图模型(Graphical Models)是一个用来表示概率模型的工具。所谓概率模型,也就是在刻画一组随机变量之间的相互关系。图模型就是用来显式地刻画这些变量之间关系的。在 图模型中,每个变量由图中的一个结点表示,而每一条边则代表其所连接的两个变量之间有相互依赖关系。根据图的结构可以方便地判断变量之间的独立性、条件独 立性等关系,并且可以指导我们做一些inference的工作。

 
图模型有两种,用无向图表示的称为马尔可夫随机场(Markov Random Field,MRF),有向图表示的称为贝叶斯网络(Bayesian Network)。其区别在于,贝叶斯网络中的边有明确定义的条件依赖关系。有向图可以转换为无向图,转换的过程称为moralization。转换过程 中,原模型所能表示的一些独立性条件可能会损失掉。不论在哪个模型中,所有变量的联合概率都可以分解为一些因子的乘积,这些因子定义在团(clique) 上。
 
概率模型中的推断(inference)就是根据给定的一些事实,计算一些相关的随机变量的概 率。典型的例子是计算某些变量的边缘分布,或者计算给定一些变量的观察值之后计算另一些变量的条件概率,这两个问题实际上是相通的。由于计算边缘分布涉及 到对变量的求和或者积分,对于无法计算出显式计算公式的情况,离散变量要穷举所有可能的值,而连续变量则根本无法求解,这就带来了计算问题。以离散变量为 例,穷举所有变量值的计算量就是指数级别的。
 
精确推断(Exact Inference)利用了图模型中蕴含的条件独立或者依赖关系,将这一穷举过程进行了有序的分解(实际上是分解为一些clique),从而达到一次只穷 举计算一部分的效果,这样就避免了所有变量的同时穷举,使得穷举规模大大降低。消息传播算法以及延伸的junction tree算法都是采用的着一种策略。但这类方法的复杂度受限于图中最大的clique的大小,与其规模成指数关系。所以,对于一些复杂的图而言,精确计算 是不可能的。
 
基于此,就有学者提出了一些近似方法。典型的有基于变分的方法 (Variational Methods)还有基于采样的方法(Sampling Methods)。看了一点Tom Jaakkola介绍Variational Methods的Tutorial,对这种方法有了些小认识,在此稍总结一下它的基本思想。对于更深入的思考,等以后有了再记。
 
这一类近似算法的基本策略是将一个计算问题转化为一个优化问题,这个优化问题的最优解就是计算问题的解。因此,当我们朝着该方向进行优化的时候就可以确认我们正逐步接近于我们想要的答案。

在图模型中,计算边缘概率的对数值的时候,我们可以把这一算式写成一个简单的优化问题,即优化该对数概率减去一个KL
divergence。具体而言,就是写成这样的形式:
          J(Q) = logP(X_v) - KL(Q(X_h)||P(X_h|X_v))
KL衡量Q和P的相似度。
P是原函数
Q是去近似的函数
J(Q)是优化目标

其中v代表观察到的变量,h为未观察到的变量,我们所要估计的就是概率项P(X_v)以及条件概率P(X_h|X_v)。由于KL
divergence的非负特性,上面的目标函数是logP(X_v)的下界,当我们找到合适的Q使得上式最小时,此时的目标函数值就是P(X_v),此
时的Q也就是P(X_h|X_v)。该优化问题中,变量是函数Q,这也就是这种方法称为变分法的原因。
 
经过几步变换,上述目标函数还可以写成
          J(Q) = H(Q) + E_Q{logP(X_v, X_h)}
的形式。这里H(Q)为变分分布的熵,后者为联合分布的对数在Q分布下的期望。如此一来,对数符号中的求和可以挪到对数符号外面,形式上简化了许多(和的对数很难计算)。但仅仅这样还远远不够,如果事先对Q的形式没有任何了解,则优化这一函数仍然是不可能的。
 
近似方法就是引入了一些对解的限制,减小了可行解空间,从而使问题得到简化,另一方面也使得我们能够得到的最好的解并不一定是原问题的最优解。在图模型的变分近似方法中,通常通过对变分分布Q引入一些独立性假设,使得问题简化。一种最简单的假设就是假定在Q分布中各变量都是独立的,因此Q函数可分解为单个变量函数值的积。对于优化过程,则可以一个变量一个变量地进行有序优化,这又进一步使得复杂性得到了降低。解这样一个问题可以采用mean
field
equation进行迭代计算。这可以保证单调收敛到一个极值点。但我们对问题的简化使得问题不具有全局凸性,因此找到的极值点不保证为最优解。这就是近似的代价。

Variational Approximate Inference的更多相关文章

  1. PRML读书会第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )

    主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:02:04 我们在前面看到,概率推断的核心任务就是计算某分布下的某个函数的期望.或者计算边缘概率分布.条件 ...

  2. Approximate Inference

    1.  Approximation    Probabilistic model  中的一个 central task :给定一组observation X 后,计算latent variables ...

  3. 近似推断(Approximate Inference)

    1.变分推断(Variational Inference) 1.1.分解概率分布(Factorized distributions) 1.2.分解近似的性质(Properties of factori ...

  4. Approximate Inference 近似推断

    引入 统计推断的核心任务,是观察到一些X(可见变量戒可观察变量)之后计算隐变量Z的后验分布p(Z|X),以及在这个后验分布下计算我们所需要的函数的期望.比如,讲EM时,我们曾计算过对数似然函数在隐变量 ...

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

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

  6. A Statistical View of Deep Learning (II): Auto-encoders and Free Energy

    A Statistical View of Deep Learning (II): Auto-encoders and Free Energy With the success of discrimi ...

  7. PGM:概率图模型Graphical Model

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

  8. 学习笔记-----《Pattern Recognition and Machine Learning》Christopher M. Bishop

    Preface 模式识别这个词,以前一直不懂是什么意思,直到今年初,才开始打算读这本广为推荐的书,初步了解到,它的大致意思是从数据中发现特征,规律,属于机器学习的一个分支. 在前言中,阐述了什么是模式 ...

  9. pgm14

    这部分讨论在有数据缺失情况下的 learning 问题,这里仍然假定了图结构是已知的. 首先需要讨论的是为什么会缺失,很多情况下缺失并不是“随机”的:有的缺失是人为的,那么某些情况下缺失的可以直接补上 ...

随机推荐

  1. WEB中会话跟踪[转]

    今天晚上去华工参加睿智融科的笔试,问到web会话跟踪,一脸懵比,这个词听都没听过,回来后百度下,发现其实会话跟踪的内容我基本都了解的~_~ 转自:http://www.cnblogs.com/gaop ...

  2. canvas练习 - 七巧板绘制

    用到的方法: 注意点: stokeStyle等样式要在stroke前边 如果最后只有一个stroke或者fill,那么只填充最后一次路径的,之前的也会画出来但是没有填充看不到.所以每次begin+cl ...

  3. java(8) HashMap源码

    系统环境: JDK1.7 HashMap的基本结构:数组 + 链表.主数组不存储实际的数据,存储的是链表首地址. 成员变量 //默认数组的初始化大小为16 static final int DEFAU ...

  4. sencha touch 在安卓中横屏、竖屏切换 应用崩溃问题

    答案来至于 Sencha Touch 交流 @周旭 这是由于横竖屏转换导致activity重跑onCreate方法导致的,有两种解决方案:1.横竖屏转换的时候不要重新跑onCreate方法,这个可以在 ...

  5. tars环境部署

    author: headsen  chen date: 2018-10-18 12:35:40 注意:依据Git上的tars搭建步骤整理而来 参考: https://max.book118.com/h ...

  6. DragonBones龙骨换装(局部换装+全局换装)

    参考: Egret官方换装动画 Egret换装三种方式 CSDN(全局换装) egret使用DragonBones实现简单的换装 换装,主要是替换任意插槽的图片,来达到局部换装的目的. 游戏中可以只制 ...

  7. 使用atomic一定是线程安全的吗?

    这个问题很少遇到,但是答案当然不是.atomic在set方法里加了锁,防止了多线程一直去写这个property,造成难以预计的数值.但这也只是读写的锁定.跟线程安全其实还是差一些.看下面. @inte ...

  8. django的queryset和objects对象

    1. queryset是查询集,就是传到服务器上的url里面的内容.Django会对查询返回的结果集QerySet进行缓存,这里是为了提高查询效率. 也就是说,在你创建一个QuerySet对象的时候, ...

  9. C++和Java中的静态Static用法

    C++和Java中都有的一个静态关键字Static,可以放在类中的变量或者函数之前,就成了静态变量或者静态函数. 静态变量又分为静态全局变量和静态局部变量,可参见网上大神总结的C++全局变量,局部变量 ...

  10. postgresql----数组类型和函数

    postgresql支持数组类型,可以是基本类型,也可以是用户自定义的类型.日常中使用数组类型的机会不多,但还是可以了解一下.不像C或JAVA高级语言的数组下标从0开始,postgresql数组下标从 ...