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 |
这个模型允许我们回答我们可能感兴趣的问题,例如:
- 晴天的概率是多少? \(P(W = sun)\)
-
在我们知道是冬天的情况下,天气的概率分布是什么? $$P(W S = winter)$$
-
在我们知道下雨且寒冷的情况下,是冬天的概率是多少? $$P(S = winter T = cold, W = rain)$$
-
在我们知道寒冷的情况下,天气和季节的概率分布是什么? $$P(S, W T = cold)$$
枚举推理 (Inference By Enumeration)
给定一个联合 PDF,我们可以使用一种称为枚举推理 (inference by enumeration) 的简单直观的过程来简单地计算任何所需的概率分布 \(P(Q_1...Q_m| e_1...e_n)\),为此我们定义了我们将要处理的三种类型的变量:
-
查询变量 (Query variables) \(Q_i\),它们是未知的,出现在所需概率分布中条件符号 ($$ $$) 的左侧。
-
证据变量 (Evidence variables) \(e_i\),它们是观测变量,其值是已知的,出现在所需概率分布中条件符号 ($$ $$) 的右侧。
- 隐藏变量 (Hidden variables),它们是存在于整体联合分布中但不在所需分布中的值。
在枚举推理中,我们遵循以下算法:
- 收集与观测到的证据变量一致的所有行。
- 对所有隐藏变量求和消元(边缘化)。
- 归一化表,使其成为概率分布(即值之和为 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\) 也是如此。