Skip to main content Link Menu Expand (external link) Document Search Copy Copied

6.2 概率推理 (Probabilistic Inference)

在人工智能中,我们经常想要对各种非确定性事件之间的关系进行建模。如果天气预报预测有 40% 的几率下雨,我应该带伞吗?如果我买的冰淇淋球越多,我把它全部掉在地上的可能性就越大,那么我应该买多少个球?如果在去甲骨文球馆看勇士队比赛的路上,高速公路上 15 分钟前发生了一起事故,我应该现在出发还是 30 分钟后出发?所有这些问题(以及更多)都可以用概率推理 (probabilistic inference) 来回答。

在本课程的前几节中,我们将世界建模为存在于一个总是已知的特定状态中。在接下来的几周里,我们将改用一种新模型,其中世界的每个可能状态都有其自己的概率。例如,我们可能会建立一个天气模型,其中状态由季节、温度和天气组成。我们的模型可能会说 \(P(winter, 35°, cloudy) = 0.023\)。这个数字代表了冬天、35° 和多云这一特定结果的概率。

更准确地说,我们的模型是一个联合分布 (joint distribution),即一个概率表,它捕获了每个可能结果 (outcome)(也称为变量的赋值 (assignment))的可能性。例如,考虑下表:

Season Temperature Weather Probability
summer hot sun 0.30
summer hot rain 0.05
summer cold sun 0.10
summer cold rain 0.05
winter hot sun 0.10
winter hot rain 0.05
winter cold sun 0.15
winter cold rain 0.20

这个模型允许我们回答我们可能感兴趣的问题,例如:

  1. 晴天的概率是多少? \(P(W = sun)\)

  1. 在我们知道是冬天的情况下,天气的概率分布是什么? $$P(W S = winter)$$

  1. 在我们知道下雨且寒冷的情况下,是冬天的概率是多少? $$P(S = winter T = cold, W = rain)$$

  1. 在我们知道寒冷的情况下,天气和季节的概率分布是什么? $$P(S, W T = cold)$$

枚举推理 (Inference By Enumeration)

给定一个联合 PDF,我们可以使用一种称为枚举推理 (inference by enumeration) 的简单直观的过程来简单地计算任何所需的概率分布 \(P(Q_1...Q_m| e_1...e_n)\),为此我们定义了我们将要处理的三种类型的变量:

  1. 查询变量 (Query variables) \(Q_i\),它们是未知的,出现在所需概率分布中条件符号 ($$ $$) 的左侧。

  1. 证据变量 (Evidence variables) \(e_i\),它们是观测变量,其值是已知的,出现在所需概率分布中条件符号 ($$ $$) 的右侧。

  1. 隐藏变量 (Hidden variables),它们是存在于整体联合分布中但不在所需分布中的值。

在枚举推理中,我们遵循以下算法:

  1. 收集与观测到的证据变量一致的所有行。
  2. 对所有隐藏变量求和消元(边缘化)。
  3. 归一化表,使其成为概率分布(即值之和为 1)。

例如,如果我们想使用上面的联合分布计算 \(P(W | S = winter)\),我们会选择 \(S\) 为冬天的四行,然后对 \(T\) 求和消元并归一化。这产生以下概率表:

| W | S | Unnormalized Sum | Probability | | —– | —— | ———————- | —————————— | | sun | winter | \(0.10 + 0.15 = 0.25\) | \(0.25 / (0.25 + 0.25) = 0.5\) | | rain | winter | \(0.05 + 0.20 = 0.25\) | \(0.25 / (0.25 + 0.25) = 0.5\) |

因此 \(P(W = sun | S = winter) = 0.5\) 且 \(P(W = rain | S = winter) = 0.5\),我们了解到在冬天有 50% 的几率是晴天,50% 的几率是雨天。

只要我们有联合 PDF 表,枚举推理 (IBE) 就可以用来计算任何所需的概率分布,即使对于多个查询变量 \(Q_1...Q_m\) 也是如此。