独立(Independence)

统计独立(Statistical Independence)

两个随机变量X,Y统计独立的条件是当且仅当其联合概率分布等于边际概率分布之积:

\[
X \perp Y \leftrightarrow P(X,Y)=P(Y) P(Y)
\]

思考:假设 \(X \perp Y\),\(Y \perp Z\),那么 \(X\) 和 \(Y\) 有没有独立关系呢?
举例:爸吃饭,奥巴马吃饭,妈吃饭

条件独立(Conditional Independence)

两个随机变量X,Y在Z的条件下独立的条件是当且仅当其条件联合概率分布等于条件边际概率分布之积:

\[
X \perp Y | Z \leftrightarrow P(X, Y|Z)=P(X|Z)P(Y|Z)
\]

仅知道 Z 就能够决定 X ,此时 Y 与 X (条件)独立

概率图模型(Probabilistic Graphical Models)

预备知识

对于 D 个 K 项随机变量:\(X_1, ..., X_D \quad X_i \in \left \{ 1, ..., K \right \}\)
边际(Marginal):
\[
P(X_{1:i-1,\ i+1:D})=\sum_{X_i}P(X_{1:D})
\]
链式法则(Chain Rule)求联合分布
\[
P(X_{1:D})=P(X_1)\prod_{d=2}^{D}P(X_{d}|X_{1:d-1})
\]

计算联合分布时浮现的问题

计算该分布共需要 \(O(K^D)\) 个参数(即概率)!

  • 推断:推断时计算量太大
  • 学习:学习这么多参数需要大量数据

想法:使用条件独立化简模型

有向图与无向图模型(Directed Graph and Undirected Graph Model)

图模型(Graphical Model)是一种能够通过条件独立假设来表达联合分布的方式

  • 更高效的参数化(Parameterization)
  • 更高效的推断(Inference)

\[
P(X_{1:D})=P(X_1) \prod_{d=2}^D P(X_{d}|X_{d-1})
\]

直观解释:要预测某个随机变量的值,只需要那些与之相关的变量。

有向图模型(Directed Graphical Model)

  • DAG -- 有向无环图(Directed Acyclic Graph)
  • 用局部条件分布的乘积来表示联合分布
  • 条件已经规范化
  • 也叫贝叶斯置信网络(Bayesian Belief Network)

关键性质

顺序马尔可夫性质(Ordered Markov Property):节点仅取决于直接父节点,即
\[
X_i \perp X_{pred(i)\setminus parent(i)} | X_{parent(i)}
\]

无向图模型(Undirected Graphical Model)

...

图模型的主要任务(Main Tasks in Graphical Models)

有向图模型的条件独立(Conditional Independence in Directed Graph Model)

条件独立和 D-separation

D-separated Path 是指由一系列包含 Evidence 的节点集合 E 组成的路径 P 满足以下至少一个条件:

  • P 构成一条链结构:\(s \rightarrow m \rightarrow t\) 或 \(s \leftarrow m \leftarrow t\),其中 \(m \in E\)
  • P 构成一个峰结构:\(_s \swarrow ^m \searrow _t\),其中 \(m \in E\)
  • P 构成一个谷结构:\(^s \searrow _m \swarrow ^t\),其中 \(m\cup descendant(m) \notin E\)

此时,我们用 E 将节点集合 A,B 分隔开了。
同时,A 和 B 在 E 的条件下独立:\(A \perp B\ |\ E\)
因此,我们找到了在 DAG 中对应于条件独立的性质 -- D-separation

贝叶斯球算法(Bayesian Ball Algorithm)

Bayesian Ball Algorithm 是一种判断 A B 在 E 下是否条件独立的简单算法。

步骤如下:

  1. 标记所有 E 中的节点表示其为观察值(Evidence);
  2. 在 A 中的每个节点放“球”,让它们以一定规则“弹射”(无视图中边的方向);
  3. 检查“球”是否进入了 B 中的节点。

