概率图模型(03): 模板模型(动态贝叶斯, 隐马尔可夫和Plate模型)

版权声明:本文为博主原创文章,未经博主许可不得转载 https://blog.csdn.net/thither_shore/article/details/52268772

模板模型(DBNs, HMMs 和 Plate Model)——基于时序或对象关系的建模


  本博客中 PGM 系列笔记以 Stanford 教授 Daphne Koller 的公开课 Probabilistic Graphical Model 为主线,并参阅 Koller 著作及其 翻译版对笔记加以补充。博文的章节编号与课程视频编号一致。
   博文持续更新(点击这里系列笔记目录页),文中提到的资源以及更多见 PGM 资源分享和课程简介

1. Overview of Template Models

  模版模型(Template Models),编码了具有重复结构共享参数的模型。它是对图模型更加紧凑的描述方式,可以应用于无限大的贝叶斯网络,主要包括模板变量(Template Variables)和语言(Language)。模版变量是图模型中多次被实例化的变量(is instantiated / duplicated multiple times),例如多个学生的智商、多门课程的难度。模版模型语言描述了模版变量如何从模版中继承依赖关系。典型的 Template Models 可以描述两种类型的模型:

  1)时序过程上的重复(Temporal Models): 动态贝叶斯模型(DBN)、隐马尔科夫模型(HMM)
  2)对象关系上的重复(Plate Models): 有向或无向

  那么接下来,首先看看为什么引入 Template Models?

1.1 模板模型的引入

  我们之前介绍的例子都可以看做是“variable-based”的,那么什么是 variable-based1

1.1.1 基于变量的模型

  概率图模型(贝叶斯网 or 马尔可夫网)描述的是一个固定集合上随机变量的联合分布(a joint distribution over a fixed set X of random variables),例如一个基于几个科目成绩来衡量一个学生表现优异程度的体系,一个基于病人的各种症状进行判断疾病类型的医疗诊断。
  我们看到,这两个例子中,一个概率图可以应用于不同的 case 中,这些 case 有着相同的结构(share the same general structure),即一组相同的固定变量,比如“几个科目成绩”和“各种症状”。构建模型的区别只是在于不同的 case 中变量的取值不同(share the same general structure)。比如用于不同的学生课业成绩不同,不同病人症状不同。所以决定两个模型(参数)的不同的是每个 case 中变量的值( the focus of the representation is a set of random variables),故称为”variable-based”.

1.1.2 无法基于变量建模例子

  但某些问题无法确定一些固定的变量用于构建模型(relates to a much more complex space than can be encoded as a fixed set of variables ),比如当我们想要表示一个系统基于时间序列的概率分布(distributions over systems whose state changes over time)时。举两个两个例子

1)当我们监护重症病人时,我们希望定期获得自传感器采集的数据(sensor readings)——心率、血压和EKC,并且希望随时掌握患者状态(track the patient’s state over time)。
2)我们希望追踪一个在现实世界中移动且收集观察结果的机器人的位置,我们希望得到一个可应用于不同轨迹(different trajectories)的模型。

  上图中谈到的例子的共性在于

我们希望构建一个单一且紧凑single and compact)的模型,为相同类型的一整类分布提供模版(template: 不同长度的运动轨迹,或者不同的谱系(trajectories or different pedigrees )。

  为了克服现实世界中很多不确定问题,比如变量太多,变量之间关联过多,扁平化CPD表示方法不适用等 ,我们引入“Template-based”的模型,编码具有重复结构和共享参数的模型。

1.2 模板模型的简述

1.2.1 模板模型例子2

  以下加粗的各变量都称为模板变量蓝色表示某个模板变量的实例化。板变量在模型中多次被实例化。所谓实例化,比如例 (4) 中机器人的位置记作 Location 变量,那么它在时刻 t 的取值 Location(t) 就是该变量在时刻 t 的一个实例化。

  • Plate Modeling

  (1) 在家族基因遗传中,一个人的表现型(Phenotype)都依赖于这个人的基因型,而其基因型(Genotype)又依赖于其父母的基因型
  (2) 在图像分割中,每一个超级像素与该其所在分类之间存在一种联系,这种联系需要基于周围的超级像素来建模。
  (3) 在学生示例中,对于一个学生某门课程成绩分别依赖于该学生的智力以及所选课程的难度
这里写图片描述

  • Temporal Modeling

  (4) 动态机器人位置识别中,每一个时间点的位置依赖于之前的位置以及当前控制信号,并决定感应器观察的结果。

1.2.2 两种模板模型

  模板模型可以用紧凑的方式描述两种类型的情况:
  1)时序过程上的重复(Temporal Models): 动态贝叶斯模型(DBN)、隐马尔科夫模型(HMM);
  2)对象关系上的重复(Plate Models): 有向或无向。

