MRF 笔记

我们先讨论引入 MRF 的必要性。经典的例子就是四个 r.v.s 连成一个正方形的结构的时候,我们没法通过 BN 获得给定对角线两个 r.v.s 而剩下的条件独立(不都是 d-sep),反过来如果希望通过 MRF 刻画某些 BN 也是不可行的,经典的例子就是 inter-causal reasoning 的情形,因为给定中间的节点后必然独立。MRF 与 BN 相比,更加不直观一些,其参数化使用的是 factor 而不是 CPD 这种比较容易理解的概念,事实上 MRF 的 training 也比 BN 复杂。

我们首先从 GRF 开始,所谓 Gibbs random fields 是指存在一组 factor 使得

为了将此分解与 graph 联系起来,我们为每个 创建一个完全子图,这些完全子图的并作为一个无向图。我们引入 reduce 这个概念,就是给定一些 r.v. 后对应的 GRF 称为一个 reduce GRF。

类似于 BN 我们可以定义 global Markov independencies:如果给定 后不存在从 的路径则 。我们可以容易证明 GRF蕴含着 global Markov independencies:如果我们选择的 ,这个就很容易证明,因为一个 clique 或者出现在 或者出现在 ,这样我们的 factor 就能分为两组,其中一组 clique 只跟 有关,另一组只跟 有关,这样很自然就有条件独立性了;如果并集不是全部的 r.v.s 也不要紧,我们总可以用 将这部分分离,一部分和 并起来,一部分和 并起来(否则与分离性矛盾),这两部分条件独立,所以能导致 。证明 completeness 需要使用构造性,由于存在一条连接两者的路径,我们可以选择最短的,然后对这条路径上的 clique potential 做手脚:如果两个路径上顶点值相同则取某个很大的值 ,否则为 1,这样可以证明两者并不独立。

除了 global Markov independencies 以外,我们还可以定义两种:

  • local Markov independencies:一个 node 与非相邻 node 在给定其 neighbors 时条件独立
  • pairwise Markov independencies:任意两个不相邻顶点在给定其他节点时条件独立

我们可以证明 local Markovian 蕴含着 pairwise Markovian:直接套定义;GRF 可以诱导 local Markovian:把 factor 分为含有给定点的和不含的然后用 local Markovian 的定义就发现独立性了;对正分布而言,pairwise Markovian 蕴含着 Global Markovian:这个证明可以用归纳法,从 的大小为 开始,这时候显然成立;那么对于更小的情形我们需要从某个至少含两个的集合里面取一个出来(保证两部分都是非空的),这样两部分分别与 并之后能利用归纳假设由于有 separability 得到分别的独立性,这样根据正概率的 intersection 性质可以得到独立性;其他情况需要另想办法。这样我们可以证明对正概率情形,GRF、global Markovian、local Markovian 和 pairwise Markovian 是等价的。

对于 minimal I-map 问题,一种方式就是将 pairwise Markov independencies 列出来,所有不满足这个 assertion 的肯定有边。另一种策略是使用 local Markovian,取最小的 Markov blanket。我们可以证明这俩做法都获得的是唯一的最小的 I-map。

下面我们讨论 parameterization 的问题。使用 GRF 的问题是 clique 的参数个数随着 clique 元素增多而指数的变化,这导致一定的不变。另一种做法是通过 factor graph(每个 factor 对应一个 node,如果某个 node 在某个 clique 里面就连边,这样得到一个二分图)。我们可以为每个 factor 引入指数的表示形式(因为正的),而我们同时可以为 factor 引入所谓的 feature(在那组 r.v.s 上的函数),通过 feature 就能降低 parameterization 的代价了,通常这会引入所谓的 log-linear model。比如 logistic regression/CRF,另外有二阶的,比如 Boltzmann machines。常用的一些 parameterization 的策略包括 caninical parameterization,这时为所有的 clique 都分配对应的 potential function,另一种思路是从 feature 入手,寻找 non-redudent features,然后决定参数。

接下来讨论一下 BN 与 MRF 之间的关系。

我们可以把 CPD 看成时 factor,这样我们就能从形式上把 BN 转换成为 MRF,只是此时的 independency assertion 并不一样,为此我们引入 moral graph 的概念:如果两个随机变量存在有向边则转换成无向边,如果有 common effect 也加无向边。这时两者的 I-map 是一样的,且是最小的,也是 perfect 的。另外一个重要的结论是可以利用 moral graph 证明 d-seperation 的合理性。