“弹射”规则:

  1. 碰到链结构峰结构中会被“弹回”;
  2. 碰到谷结构会被“弹回”(注意:谷结构的“谷底”节点不是 Evidence)。
    直观解释:谷结构中,两个父节点在共同子节点的条件下,两父节点相关(不独立)。这种现象被称为“explaining away”。例如,抛两枚硬币的先验是相互独立的。而当我们观察到正面硬币的个数时,概率被耦合起来了(正面朝上的硬币个数是1,有1枚硬币正面朝上,则另外1枚硬币必然反面朝上)。

变量消除与精确推断(Exact Inference via Variable Elimination)

  • 运用统计独立拆分联合分布
  • Push sum into products(Key idea of Variable Elimination)
  • Elimination Order:优先清除连接边数最少的节点

联合树算法(Junction Tree Algorithm)

Moralization

将有向图模型(DGM)转化为无向图模型(UGM)时需要的一种方法,任何 share 同一子节点的父节点们必须加一条边接通(教化:未婚先孕必须马上结婚?)
目的:保证 DGM 和 UGM 在条件独立上的对应性

Triangulation

先介绍一个重要概念:弦图(Chordal Graph)

若某图(graph)中所有拥有4个及以上节点的环(Cycle)都有弦(chord),则称该图为弦图
其中,弦不是环的一部分,但连接环中任意两个节点。

步骤

(实质上就是 variable elimination 算法)

  1. 根据 elimination order 确定要消除的节点 N;
  2. 添加 fill-in edges:节点 N 的所有 neighbor 要互相连接,以确保相关性信息不会被同时清除;
    同时,保存节点 N 及其 neighbor 构成的 clique;
    注意:如果给的图模型已经是弦图,可以证明步骤2能够被跳过。
  3. 删除该节点 N。

Triangulation 完成后,我们必定会得到一个弦图。

建立 Junction Tree