The first is temporal modeling, where the language of dynamic Bayesian networks allows us to construct a single compact model that captures the properties of the system dynamics, and to produce distributions over different trajectories.

The second, plate modeling, involves domains such as the Genetics example, where we have multiple objects that are somehow related to each other. Here, various languages have been proposed that allow us to produce distributions over different worlds, each with its own set of individuals and set of relations between them.

2. 动态贝叶斯网 ( 时序模型 )

  这部分讨论时序模型中的动态贝叶斯网络模型(Temporal Models - DBNs)。

2.1 时序模型

  时序模型关注动态环境,根据系统状态建模(System State)。

2.1.1 模板变量与其实例化

  • 模板变量 ( Template Variable ): 是描述系统状态的变量,会被反复实例化;
  • 实例化(Instantiation): 变量 Xi 的实例化(Instantiation)指其在特定时刻的取值 X(t)i .

  假设系统状态可用某个随机变量集合 X 中变量的赋值来表示。令变量 Xi 在时刻 t 的取值 X(t)i 为其在时刻 t 实例化(Instantiation)。注意 Xi 本身不再是某个值的变量,而是一个模板变量 ( Template Variable )。这些模板变量在不同的时刻 t 被实例化,并且每个 X(t)i Val(Xi) 中取值的一个随机变量。对变量集 XX ,用 Xt1:t2(t1<t2) 表示变量集合 {Xt:t[t1,t2]} 。通常用 x(t:t') 表示对这个变量集合的值的一个赋值。

2.1.2 与轨迹

  • 轨迹(Trajectory): 表示系统状态的变量集 X 在时间 t 上的投影。

每一个“可能的世界”在概率空间成为一条轨迹 X(t:t)={X(t),...,X(t),} ,我们关心的问题是:如何在这条轨迹上表示联合分布distributions over trajectories)概率 P(X(t:t)) ?

  为了所有可能轨迹组成复杂概率空间上描述分布,我们需要引入一些简化假设

2.2 基本假设

2.2.1 时间片段化

  • 时间片段:将时间轴离散化为一组时间片段(time slice),系统状态在间隔(time granularity)为 Δ 的规则区间上测定。

  该假设将定义在连续随机变量上的分布问题,简化为在离散区间上采样的可数个随机变量上定义的分布问题。即有系统状态在时间 t=0,...,T 上轨迹的联合分布概率

式 (1) : P(X(0:T))=P(X(0))t=0T1P(X(t+1)|X(0:t))

2.2.2 无后效性-马尔可夫假设

  轨迹上的分布时条件分布的乘积,这里一种引入条件独立性假设。

  • Markov Assumption:在给定现在的条件下,未来与过去独立。

  用形式化语言可表述为 (X(t+1)X(0:(t1))|X(t)) ,即系统未来状态仅与当前状态有关,与过去无关。式 (1) 可以简化为

式 (2) : P(X(0:T))=P(X(0))t=0T1P(X(t+1)|X(t))

  满足 Markov Assumption 的系统为 Markov System.

2.2.3 时不变性-转移模型

  • 转移模型(Transition Model): 转移模型 P(X|X) 用来描述马尔可夫过程的状态转换概率。
  • 时不变性(Time Invariance): 状态转移概率与时间无关。

  时不变性也称作时齐性,或平稳性。满足时不变性的马尔可夫动态系统成为平稳(stationary)的,它可以用转移模型 P(X|X) 来描述,即对于任意 t0, P(X(t+1)=ξ|X(t)=ξ)=P(X(t)=ξ|X(t1)=ξ) .

2.2.4 修正假设的不合理性

  马尔科夫假设和时齐性假设太强,实际常不合理,可以通过2种手段修正3
  1)增加描述状态的变量;
  2)增加与之前状态的相关性(半马尔科夫模型)。

2.3 模板转移模型 ( 2-TBN)

  时序模型中,相邻的时间片段(time slice)间的关系由模板转移模型表示。这个模板转移模型(template transition model)就是一种模板

