首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在有向模型和无向模型中转换

我们经常将特定的机器学习模型称为无向模型或有向模型。例如,我们通常将受限玻尔兹曼机称为无向模型,而稀疏编码则被称为有向模型。这种措辞的选择可能有点误导,因为没有概率模型本质上是有向或无向的。但是,一些模型很适合使用有向图描述,而另一些模型很适合使用无向模型描述。有向模型和无向模型都有其优点和缺点。这两种方法都不是明显优越和普遍优选的。相反,我们根据具体的每个任务来决定使用哪一种模型。这个选择部分取决于我们希望描述的概率分布。根据哪种方法可以最大程度地捕捉到概率分布中的独立性,或者哪种方法使用最少的边来描述分布,我们可以决定使用有向建模还是无向建模。还有其他因素可以影响我们决定使用哪种建模方式。即使在使用单个概率分布时,我们有时也可以在不同的建模方式之间切换。有时,如果我们观察到变量的某个子集,或者如果我们希望执行不同的计算任务,换一种建模方式可能更合适。例如,有向模型通常提供了一种高效地从模型中抽取样本的直接方法。而无向模型形式通常对于推导近似推断过程)是很有用的。

每个概率分布可以由有向模型或由无向模型表示。在最坏的情况下,我们可以使用 “完全图’’ 来表示任何分布。在有向模型的情况下,完全图是任意有向无环图,其中我们对随机变量排序,并且每个变量在排序中位于其之前的所有其他变量作为其图中的祖先。对于无向模型,完全图只是包含所有变量的单个团。图10 给出了一个实例。

图10

说明:完全图的例子,完全图能够描述任何的概率分布。这里我们展示了一个带有四个随机变量的例子。(左) 完全无向图。在无向图中,完全图是唯一的。(右) 一个完全有向图。在有向图中,并不存在唯一的完全图。我们选择一种变量的排序,然后对每一个变量,从它本身开始,向每一个指向顺序在其后面的变量画一条弧。因此存在着关于变量数阶乘数量级的不同种完全图。在这个例子中,我们从左到右从上到下地排序变量。

当然,图模型的优势在于图能够包含一些变量不直接相互作用的信息。完全图并不是很有用,因为它并不隐含任何独立性。当我们用图表示概率分布时,我们想要选择一个包含尽可能多独立性的图,但是并不会假设任何实际上不存在的独立性。从这个角度来看,一些分布可以使用有向模型更高效地表示,而其他分布可以使用无向模型更高效地表示。换句话说,有向模型可以编码一些无向模型所不能编码的独立性,反之亦然。

有向模型能够使用一种无向模型无法完美表示的特定类型的子结构。这个子结构被称为 不道德(immorality) 。这种结构出现在当两个随机变量 a 和 b 都是第三个随机变量 c 的父结点,并且不存在任一方向上直接连接 a 和 b 的边时。(“不道德’’的名字可能看起来很奇怪; 它在图模型文献中使用源于一个关于未婚父母的笑话。)为了将有向模型图 D 转换为无向模型,我们需要创建一个新图 U。对于每对变量 x和 y,如果存在连接 D 中的 x 和 y 的有向边(在任一方向上),或者如果 x 和 y 都是图 D 中另一个变量 z 的父节点,则在 U 中添加连接 x 和 y 的无向边。得到的图U 被称为是 道德图(moralized graph)。关于一个通过道德化将有向图模型转化为无向模型的例子可以参考图11 。

图11

说明:通过构造道德图将有向模型(上一行)转化为无向模型(下一行)的例子。(左) 只需要把有向边替换成无向边就可以把这个简单的链转化为一个道德图。得到的无向模型包含了完全相同的独立关系和条件独立关系。(中) 这个图是在不丢失独立性的情况下是无法转化为无向模型的最简单的有向模型。这个图包含了单个完整的不道德结构。因为 a 和 b 都是 c 的父节点,当 c 被观察到时,它们之间通过活跃路径相连。为了捕捉这个依赖,无向模型必须包含一个含有所有三个变量的团。这个团无法编码 a ⊥ b 这个信息。(右) 一般来说,道德化的过程会给图添加许多边,因此丢失了一些隐含的独立性。举个例子,这个稀疏编码图需要在每一对隐藏单元之间添加道德化的边,因此也引入了二次数量级的新的直接依赖。

同样的,无向模型可以包括有向模型不能完美表示的子结构。具体来说,如果 U包含长度大于 3 的 环(loop),则有向图 D 不能捕获无向模型 U 所包含的所有条件独立性,除非该环还包含 弦(chord)。环指的是由无向边连接的变量序列,并且满足序列中的最后一个变量连接回序列中的第一个变量。弦是定义环序列中任意两个非连续变量之间的连接。如果 U 具有长度为 4 或更大的环,并且这些环没有弦,我们必须在将它们转换为有向模型之前添加弦。添加这些弦会丢弃在 U 中编码的一些独立信息。通过将弦添加到 U 形成的图被称为 弦图(chordal graph)或者 三角形化图(triangulated graph),因为我们现在可以用更小的、三角的环来描述所有的环。要从弦图构建有向图 D,我们还需要为边指定方向。当这样做时,我们不能在 D 中创建有向循环,否则将无法定义有效的有向概率模型。为 D 中的边分配方向的一种方法是对随机变量排序,然后将每个边从排序较早的节点指向排序稍后的节点。一个简单的实例可以参考图12 。

图12

说明:将一个无向模型转化为一个有向模型。(左) 这个无向模型无法转化为有向模型,因为它有一个长度为 4 且不带有弦的环。具体说来,这个无向模型包含了两种不同的独立性,并且不存在一个有向模型可以同时描述这两种性质:a ⊥ c | 和 b ⊥ d | 。(中) 为了将无向图转化为有向图,我们必须通过保证所有长度大于 3 的环都有弦来三角形化图。为了实现这个目标,我们可以加一条连接 a 和 c 或者连接 b 和 d 的边。在这个例子中,我们选择添加一条连接 a 和 c的边。(右) 为了完成转化的过程,我们必须给每条边分配一个方向。执行这个任务时,我们必须保证不产生任何有向环。避免出现有向环的一种方法是赋予节点一定的顺序,然后将每个边从排序较早的节点指向排序稍后的节点。在这个例子中,我们根据变量名的字母进行排序。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230305A03JGL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券