JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

图模型与隐马尔可夫模型

画一张图、标出哪些变量依赖哪些变量,就能让我们对混乱、不确定的世界进行推理——而隐马尔可夫模型则把这个想法变成了一台能处理序列的实用机器。

一张“谁依赖谁”的图

到这一阶段,你已经能为少数几个变量写出联合概率分布。但设想一个有二十个变量的世界,每个变量取十种值。完整的联合分布表会有十的二十次方个条目——这个数远超你能估计或存储的范围。整套贝叶斯推断之所以卡住,不是因为数学错了,而是因为这种记账根本做不到。

概率图模型图模型)正是利用真实系统的一个事实来摆脱困境:大多数变量并不直接依赖于大多数其他变量。你早上的闹钟取决于星期几,却不取决于另一个国家的天气。如果把变量画成点,只在那些彼此直接影响的变量之间连线,得到的图通常很稀疏——而正是这种稀疏,让联合分布得以分解成一个个小巧、可处理的部分。

贝叶斯网络:意味着“导致”的箭头

贝叶斯网络是一种边为箭头的图模型——一张没有回路的有向图。每个随机变量从它的每个直接成因(称为父节点)那里接收一条进入的箭头。这个模型的承诺简单而有力:完整的联合分布,无非是每个变量一张小表的乘积,而每张表只给出该变量在其父节点条件下的概率。

经典的玩具例子:天可能下雨;雨可能来自云;雨会打湿草地;但草地也可能是因为喷头开过才湿的。画四个点、三条箭头,你就编码了一个真正具备医学式推理能力的引擎。观察到草地是湿的,你就能用贝叶斯定理反推它下过雨的概率——而关键在于,如果你还得知喷头开过,下雨这个解释就变得不那么可能了。这种“一个成因被证实、就降低对竞争成因的信念”的模式称为“解释消除”,贝叶斯网络会自动捕捉到它。

马尔可夫随机场:当不存在“先后”时

箭头很适合表达因果,但有些关系并没有方向。想想图像中的像素:一个像素往往与邻居颜色相同,可你说不出是左边的像素“导致”了右边的。这种影响是相互的。对于这类情形,我们用马尔可夫随机场——一种无向图模型,其中一条边只是表示“这两个变量在某种意义上倾向于彼此一致(或相关)”,没有谁胜出,也没有谁先动。

由于没有父子顺序,我们不能简单地把若干小的条件表相乘。取而代之,我们给每一团相连的变量赋一个正的分数——配置越“和谐”分数越高——把所有分数相乘,再除以一个总的归一化和,使结果成为合法的分布。那个对所有可能联合配置求和得到的归一化常数,就是我们付出的代价:精确计算它往往代价高得惊人。这正是无向模型为何高度依赖近似方法的原因,比如马尔可夫链蒙特卡洛,尤其是吉布斯采样,它们用采样代替求和,从而绕开了那个常数。

这两个家族不是对手,而是适用于不同形态知识的工具。有向网络在你有一个生成式故事时大放异彩——先发生这个,再发生那个。无向场则在影响对称且局部时见长——像素、社交关系、网格中的词语。许多真实系统用两者的混合来描绘最为贴切。

隐马尔可夫模型:一条你看不见的链

现在把这个想法专门用于序列。隐马尔可夫模型HMM)是处理随时间展开的数据时,最简单却有意思的图模型。它假设存在一条隐藏状态的链——每个时间步都有一个你从不直接观测到的潜变量——其中每个状态只依赖于紧邻它之前的那一个(这就是“马尔可夫”假设:未来除了当下,把一切都忘了)。每一步,隐藏状态都会发出一个可见的观测,而你真正看到的,就只有这些观测。

下面的图把这种连线方式画得很具体。把上面一行读作随时间向前行进的秘密真相,把下面一行读作它一路上抛下的带噪线索。经典例子:隐藏状态是一个人想说的词,观测是你手机录下的含糊音频。

  z1  ->  z2  ->  z3  ->  z4     hidden states (latent)
  |       |       |       |
  v       v       v       v
  x1      x2      x3      x4      observations (visible)
一个 HMM:每个隐藏状态只依赖前一个状态,并发出一个观测。

一个 HMM 完全由三样东西刻画:每个起始状态的可能性、一张转移表(从一个隐藏状态转到另一个的概率),以及一张发射表(每个状态产生每种观测的概率)。注意其中的家族相似——如果把整条链坍缩成一步,HMM 本质上就是一个动起来的混合模型,是你早先见过的高斯混合在时间上的表亲,只不过混合权重如今会逐步演变。

三个问题,三个答案

HMM 之所以如此受人喜爱,是因为得益于链状结构,你想问的所有问题都有精确而快速的答案。这些问题其实只有三个,值得在脑中把它们分开来记。

  1. 似然——给定一个模型和一串观测,这串序列有多大可能?由前向算法解决:它从左到右扫描,一次性对所有隐藏路径求和,而不是去逐一枚举那指数级之多的路径。
  2. 解码——观测背后最可能的那一条隐藏状态序列是什么?由维特比算法解决:它用简单的动态规划,找出贯穿整条链的最佳路径。
  3. 学习——只有观测、没有标签时,哪套转移表和发射表最能解释它们?由 Baum-Welch 算法解决,而它不过是上一篇的EM 算法用在链上:先猜出这些表,推断出可能的隐藏状态,再重新估计这些表,如此反复。

这正是结构带来的回报:你曾用来拟合聚类的同一套 EM 机器,如今在完全没有标注数据的情况下,学到了一个关于时间的模型。HMM 曾驱动了一整代语音识别系统,至今仍是做词性标注、基因查找,以及诸如命名实体识别等其他序列标注任务的一种清爽方法。

它们的真实定位

人们很容易以为现代深度学习让这一切都过时了。其实没有——它只是重新划定了边界。马尔可夫假设确实有其局限:HMM 除了当前状态什么都不记得,因此难以应对长程依赖,而循环网络或 Transformer 却能轻松处理。在大型标注语料上拼原始准确率,神经序列模型通常会赢。

但图模型仍凭三个实在的理由站得住脚。它们可解释:箭头和表格的含义,是人能读懂、也能与之争辩的。它们省数据:一个结构良好的贝叶斯网络,在深度网络只会过拟合的少数几个样本上,也能进行合理推理。它们还天生擅长处理缺失数据和不确定性——你可以观测一部分变量、把其余留空,仍能得到一个连贯的、带有校准置信度的答案,而不是把猜测打扮成确定性。

比任何单一技术更持久的,是其中更深的教训。这里的两个大思想——沿着依赖关系图把难题分解,以及从可见的结果反推隐藏的成因——会在后续处处重现。当精确推断变得过于昂贵时,接下来的指南会转向变分推断和采样。而现代的概率工具箱,从变分自编码器到深度潜变量模型,在很大程度上正是这些同样的图模型思想,披上了神经网络的外衣。