2.3.1 汽车监控例子

  先来看一个汽车监控的 2-TBN 例子。假定系统动态用下图所示的模型表示,当前的观依赖于汽车的位置(L’) 和传感器的错误状态(F’) 。传感器在不好的天气(W)更易发生故障。而且汽车的位置依赖于先前(L)的位置和速度(V)。
这里写图片描述

  例中 t+1 时刻的部分变量依赖于 t 时刻的变量,可能是只依赖与 t 时刻所对应的变量,也可能依赖于 t 时刻的多个变量,同时可能存在部分变量只依赖于处于同一时间片的变量。他们间的独立关系见图中红笔标记。

  例中这个系统的初始状态是怎样的?
这里写图片描述

2.3.2 形式化表示

  现在给出模板转移模型的定义:

  • 2-时间片段贝叶斯网 ( 2-BTN ) : 在描述系统上一状态的变量集合给定的条件下,描述当前状态的变量集合上的条件贝叶斯网络是 2-TBN.

  • 界面变量(Interface Varibale):指那些在 t 时刻的值对 t+1 时刻的值有直接影响的变量。

  2-TBN 是一个只含有2个时间片段的动态贝叶斯网络。因为例中假定给定其他变量时,传感器在每一时间点上的观测独立产生,所以除了观测变量之外,所有变量都是界面变量。例中的两个时间片段间有这样几种边:

  • 时间片间的边(Inter-time-slice Edge):表示了不同时间片之间的变量的依赖关系。
    • 持久边(Persistence Edge): 形如 VV .
    • 其他:形如 VL .
  • 时间片内的边(Intra-time-slice Edge): 表示了时间片之内的变量的依赖关系,形如 LO .

总之, 对于 X 上的系统,设 XI 为其界面变量,2-TBN 表示如下条件分布

P(X|X)=P(X|XI)=i=1n(Xi|PaXi)
每个模板变量 Xi ,CPD P(Xi|PaXi) 是一个 模板因子,对于多个 X(t)i 以及他们的父节点会在模型中多次被实例化。

2.4 动态贝叶斯网络

  用 2-TBN 的规则继续在更多的时间片段上展开,即时间片内变量与时间片内变量的 CPD 分布一致,时间片之间变量关系一致,我们得到动态贝叶斯网络模型。继续刚刚汽车监控的例子,它在三个时间片段上产生的展开 DBN 的基础贝叶斯网络(Ground Beyasian Networks)如下:
这里写图片描述

  动态贝叶斯网模型建立了在任意长时间跨度上结构分布的一种紧密表示,它是在贝叶斯网络中基础上引入了马尔科夫假设和时不变性假设得到的。

3. 隐马尔科夫模型 ( 时序模型 )

  这部分讨论时序模型中的隐马尔科夫模型(Temporal Models - HMMs)。

3.1 状态-观测模型 ( State-Observation Models )

   原书4状态-观测模型引出隐马尔可夫模型(Hidden Markov Model),即观测就在其单独过程中发生的观测,系统可以视为关于其自身的自然进化。它基于两个独立性假设:

  • 状态变量以马尔可夫方式进化,故满足马尔可夫假设 (X(t+1)X(0:(t1))|X(t))
  • 给定时刻 t 的状态时,此时观测变量与整个状态序列独立: (O(t)X(0:(t1)),X(t+1:)|X(t)) .

   所以可以认为概率模型由两部分组成:转移模型 P(X|X) 观测模型 P(O|X) .

3.2 隐马尔可夫模型 ( HMM )

  HMM 是时序模型的一个最简单的非平凡例子,它只分为状态变量 S 与观察变量 O,O 决定 S,状态变量之间存在状态转移矩阵 P(S,S) ,指定变量 si 到其他变量的状态转移概率之和为 1。

  如果把 HMM 视为一个 DBN ,如下:
这里写图片描述
  那么左上图是作为一个通用 HMM 的 2-TBN,右上图是四个时间片段上展开的 DBN,下面的是这个四状态 HMM 的转移模型图示。

3.3 广泛应用

  Numerous Applications 参见原书第六章详解:

  • Robot localization
  • Speech recognition
  • Biological sequence analysis
  • Text annotation

4. Plate 模型

  时序模板模型,通常还有一类情况需要模板模型:问题中有多个相同类型的不同对象,希望建立模板对这些对象进行统一考虑。

