图模型(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. Esper学习之一:Esper介绍

    CEP即Complex Event Process,中文意思就是“复杂事件处理”.听起来好像很复杂,实际上就是基于事件流进行数据处理,把要分析的数据抽象成事件,然后将数据发送到CEP引擎,引擎就会根据 ...

  2. Android org.apache.http.*找不到

    https://blog.csdn.net/u012005313/article/details/51499892 直接把 org.apache.http.legacy.jar 报拷贝出来,放到Ecl ...

  3. Jenkins权限管理之Matrix Authorization Strategy

    一.权限管理概述 jenkins的权限管理,我目前使用的是Role-based Authorization Strateg.这个很简单,权限是jenkins已经定死了的,就那些.该插件可以让我们新建角 ...

  4. MFC修改窗口无标题和标题信息,修改执执行文件图标

    一.创建MFC后 窗口显示的是 无标题-工程名 修改方法在网上看到了几种,下面介绍下比较简单的一种: 1.在MianFrame.c文件中找到这个函数 BOOL CMainFrame::PreCreat ...

  5. [Html5] HTML5 开发手机应用

    上次周例会我给大家做了题目为:<漫游移动平台前端开发>的汇报,现在推荐一些额外的学习资料.          依照目前iPhone/Android 迅速提升市占率的情势来看,未来如果想要在 ...

  6. java代码中实现android背景选择的selector-StateListDrawable的应用

    首先定义一个获得StateListDrawable对象的方法: private StateListDrawable addStateDrawable(Context context, int idNo ...

  7. jstack命令的使用

    文章来源:https://blog.csdn.net/wufaliang003/article/details/80414267 jstack是java虚拟机自带的一种堆栈跟踪工具. jstack用于 ...

  8. Thinkphp---自定义服务类!

    考虑到有些功能是复用的,可以将一些复用的功能放到一个服务里面公用! 例如:公共模块新建一个服务类: 示例: <?php namespace Common\Service; // use Thin ...

  9. 使用Properties配置文件 InputStream与FileReader (java)

    java 开发中,常常通过流读取的方式获取 配置文件数据,我们习惯使用properties文件,使用此文件需要注意 文件位置:任意,建议src下 文件名称:任意,扩展名为properties 文件内容 ...

  10. js遍历json对象

    原生js遍历json对象 遍历json对象: 无规律: <script> var json = [ {dd:'SB',AA:'东东',re1:123}, {cccc:'dd',lk:'1q ...