图模型(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. 【PHP】快递鸟 物流查询接口实现

    官方网址: http://www.kdniao.com 即时查询api: http://www.kdniao.com/api-track 需要登录 ,申请一下 用户ID 和 API key 代码实现: ...

  2. 【cs229-Lecture2】Gradient Descent 最小二乘回归问题解析表达式推导过程及实现源码(无需迭代)

    视频地址:http://v.163.com/movie/2008/1/B/O/M6SGF6VB4_M6SGHJ9BO.html 机器学习课程的所有讲义及课后作业:http://pan.baidu.co ...

  3. 【大数据系列】hive安装及启动

    一.安装好jdk和hadoop 二.下载apache-hive https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.0/ 三.解压到安装 ...

  4. 转载->C#事件的使用和讲解

    C#事件的使用和讲解 事件的由来 在上一篇幅博客中http://www.cnblogs.com/JiYF/p/6867081.html 对委托讲解的比较细致 我们继续思考上面的程序:上面的三个方法都定 ...

  5. Excel2010如何合并列数据

    小编以下图的Excel数据文件为例,如下图,有两列数据,第一列是歌曲名,第二列是该歌曲的演唱者,他们是有关联呢,那么如何把他们合并到同一列呢.   首先点击第3列的开始空白格,在这里编辑公式 =a1& ...

  6. 对Java中使用两个大括号进行初始化的理解

    最近重读Java 编程思想,读到有关实例化代码块儿 的内容,使我对于使用两个大括号进行初始化有了更深的理解. 实例化代码块儿: 和静态代码块儿的概念相对应,静态代码块儿是static 关键字 + 大括 ...

  7. Android服务开发——WebService

    我在学习Android开发过程中遇到的第一个疑问就是Android客户端是怎么跟服务器数据库进行交互的呢?这个问题是我当初初次接触Android时所困扰我的一个很大的问题,直到几年前的一天,我突然想到 ...

  8. matlab中 数据保留有效位数

    可以使用round函数  ,这函数原本功能是四舍五入 比如: >> A = 0.0326465;>> B = round(A*1000)/1000 B = 0.0330

  9. 【CF850E】Random Elections FWT

    [CF850E]Random Elections 题意:有n位选民和3位预选者A,B,C,每个选民的投票方案可能是ABC,ACB,BAC...,即一个A,B,C的排列.现在进行三次比较,A-B,B-C ...

  10. python selenium中等待元素出现及等待元素消失操作

    在自动化测试中,很多时候都会有等待页面某个元素出现后能进行下一步操作,或者列表中显示加载,直到加载完成后才进行下一步操作,但时间都不确定,如下图所示 幸运的是,在selenium 2后有一个模块exp ...