pgm8
前面的近似策略是寻找了 energy functional 的近似,该近似导致了 LBP,这使得 message passing 的算法不变。近似使用 I-projection,尽管这个一般说来并不容易得到解,但是给出了 partition function 的下界。这部分我们讨论的第一个策略是尽量保持目标函数不变,而在更新的时候使用近似的消息。
这个想法来自这样一个观察:如果我们用消息的 M-projection,比如离散变量情形,如果假定了近似分布是 factorized,我们根据前面的结论就知道这相当于要求在这些 margin 上近似分布与 message 相同。咋一看 M-projection 似乎使我们得到了更好的算法(因为有解析解了),但是问题是我们在原分布上做 inference,这些边际分布往往是 intractable 或者未知的。但是这里的 trick 就是如何 decompose 原来的 graph,如果我们得到的两个子图仍然具有比较复杂的结构,那么计算 message 就会比较麻烦(因为需要 marginalize 掉一些变量),但是如果我们让这些子图都是简洁的 tree 这种,我们可以直接用 BP 就能快捷的计算出来需要的 margin 了,这意味着这时的近似消息成为了可能!这样我们的基本思路就是沿用 LBP 的框架,将消息替换成为 M-projection 获得的简化版本。
对 message passing 的另一种参数化,即 belief update 而言,对精确的情形我们有 ,我们前面的想法等价于寻求这个比值的 M-projection。另一种思路是我们寻求
的 M-projection,记为
,然后用
,这个方法有一个奇怪的特点是
的消息依赖了
的消息,这是近似上的一种 tradeoff,能让近似更关注“更相关”的区域。这导致了一类所谓 expectation propagation 的算法(EP)。这是对 belief update 的修改,此时不仅仅保存一份
而是两个方向都有保存。
为了能够方便的计算我们的 approximate message,我们将候选的近似分布选择为指数族,事实上指数族的 M-projection 导致了 moment matching 这个要求:以上方法我们首先需要为 belief 获得近似,通过指数族的 sufficient statistics 上的 matching(如果我们能能算,否则 EP 就不能用,如 MRF),我们就可以得到 ,另一方面我们因为 message 也是 exponential family,我们有
EP 有一个问题是对 BN 很多时候可以获得合适的 M-projection,但是更新的策略却往往无视了参数空间的约束,这导致 EP 迭代中可能获得非法参数,某些问题中这可能导致严重的后果。
那么 EP 对应于一个什么样的优化问题呢?从某个角度我们很容易发现,那就是以上更新公式将参数放在一起
这等价于要求两侧的矩 matching,而不是原先的分布是 consistency 的:
而与前者一样使用的都是近似的 energy functional。我们对这个问题使用 Lagrange multiplier 就可以证明,EP 的消息传递等价于对应的 fixed point equation 的迭代。
正是由于这个方法使用了近似的消息,我们无法保证其收敛性,这也是它与后一种方法(structured variational approximation)的重要区别。这里我们将近似函数族选的足够的简单,使得上面的 inference 非常容易,常见的选择就是让这个部分 factorized 足够厉害,当然这表示近似分布的表述力也会比较有限,然而我们得以可以优化精确的 free energy(也是 I-projection)。
那么这种想法最极端的形式(mean field approximation)就是将近似分布选择为完全独立的情况,此时自由能中 factor 部分成为 ,对应的熵部分可以完全解耦。此时我们写出来的 Lagrange multiplier 然后类似写出 fixed point equation 得到如下的解
这导致了很简洁的更新方式,每次固定其他的更新某一个 ,这等价于 coordinate ascent,因此我们可以证明这个方法不仅收敛,而且收敛于某个 stationary point。这是比 EP 更优越的分析性质。
完全独立便于推导,但是其表述能力比较有限,比较自然的想法就是 decompose 的时候不要那么彻底,而是保留些结构(与 EP 在这方面的想法类似)。这时,我们假定有一个我们设定的分解记为 ,这时候的形式比单变量稍微繁复一些:
同样我们可以获得类似的算法和证明收敛性。另外有一些关于简化 MRF 分解的东西后面再仔细看看吧。
另外一种策略是使用 local variational bound。这就是为我们 maximize 的 objective function 找到合理的下界,这样我们通过 optimize 一个更简单的目标函数得以最大化目标函数的下界。常用的 lower bound 就是通过凸函数的 Legendre-Finchel 变换后获得的界(往往是在 local 区域逼近较好)进行优化(调整 variational parameters)。
最后想谈一下与 PRML 在这方面的比较。读书笔记节选的七和八对应于 PRML 中第八章和第十章,很显然 PRML 对 exact inference 讲的比较详细,更侧重于“过程”,PGM 这部分更偏重理论;对于 LBP,PRML 仅仅一带而过。PGM 将几种近似的策略从优化的角度完美的统一了起来,进行了细致的区分,每种算法都可以用 stationary point 处满足的 fixed point equation 获得迭代的算法,这的确是比 PRML 上通过一些具体例子讲的更加理论和清晰。总体感觉来说 PRML 将几种解决问题的思路与一些具体的例子(特别是 machine learning 里面常见的例子)结合的比较清楚,特别是一些连续变量的情形,这方面我觉得需要在看完 PGM 后重新认识一下,推导一下。
——————
And Abimelech took sheep, and oxen, and menservants, and womenservants, and gave them to Abraham, and restored him Sarah his wife.
pgm8的更多相关文章
- JMeter中的关联-正则表达式提取(2)
JMeter获取正则表达式中的提取的所有关联值的解决方法: 需求如下: { : ", : "results": : [ : : { : : : "total_e ...
- uva 10562 undraw the trees(烂题) ——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABB4AAAM9CAYAAAA7ObAlAAAgAElEQVR4nOyd25GsupKGywVswAV8wA ...
- Jmeter正则表达式提取器二(转载)
转载自 http://www.cnblogs.com/qmfsun/p/5906462.html JMeter获取正则表达式中的提取的所有关联值的解决方法: 需求如下: { : "error ...
随机推荐
- GrowingIO接入SDK简介
安装使用文档逐步操作 准备工作: 1.注册一个GrowingIO账号 2.申请一个域名(注意:不能是ip或host) 登陆gio平台: 1.安装SDK 2.根据项目选择对应的sdk:js,安卓,ios ...
- 使用Android绘图技术绘制一个椭圆形,然后通过触摸事件让该椭圆形跟着手指移动
引言:在图形绘制中,控制一个图形(圆形,椭圆形,矩形,三角形)移动时,其实计算的都是该图形的中心点移动.在绘制过程中,首先计算出中心点,然后根据中心点的位置计算重图形的上下左右位置.我们假设图形左边为 ...
- ASP.NET Response.Redirect 丢失 Session的问题(作废,仅供参考)
以前在做ASP.NET开发时一直没注意到一个问题,就是广泛使用的Response.Redirect方法并不会将服务器端在Response中新增或修改的Cookie返回给客户端浏览器,而网站的Sessi ...
- SonarQube配置LDAP认证集成
1.准备工作 获取LDAP服务信息.admin账号.安装sonarldap插件. 2.LDAP配置 #LDAP settings #admin sonar.security.realm=LDAP ld ...
- 网络对抗技术 2017-2018-2 20152515 Exp3 免杀原理与实践
基础问题回答 (1)杀软是如何检测出恶意代码的? 答:分析恶意程序的行为特征,分析其代码流将其性质归类于恶意代码. (2)免杀是做什么? 答:一般是对恶意软件做处理,让它不被杀毒软件所检测,也是渗透测 ...
- 在sourceinsight中添加快速注释 Ctrl+/
1.搜索文件:utils.em(C:\Program Files (x86)\Source Insight 3)2.用sourceinsight打开文件:utils.em3.在文件末尾添加下面代码 m ...
- mount命令详解及常见问题汇总
一 .mount命令(用来挂载硬盘或镜像等) 用法:mount [-t vfstype] [-o options] device dir1.-t vfstype 指定文件系统的类型,通常不必指定.mo ...
- Configuration Section Designer for VS2017
Configuration Section Designer是在Visual Studio中设计符合.Net配置体系配置文件和代码的神器.然而,它的源码已经很久不维护了.现在在新的VS2017中无法使 ...
- UE4添加植被Foliage Type
在UE4中的地形渲染上不可避免的需要添加植被,而如果采取手动添加StaticMesh植被的方式则会浪费大量的时间精力. UE4提供了一种批量添加地面植被类型的方式Foliage Type.在编辑器内容 ...
- kudu 存储引擎简析
本文由 网易云发布. 1 概述 本文主要介绍kudu底层存储引擎的数据组织方式,先看整体结构如下: 一张表会分成若干个tablet , 每个tablet 包括MetaData 元信息及若干个RowS ...