4.1 硬币采样例子

  如何理解 Plate 模型的机制,以最简单的硬币采样为例 :
这里写图片描述

  这是从单个硬币采样的一系列硬币投掷结果的 Plate 模型,模型是对“投掷这个硬币”这个事件的多次重复(repetition)。描述同一分布中多次独立生成随机变量的机制。这些随机变量的值域相同;方框表示这些随机变量产生于同一个分布,故产生机制相同,即 Outcome 对每个 tk 有相同的条件概率分布。方框隐含一个方框参数 θ 来刻画这种产生机制,与这是第几次投掷即 tk 无关。

4.2 模型步骤例讲

4.2.1 步骤解析

  • 对象(object): 将问题世界看作由一组对象构成;
  • 类(class): 类是对象的一个特定的集合,简单情况下可将对象划分为一组不相交的类。

  原书对 Plate 模型概述如下5(列出提供参考,可忽略)

A plate model provides a language for encoding models with repeated structure and shared parameters. As in the case of DBNs, the models are represented at the template level; given a particular set of objects, they can then be instantiated to induce a ground Bayesian network over the random variables induced by these objects. Because there are infinitely many sets of objects, this template can induce an infinite set of ground networks.

   上述粉色文字解释了 Plate 模型思路:给定对象的一个特定集合,通过实例化它们,导出的一些随机变量。并在这些随机变量上导出一个基础贝叶斯网。具体实施分为以下步骤:

  Step 1:明确问题世界中对象集类
  Step 2:实例化类来导出随机变量
  Step 3:分别明确这些随机变量的父节点集
  Step 4:通过父节点在子节点上的条件概率分布(CPD)定义基础贝叶斯网络。

4.2.2 简单成绩例子

  这些步骤后文会给出形式化表示,这里先结合例子理解步骤的含义。简单成绩例子:学生的成绩 G(S) 决定于该学生的智商 I(S)
这里写图片描述

  • Step 1(对象集类): 所有学生 si 组成学生类 S
  • Step 2(随机变量): 学生的智商 I(S) ,学生的成绩 G(S) S I,G 实例化得到;
  • Step 3(变量父节点集):
    • 学生的成绩 G(S) 决定于该学生的智商,即 PaG={I(S)}
    • 学生的智商本身就是贝叶斯网中的父节点,即 PaG=
  • Step 4(条件概率分布): P(G(S)|I(S)) ,即图中右边导出的基础贝叶斯网的结构参数。

4.2.3 硬币投掷例子

  • Step 1(对象集类): 投掷行为 T tk 表示第 k 次投掷;
  • Step 2(随机变量): 投掷结果 Outcome(T)
  • Step 3(变量父节点集): 例中 O 是网络中单一节点;
  • Step 4(条件概率分布): P(O(T)) 表示投掷该硬币所产生的结果的分布。

4.3 模型形式构架

  前文的时序模型中,模板变量基于时间采集。
  这里 Plate 模型中,模板变量基于对象采集。

4.3.1 形式化表示

  基于前文对于模型步骤的理解,这里给出形式化表述。

  • 模型指标:客观世界中的对象集合类型(objects types) Ui ,可以被不同 Plate 使用;
  • 模板属性:或称模板变量,它有一组模型指标作为参数(is indexed by a bunch of objects types),表示为 A(U1,...,Uk)

  前文粉色标记出的模型步骤,形式化表述如下:

对于有属性 A(U1,...,Uk) 的 Plate,Plate 模型定义了一个该 Plate 父节点集合 (template parents) 为 PaA={B1(UA1),,Bm(UAm)} ,并定义该 Plate 的模板 CPD P(A|PaA)

  举例(成绩模板): 构建一个关于学生(Student, s )和课程(Course, c )的成绩模板,模板属性 Grade(S,C) 的参数为模型指标 S,C ,分别可以用学生类中某个学生,课程类中某门课程来实例化。即 Grade 可以对不同的 (s,c) 实例化,从而生成多个随机变量 Grade(s,c)

  这个成绩模**板**只是一个模板,但模型由多个模板组成。现在构建成绩模**型**。
