pgm10
这部分讨论 MAP 估计。从某个角度上来说,我们可以将这个问题转换成为前面讨论过的:
这样一来我们只需要将原先的 sum-product 换成 max-sum 即可。话虽这么说,我们还是看看 Koller 同学给大家准备了些什么东西。
首先是一些复杂性方面的结论,如给定一个 BN 和常数 ,问是否存在
。这个 decision 问题(BN-MAP-DP)是 NP-hard 的,这导致 marginal 版本也是 NP-hard 的,事实上 marginal 版本在某种意义上更难一些,即是
-complete(这个大概的意思可以从这个 wiki page 上推测出来),更直接的证据是,即便是对 polytree,对应的 decision problem 仍然是 NP-hard 的。
为了更好地说明一些算法,我们可以先为一些这类问题里面的对应概念起个名字,比如 margin 可以对应于 max-margin:对应于给定部分变量后最大的概率(可以对一般的函数类似的定义)。利用 max-margin,我们也可以为 MAP 导出 variable elimination 算法(每次乘几个 factor,然后对某个变量取 max),这个流程和求 margin 的 VE 是完全一样的,影响该算法效率的也是对应 clique tree 的 width。MAP 里面需要的很多时候并不是“最大后验概率的数值”本身,而是随机变量的值,这个过程一般称为 decoding,如信息论/编码理论里面比较强调的解码就可以看成 MAP 的一种特例。decoding 一般有一个回溯的过程,也就是获得了最大值之后一个变量一个变量带回求得所有的赋值的过程。
对于 marginal MAP 我们往往需要先做求和获得 margin,然后在 margin 上重复以上过程。但事实上即便是形如 HMM 但是将生成观测部分的依赖关系反过来获得的 polytree 也会有 exponential time 求解 marginal MAP 问题的时间开销。
除了 belief propagation 可以沿用以外,belief update 的参数化也可以用在这里。为此我们首先引入 max-calibrated 概念,即两个 cluster graph 中 node 的 max-margin 在 sep set 部分的 max-margin 是 agree 的。事实上我们也只需要对原来的算法稍加修改(将 换掉,原先 sum 变成 max 即可),同时令人吃惊的是此时的 belief update 仍然能保证这个 parameterization 和原分布的 factor 乘积一致。这个地方我们知道其实是 tree 上做 dynamic programming 的一个例子,那么它也满足所谓的全局最优导致的局部最优,即 MAP 的解也能最大化每个 max-belief。
类似 BP 在有环的 cluster graph 上的应用,这里我们也可以将这类算法应用到该情况下的 MAP,这时收敛的解称为 pseudo-max-marginals。一般来说,尽管获得的解并非全局最优,但可以是 strong local maxima,因此仍然有较高概率(仍然是比较合理的解)。类似 Bethe energy approximation,这个算法也可以看成是某个自由能最大化对应 stationary point 求解 fixed point equation 的过程。
另一个有意思的视角是将 MAP 转换成为整数线性优化问题(integer linear programming),这个可以简单的将目标后验取 log,变成几个 factor 对数之和,那么为每个 factor 对应的表构造一个取值乘以 log 概率的和就能得到最原始的线性规划目标函数了,只是我们还需要 local 的赋值与其他的要 compatible,这就是约束,或者我们直接用无约束的形式也可以。这个 ILP 仍然是难的,常见的 relaxation 是将取值这个 函数变成
取值的,这就得到了 linear programming。往往在这种松弛下,我们需要额外的信息帮助我们剔出掉一些不合理的解。一种是在 energy 中的熵上乘以温度,当温度足够低的时候的解是我们需要的(可以理解成为一种 regularizer?)这个解释如果从 log 域转换回来,对应的是将 max-product 当做 sum-product 在温度足够低时的极限。
一种神奇情况下的解(精确解!),是对 pairwise Markov network 且变量取 0-1 值的情况,这时的 MAP 还能转换成为 graph cut从而可以被诸如 min-cut 算法获得精确解。这种情况可以用所谓的 submodular energy function 来定义,如果 ,这时每条边的 loss 其实是 log-linear model 的系数(诡异,后面看文献吧)。非 binary 的情况一般就变成难的问题了,常用的技术是 alpha-expansion 和 alpha-beta-swap。这块 mm 应该最熟悉了!
最后一系列解决方案是暴力的搜索,说是暴力其实也有一定的技巧比如 branch and bound、beam search 等等。下面是需要察看的文献:
- correspondence/data association:find a matching via graph cut or max flow,3D cell reconstruction,NIPS 2006
- mesh registration,NIPS 2004
- associative potentials,graph cut,CVPR 2003
- dual decomposition for MAP,好像这方面的资料挺多的,比如这篇 standord 的,MIT 的,Columbia 的和 CMU 的。这部分似乎书上没 cover?
——————
For Sarah conceived, and bore Abraham a son in his old age, at the set time of which God had spoken to him.
pgm10的更多相关文章
- ebe2
Email:kefu007@vip.qq.com 软件每天有更新.请用Ctrl+F键搜索您需要的软件..如果你找不到你需要的软件可以联系客户服务人员帮您找! 海拉之光LucidShape光学设计仿真分 ...
随机推荐
- ceph存储osd启动异常处理和正常启停操作
机器角色:cloudstack虚拟机的宿主机:ceph存储机器. 事件:ceph存储的物理机器由于内存异常,需要停机更换,仅仅是把该物理机上面的虚拟机迁移走,同时启动了停机维护,然后就直接关机.结果造 ...
- day08(补)
今日学习内容 1.文件重写方法 2.函数基本知识 文件处理: 打开文件 读/写文件 关闭文件 文件指针移动,只有t模式下的read(n),n代表的字符个数其余都是以字节为单位 f.seek有两个参数( ...
- 开关电源五种PWM反馈控制模式
开关电源五种PWM反馈控制模式 来源:--作者:--浏览:178时间:2016-08-10 14:18 关键词: 1 引言 PWM开关稳压或稳流电源基本工作原理就是在输入电压变化.内部参数变化.外接负 ...
- Eclipse安装Git插件(在线和离线)
在线安装: help-->install new software-->add location就是安装的地址:http://download.eclipse.org/egit/updat ...
- Huploadify V2.1+ SpringMVC上传文件的实现
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- scala学习——(1)scala基础(下)
(七)定长数组 val array_name = new Array[T](length) val array_name = Array("","") 通过() ...
- how2j 的shiro教程初探
教程案例里的mysql连接器只支持mysql,不支持mariadb,如果用的不是mysql,创建连接时会报错.
- 不再迷惑,无值和NULL值
在关系型数据库的世界中,无值和NULL值的区别是什么?一直被这个问题困扰着,甚至在写TSQL脚本时,战战兢兢,如履薄冰,害怕因为自己的一知半解,挖了坑,贻害后来人,于是,本着上下求索,不达通幽不罢休的 ...
- numpy 初识(一)
基本操作: 读取文件(与pandas读取csv相似): import numpy numpy.genfromtxt("word.txt", delimiter=',', dtype ...
- Unity光照与渲染设置学习笔记
学习了一下unity中有关光照和渲染的一些设置,现在才明白之前遇到的一些问题只是没有正确设置而已. unity不同版本的光照设置会有一些差异,而且可以调节的参数非常多,这里只记录一些重要的参数和使用方 ...