如果反过来,这个过程却很难,可以证明,如果某个 BN 是某个 MRF 的 minimal I-map,那这个 BN 就没有 immoralities(v-structure 里面 prior 之间都有边)。事实上,这个图也有特殊的性质,我们称为 chordal,这个将 BN 转换为 MRF 过程称为 triangularization。对于 non-chordal MRF 来说没有 BN 与其等价,因此必须通过 triangularization 加边,成为 chordal MRF 后才能构造对应的 BN:所谓 chordal graph 就是 cycle 长度不超过 3。

最后讨论一些关于 partially directed models。比较经典的例子是 CRF:CRF 本质上是一个 MRF,但是我们关心的是 ,我们往往会关心 chain 结构的 CRF,这个在后面我们会详细的讨论。

——————
And it came to pass, when God destroyed the cities of the plain, that God remembered Abraham, and sent Lot out of the middle of the overthrow, when he overthrew the cities in the which Lot dwelled.

pgm2的更多相关文章

  1. 实战--利用Lloyd算法进行酵母基因表达数据的聚类分析

    背景:酵母会在一定的时期发生diauxic shift,有一些基因的表达上升,有一些基因表达被抑制,通过聚类算法,将基因表达的变化模式聚成6类. ORF Name R1.Ratio R2.Ratio ...

  2. CSS3知识之立方体动画效果

    效果图:

  3. 《深入理解java虚拟机》笔记(1)运行时数据区域

    1.Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来. 2.运行时数据区域划分 java虚拟机在执行java程序的过程中会把它所管理的内存划 ...

随机推荐

  1. Fiddler-http检测调试工具

    Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大 ...

  2. shell杂记

    (本文将持续更新)从2015年9月25日开始正式学习linux类的东西. 书籍入门:UNIX.Shell编程24学时教程(中文版).Linux与UNIX Shell编程指南.shell十三问.LINU ...

  3. JQuery radio单选框应用

    转载:JQuery判断radio(单选框)是否选中和获取选中值方法总结 一.利用获取选中值判断选中 直接上代码,别忘记引用JQuery包 复制代码 代码如下: < !DOCTYPE html P ...

  4. 「PKUSC2018」最大前缀和 LOJ#6433&BZOJ5369

    分析: 这个题非常的棒,目测如果去了能AC... 我们考虑一个序列是如何构成的——一个后缀>0的序列,和一个前缀<0的序列 问题可以简化为求出当前缀和为状态S的所有数的和的时候,S满足后缀 ...

  5. C++STL之Vector的应用

    这是我第一次写博客,请多指教! vector是一种向量容器,说白了就是可以改变大小的数组. vector是一个模板类,如果直接这样会报错: vector a; //报错,因为要指定模板. 需要像这样: ...

  6. Python3入门(三)——Python基础语法

    一.基本语法 1.行和缩进 Python中,不使用括号来表示代码的类和函数定义块或流程控制. 代码块是由行缩进,缩进位的数目是可变的,但是在块中的所有语句必须缩进相同的量. 如下所示: a = 100 ...

  7. jq 在字符串中,去掉指定的元素

    例: var arr= ["4.5岁", "3.5岁", "5.5岁", "5岁", "4岁"] v ...

  8. python中的-1

    -1单个使用时表示最后一个: >>> [1,2,3,4][-1] 4 表示范围(区间)时,因为是开区间表示方法,如[0:2]是不包括2的所以 [0:-1]只能访问到倒数第二个(不包括 ...

  9. 使用nginx很卡之strace命令

    一.strace命令常用参数 strace -tt -T -v -f -e trace= -p -tt 在每行输出的前面,显示毫秒级别的时间 -T 显示每次系统调用所花费的时间 -v 对于某些相关调用 ...

  10. 《Effective Java》学习笔记 ——异常

    充分发挥异常的优点,可以提高程序的可读性.可靠性和可维护性. 第57条 只针对异常的情况才使用异常 第58条 对可恢复的情况使用受检异常,对编程错误使用运行时异常 * 如果期望调用者能够适当的恢复,使 ...