找出 Triangulation 步骤中保存的所有 cliques 中的 maximal cliques,则这些 maximal cliques 就可以被拿来构成junction tree(也称为 clique treecluster tree

Junction Tree 的树节点(即 clique,又叫 cluster)之间的边是不同树节点中的图节点的交集来标记的;
交集表示这些树可以通过这些图节点交换信息。

Running Intersection Property

如果某个图节点 \(N \in C_i\) 且 \(N \in C_j\)( \(C\) 表示 clique),则 \(N\) 一定包含在 \(C_i\)、\(C_j\)之间路径上的所有 cliques 里面。

Junction Tree 一定满足 RIP,因为 VE 算法中一个图节点存在于 clique 的时间是从出现到直到被消除。

可以证明,如果一棵树满足 RIP,对该树做BP,就会得到我们需要的结果。

Junction Tree 也可以被推广为 Cluster Graph;


Written with StackEdit.

Exact Inference in Graphical Models的更多相关文章

  1. 图模型的统计推断 inference in graphical models(马尔科夫链的推断)

    有关因子图(factor graphs)以及其在sum product 算法,max-algorithm中的应用,将在一下篇博客中分享. 谢谢您的关注,欢迎提出意见问题.

  2. 深度学习基础 Probabilistic Graphical Models | Statistical and Algorithmic Foundations of Deep Learning

    目录 Probabilistic Graphical Models Statistical and Algorithmic Foundations of Deep Learning 01 An ove ...

  3. Probabilistic Graphical Models

    http://innopac.lib.tsinghua.edu.cn/search~S1*chx?/YProbabilistic+Graphical+Models&searchscope=1& ...

  4. 贝叶斯网络基础(Probabilistic Graphical Models)

    本篇博客是Daphne Koller课程Probabilistic Graphical Models(PGM)的学习笔记. 概率图模型是一类用图形模式表达基于概率相关关系的模型的总称.概率图模型共分为 ...

  5. [Bayesian] “我是bayesian我怕谁”系列 - Exact Inference

    要整理这部分内容,一开始我是拒绝的.欣赏贝叶斯的人本就不多,这部分过后恐怕就要成为“从入门到放弃”系列. 但,这部分是基础,不管是Professor Daphne Koller,还是统计学习经典,都有 ...

  6. 使用 LaTeX 绘制 PGM(Probabilistic Graphical Models)中的贝叶斯网络(bayesian networks)

    Software for drawing bayesian networks (graphical models) 这里需要调用 latex 中的绘图库:TikZ and PGF. 注意,下述 tex ...

  7. PRML读书会第八章 Graphical Models(贝叶斯网络,马尔科夫随机场)

    主讲人 网神 (新浪微博: @豆角茄子麻酱凉面) 网神(66707180) 18:52:10 今天的内容主要是: 1.贝叶斯网络和马尔科夫随机场的概念,联合概率分解,条件独立表示:2.图的概率推断in ...

  8. [Machine Learning] Probabilistic Graphical Models:一、Introduction and Overview(1、Overview and Motivation)

    一.PGM用来做什么 1.  医学诊断:从各种病症分析病人得了什么病,该用什么手段治疗 2.  图像分割:从一张百万像素级的图片中分析每个像素点对应的是什么东西 两个共同点:(1)有非常多不同的输入变 ...

  9. [PGM] What is Probabalistic Graphical Models

    学术潜规则: 概率图模型提出的意义在于将过去看似零散的topic/model以一种统一的方式串联了起来,它便于从整体上看待这些问题,而非具体解决了某个细节. 举个例子:梯度下降,并非解决神经网络收敛问 ...

随机推荐

  1. 用HTML编写迪士尼乐园页面

    <!DOCTYPE html><html xmlns="http://www.w3.org/1999/html"><head lang="e ...

  2. UCanCode发布升级E-Form++可视化源码组件库2018全新版 !

    2018年. 成都 UCanCode发布升级E-Form++可视化源码组件库2018全新版 ! --- 全面性能提升,UCanCode有史以来最强大的版本发布! E-Form++可视化源码组件库企业版 ...

  3. Enable directory listing on Nginx Web Server

    1:Test environment [root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core ...

  4. JavaScript 时间对象 date()

    getYear() 获得的是距离1900年过了多少年 var d = new Date(); document.write(d+"<br />"); document. ...

  5. JSP工作流程

    情况1:第一次请求一个页面 情况2:该页虽然是再次请求,但已经过修改 情况3:该页面是再次请求且未被修改

  6. 【Flume】数据采集引擎Flume

    一.概述 flume是一个高效的.可靠的.可用的分布式海量日志数据收集.聚合.传输的工具. Flume is a distributed, reliable, and available servic ...

  7. python3 package management 包管理 实例

    包是一种组织管理代码的方式,包里面存放的是模块 用于将模块包含在一起的文件夹就是包 包内包含__init__.py标志性文件 定义一个学生类,一个sayhello函数,一个打印语句 # p01.py ...

  8. Python之函数装饰器

    在实际中,我们可能需要在不改变函数源代码和调用方式的情况下,为函数添加一些新的附加功能,能够实现这种功能的函数我们将其称之为装饰器.装饰器本质上其实还是是一个函数,用来装饰其它函数,为函数添加一些附加 ...

  9. (数据科学学习手札43)Plotly基础内容介绍

    一.简介 Plotly是一个非常著名且强大的开源数据可视化框架,它通过构建基于浏览器显示的web形式的可交互图表来展示信息,可创建多达数十种精美的图表和地图,本文就将以jupyter notebook ...

  10. LeetCode初级算法的Python实现--排序和搜索、设计问题、数学及其他

    LeetCode初级算法的Python实现--排序和搜索.设计问题.数学及其他 1.排序和搜索 class Solution(object): # 合并两个有序数组 def merge(self, n ...