![这里写图片描述](https://img-blog.csdn.net/20160821163932500)   **举例**(成绩模型): 如图模型由两个模型指标 S,C ,和三个模板属性 Grade(S,C),Intelligence(S),Difficulty(C) 。模板属性间关系为 DGI

4.3.2 图形化表示

  Plate 模型由多个模板组成。每一个 Plate 有其对应的一个模型指标,模型指标根据模型结构决定模板属性。图形化表示易于理解,如成绩模型中的图示:

  • 方框对应模型指标(对象集类),在右下角标明。这就是 Plate;
  • 节点对应模板属性(模板变量),放入其参数指标对应 Plate 中;
  • 方框间可嵌套重叠:若一个变量被置于多个方框中,则该变量依赖于这多个模型指标;
  • 节点间的边表示模板属性间的依赖关系,但这还不是贝叶斯网络。模板属性实例化之后将展开为基础贝叶斯网。

   :“模板属性”和“模板变量”都指模板属性,但后文“变量”是“模板属性”实例化后得到的,是基础贝叶斯网中的节点。

  需要注意以下几处的理解:

  1)模板的 CPD

  每个模板确定了一种模板的 CPD,可以重复应用于 any copy of 模板属性 A 。这些 copies of 模板属性是其模型指标 U=(U1,...,Uk) 的实例化(concrete instantiations of indices),即 A(u1,,uk)

  2)模板间 CPD

  对于模板属性 A(U1,...,Uk) 和其父模板属性 B1(UA1),,Bm(UAm) ,它们之间的依赖关系由模板间 CPD P(A|B1,...Bm) 给出。

  3)转换为贝叶斯网表示:每一个模板属性实例化之后即为变量,设置为节点,变量间关系由模板间 CPD 决定。设模板属性 A 实例化后得到 ak Bi 实例化后得到 bik ,m 个 bik 的每个组合( i =1,2,…,m)都是 ak 的一组父节点, ak 与每组父节点间边都由模板间 CPD P(A|B1,...Bm) 决定。

  4)父节点可以有子节点没有的参数(we cannot have an index in the parent that doesn’t appear in the child)

  比如 Honors(S) 依赖于 Grade(S,C):但 H 不是 G 的 CPD,Plate 模型无法表示。
  比如孩子的 Phenotype(Person) 依赖于父母的 Phenotype(Person):但 Phenotype 取决于一个人本身的 Genotype,即模型明确来讲是 Phenotype(Genotype,Person) 依赖于 Phenotype(Person),同样不是一个标准 CPD,无法用 Plate 模型。

4.3 三种 Plate 模型

  针对不同情形,不同 Plate 可通过嵌套或重叠来迎合模板属性对于模型指标的依赖关系。

  参阅原书翻译版 Page 213,有三种 plate 模型。考虑学生例子 S,C,D,I,G 分别为 Student,Course,Difficulty,Intelligence 和 Grade。下图为学生例子中三种 Plate 模型6
这里写图片描述
  (a): 单一 plate(Single plate): 多个来自同一分布的独立采样,详见这里
  (b): 嵌套 plate(Nested plates): 多门课程,每门课程有学生的一个分离集;
  (c): 相交 plate(Intersecting plates): 有重叠(overlapping)的学生集的多门课程,详见这里

4.4 集体推理中的应用

  Plate 模型在相互依赖的复杂(intricate)网络中捕获简洁明了的关联(correlated)结构,使得我们在不同孤立个体对象(individuals in isolation)之间获得了更多有价值的信息。对于横跨多个对象的编码来说支持集体推理(collective inferrence)。
  假设有多个不同难度的课程,多个不同智力的学生,那么显然在更加难的课程上拿到 A 的学生智商更高,智商低的学生拿到 A 的课程难度更低等。

4.5 Plate 模型总结

  Plate 模型是对象-关系领域的有向概率图模型基于模板的表示。模型指标来源于对象集类型,模板属性是一些对象集的性质。模板在每一个模板属性上定义,模板间的关系由 Plate 的嵌套或重叠表示,这是通过 Plate 的模板属性共享部分模型指标实现的。

  • 无限大贝叶斯网:Plate 模型描述了每个子节点依赖于不同父节点集合的关系,是针对贝叶斯网络的一个无限模板。
  • 重复结构和参数:类似 Temporal 模型,Plate 模型也编码了重复结构(模板属性)和共享参数(模板间 CPD 关系);
  • 集体推理:对于横跨多个对象的编码来说支持集体推理(collective inferrence)
  • 模型限制:父模板属性的参数集 子模板属性参数集。且不能描述时序模型。

猜你喜欢

转载自blog.csdn.net/thither_shore/article/details/52268772