图模型(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. sencha touch 侧边栏扩展(只隐藏不销毁)

    基于Ext.ux.MenuButton改造而来,和它不同的是,不会每次都去销毁侧边栏,只是单纯的隐藏,属性配置方面没啥区别,每次点击按钮显示时,会触发showMenu事件/方法 代码如下: /** * ...

  2. git服务器

    1 关于版本控制版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.有以下三种版本控制系统:1. 本地版本控制系统许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会 ...

  3. [MySQL]修改root密码的4种方法(以windows为例)

    方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:my ...

  4. python的类中为什么要引入self

    从第一次接触python的面向对象编程时起就很看不惯它的self,简直反人类. 相关资源: What is the purpose of self in Python? http://stackove ...

  5. Java开发之上帝之眼系列教程前言&目录

    前言 如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝的角度去观察(了解)Java体系. ...

  6. python----题库(一)

    1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py #必须在首行有 #!/usr/bin/env pyth ...

  7. ubuntu16.04配置tensorflow-gpu环境

    1.安装驱动 参考: 史上最全的ubuntu16.04安装nvidia驱动+cuda9.0+cuDnn7.0 https://blog.csdn.net/qq_31215157/article/det ...

  8. 基于元胞自动机NaSch模型的多车道手动-自动混合驾驶仿真模型的Matlab实现

    模型的建立基本来自于:http://www.doc88.com/p-2078634086043.html 花了一天半的时间用新学会的matlab实现了一下. ───────────────────── ...

  9. codeforces 894C - Marco and GCD Sequence - [有关gcd数学题]

    题目链接:https://cn.vjudge.net/problem/CodeForces-894C In a dream Marco met an elderly man with a pair o ...

  10. python数据结构之树(概述)

    树 在计算机科学中,树是分层结构的抽象模型 .本篇学习笔记记录树的内容如下: 树的基本功能:定义.术语.ADT 树的遍历方法:前序.中序.后序 树的定义 第一种:树由一组节点和一组连接节点的边组成.树 ...