人工智能中的概率推理

10 Jun 2025 | 10分钟阅读

到目前为止,我们已经学习了使用一阶逻辑和命题逻辑进行确定性的知识表示,这意味着我们对谓词是确定的。通过这种知识表示,我们可能会写出 A→B,意思是如果 A 为真,那么 B 为真。但是,考虑一种情况,我们不确定 A 是否为真,那么我们就无法表达这个陈述;这种情况被称为不确定性。

因此,为了表示不确定的知识,即我们对谓词不确定,我们需要不确定性推理或概率推理。

不确定性的原因

以下是现实世界中出现不确定性的一些主要原因。

  • 信息来自不可靠的来源。
  • 实验误差。
  • 设备故障。
  • 温度变化。
  • 气候变化。

理解概率推理

概率推理是一种知识表示的方式,我们应用概率的概念来表示知识中的不确定性。在概率推理中,我们将概率论与逻辑相结合来处理不确定性。

我们在概率推理中使用概率,因为它提供了一种处理因某人的懒惰和无知而导致的不确定性的方法。

在现实世界中,有很多场景下某件事的确定性是无法确认的,例如“今天会下雨”、“某人在某些情况下的行为”,或者“两队或两名选手之间的比赛”。这些都是可能的句子,我们可以假设它会发生,但我们对此并不确定,所以这里我们使用概率推理。

人工智能中需要概率推理的原因

  • 当结果不可预测时。
  • 当谓词的规范或可能性变得过于庞大而难以处理时。
  • 当实验过程中出现未知错误时。

在概率推理中,有两种方法可以解决具有不确定知识的问题

  • 贝叶斯定理
  • 贝叶斯统计

注意:我们将在后面的章节中学习以上两条规则。

由于概率推理使用概率及相关术语,在理解概率推理之前,让我们先了解一些常用术语

概率: 概率可以定义为一个不确定事件发生的可能性。它是事件发生可能性的数值度量。概率的值始终保持在 0 和 1 之间,代表理想的不确定性。

  • 0 ≤ P(A) ≤ 1,其中 P(A) 是事件 A 的概率。
  • P(A) = 0 表示事件 A 完全不确定。
  • P(A) = 1 表示事件 A 完全确定。

我们可以使用以下公式来计算不确定事件的概率。

Probabilistic Reasoning in Artificial Intelligence
  • P(¬A) = 事件不发生的概率。
  • P(¬A) + P(A) = 1。
  • 事件: 变量的每一个可能的结果被称为一个事件。
  • 样本空间: 所有可能事件的集合称为样本空间。
  • 随机变量: 随机变量用于表示现实世界中的事件和对象。
  • 先验概率: 事件的先验概率是在观察新信息之前计算的概率。
  • 后验概率: 在考虑了所有证据或信息之后计算出的概率。它是先验概率和新信息的结合。

条件概率

条件概率是指在另一个事件已经发生的情况下,某个事件发生的概率。

假设我们想在事件 B 已经发生的情况下计算事件 A 的概率,“在 B 的条件下 A 的概率”可以写作

Probabilistic Reasoning in Artificial Intelligence

其中,

P(A⋀B) = A 和 B 的联合概率

P(B) = B 的边际概率。

如果给定了 A 的概率,而我们需要求 B 的概率,那么它将表示为

Probabilistic Reasoning in Artificial Intelligence

这可以通过下面的维恩图来解释,其中 B 是一个事件的发生,所以样本空间将缩小到集合 B,现在我们只能在事件 B 已经发生的情况下计算事件 A,方法是将 P(A⋀B) 的概率除以 P(B)

Probabilistic Reasoning in Artificial Intelligence

示例

在一个班级里,有 70% 的学生喜欢英语,40% 的学生既喜欢英语又喜欢数学。既喜欢英语又喜欢数学的学生百分比是多少?

解决方案

设 A 为学生喜欢数学的事件

B 为学生喜欢英语的事件。

Probabilistic Reasoning in Artificial Intelligence

因此,57% 的学生既喜欢英语又喜欢数学。

人工智能中的概率模型

在人工智能的本质中,概率模型可以帮助有效管理不确定性,并有助于描绘变量之间的复杂关系。

贝叶斯网络

信念网络,或更常见的名称贝叶斯网络,以图形结构的形式显示变量之间的概率依赖关系。它们由以下部分组成

  • 节点: 贝叶斯网络中的每个节点都等同于一个随机变量,该变量可以是离散的或连续的。
  • 边: 从一个节点到另一个节点的边表示起始节点的变量影响结束节点变量的条件概率。
  • 条件概率表 (CPT): 每个节点包含一个 CPT,它指明了该节点对其父节点所代表的变量的依赖程度。

例如,在一个医疗诊断网络中,像“发烧”这样的单个变量可能依赖于“感染”,这通过节点之间的箭头和一个 CPT(特定的概率值)来表示。

马尔可夫模型

马尔可夫链

它是一种概率模型,用于建模通过状态变化演变的系统。主要特点包括

  • 无记忆性: 下一个状态仅依赖于当前状态,而与之前的状态无关。
  • 状态转移矩阵: 显示从一个状态变为另一个状态的机会。

一个天气模型可以尝试通过其“晴天”、“多云”和“雨天”等状态来展示天气的变化。

隐马尔可夫模型 (HMM)

HMM 基于马尔可夫链,但增加了隐藏(潜在)状态

  • 观测状态: 系统生成的输出。
  • 隐藏状态: 导致我们观察到某些事物的未被检测到的因素。
  • 发射概率: 在特定隐藏状态下观测到特定状态的可能性。

动态贝叶斯网络 (DBN)

动态贝叶斯网络将贝叶斯网络的设置推广到能够跟踪跨越多个时间步演变的过程。它们说明了变量如何随时间变化,包括静态和动态的联系。

  • 时间依赖性: 展示变量如何从一个时间步变化到另一个时间步。
  • 转移模型: 描述了长期来看处于不同状态的可能性。

概率推理的应用

自然语言处理(NLP)

  • 语言建模: N-gram 和神经概率语言模型属于基于概率的建模系统,它们根据概率判断一个词序列,文本生成和自动完成功能都归功于此。
  • 语音识别: 利用 HMM 和概率算法赋能口语对齐的过程,由于准确性更高,提高了转录质量。
  • 机器翻译: 各种统计机器翻译系统利用概率算法,提供与其上下文意义相关的优良和不良模式的翻译。
  • 情感分析: 贝叶斯方法计算文本中呈现特定情感的概率,从而改进观点分析和情感分类。

机器人和自主系统

  • 定位与建图: 蒙特卡洛定位和 SLAM 等技术使机器人能够定位和绘制其环境地图,以便于导航。
  • 路径规划: 机器人通过计算特定路线的无危险状态的概率,可以安全移动。
  • 不确定性下的决策: 机器人配备了贝叶斯网络和 MDP 来处理不确定数据并做出适当响应,因此适用于信息不足或嘈杂的情况。
  • 人机交互: 概率模型使机器人能够识别人类意图,这增强了它们的合作与沟通能力。

医疗诊断与决策支持

  • 疾病诊断: 基于处理症状和测试结果,贝叶斯网络确定特定疾病发生的概率,从而帮助医务人员做出良好的诊断决策。
  • 预测性分析: 使用概率模型处理的信息有助于医疗服务提供者预测疾病的发展过程以及需要采取预防措施的地方。
  • 治疗推荐系统: 算法分析患者的病史、基因信息和以往对治疗的反应,以个性化治疗建议。
  • 临床决策支持: 基于机器的系统利用概率分析来推荐诊断检查并解释其结果。

推荐系统

  • 协同过滤: 概率模型分析用户交互,识别重复模式,并推荐符合相似用户行为的物品。
  • 基于内容的推荐: 应用贝叶斯技术,借助物品的特性及其历史交互,可以知道用户喜欢某个物品的概率。
  • 混合方法: 通过结合协同概率、协同过滤和基于内容的方法,可以实现更准确的推荐。
  • 动态偏好: 当用户的偏好发生变化时,算法会根据概率时间模型的应用调整其推荐。

欺诈检测

  • 异常检测: 贝叶斯和概率方法估计交易的异常情况,并指示可能的欺诈迹象。
  • 风险评分: 欺诈检测系统利用历史数据和情境信息判断一笔交易是否为欺诈。
  • 网络分析: 概率图模型揭示了金融或社交网络中欺诈特有的隐藏联系和活动。
  • 实时决策: 即时算法在冒着进一步的种族歧视行为或金融崩溃风险的同时进行判断。

尽管概率推理在管理不确定性决策方面很有效,但它容易受到实际问题的阻碍,这些问题破坏了其成功实施。解决这些问题是扩大概率推理在人工智能中应用的前提。

概率推理中的挑战

可扩展性问题

人工智能系统越复杂,概率模型处理数据和计算的任务就越成问题。

  • 大规模网络: 操纵贝叶斯网络及其对应模型所需的大量变量和依赖关系需要巨大的计算能力。例如,天气或金融市场的复杂性需要处理庞大的数据集才能做出正确的模型设计。
  • 高维数据: 随着变量的增加,人们会陷入一种概率分布呈指数增长的状况,从而有效地描绘了“维度灾难”。
  • 实时应用: 在自动驾驶汽车和网站推荐等实际情况中,迫切需要即时和快速的推理能力。在速度和准确性之间找到平衡点的性能仍然是概率推理模型在这类应用中面临的两大挑战。
  • 潜在解决方案: 为了解决这些问题,采用了诸如变分推断、并行计算等新算法,以及像 TensorFlow Probability 这样的框架。

计算复杂性

概率推理模型有其美妙的计算部分,但可能很快就需要大量的处理能力。

  • 精确推断: 诸如变量消除和信念传播等技术在某些条件下具有指数级复杂性,这限制了它们在大规模系统中的适用性。
  • 采样方法: 如果需要高精度,诸如蒙特卡洛和吉布斯采样等技术可能计算成本高昂(并需要大量计算能力)。
  • 动态系统: 将时变动态集成到使用动态模型的贝叶斯网络中,会带来额外的计算需求,需要迭代应用状态转移更新。
  • 潜在解决方案: 通过使用结合了确定性方法和概率性方法的混合算法,并使用 GPU 和 TPU 技术,可以克服计算效率低下的问题。

数据稀疏性与质量

概率模型的准确性在很大程度上取决于高质量和大量数据的可用性。质量差或稀疏的数据可能会产生不可靠的推断和错误的预测。

  • 稀疏数据: 为成功测试概率而常规获取完整可靠的数据样本可能相当困难。通常很难对复杂事件(如系统中断或灾难性天气事件)进行建模,因为它们在数据集中反映不佳。
  • 含噪声数据: 未经处理或噪声较大的数据集很容易导致有偏见的结果,并损害推断的有效性。这个问题在医疗诊断等领域尤其关键,因为数据解释的错误可能导致严重的健康风险。
  • 数据不平衡: 当数据在不同类别之间不平衡时,概率方法可能会产生有偏见的预测。
  • 潜在解决方案: 作为解决数据稀疏性和维护数据质量的方案,从业者经常实施数据增强、迁移学习和可靠的统计估计策略等技术。在数据集覆盖范围有限的情况下,领域专家的见解可以显著增强概率模型。

人工智能中概率推理的工具和框架

人工智能 (AI) 的基础是概率推理,有许多专门的技术和框架可用来促进其应用。借助这些工具,可以简化具有内置推断、学习和模拟功能的概率模型的构建和实施。

Pyro

Pyro 基于 PyTorch 开发,允许此类模型的开发者即时构建和部署可扩展且灵活的概率模型。

主要特点

  • 允许贝叶斯推断和随机过程。
  • 通过与 PyTorch 集成,简化了基于神经网络的概率模型的开发。
  • 支持变分推断和马尔可夫链蒙特卡洛 (MCMC) 方法。
  • 能够创建定制的概率框架。

用例

  • 复杂的层次贝叶斯模型。
  • 使用概率方法进行时间序列预测。
  • 在开发支持科学研究和实验技术的机器学习模型方面具有强大的效率。

TensorFlow Probability (TFP)

TensorFlow Probability 为 TensorFlow 的功能增加了用于概率建模和高端统计计算的模块。

主要特点

  • 支持多种分布、密度和变换操作。
  • 提供贝叶斯推断、蒙特卡洛采样和优化技术的能力。
  • 与 TensorFlow 的插件式集成,使得能够生成基于深度学习和概率方法相结合的混合模型。
  • 用于基于梯度的优化的自动微分。

用例

  • 创建结合深度学习和统计模型的混合模型,用于不确定性量化等应用。
  • 金融和医疗数据分析的统计建模。
  • 通过使用贝叶斯神经网络来探索优化预测的可能性。

Pomegranate

Pomegranate 是一个用于 Python 的概率建模库,专注于简单性和效率。

主要特点

  • 该库为许多概率模型提供了实现,如贝叶斯网络、隐马尔可夫模型和高斯混合模型。
  • 通过使用 Cython 提供了速度提升。
  • 其设计是模块化的,易于定制,也使得试验不同方法变得更容易。
  • 即使在数据缺失的情况下也允许进行模型参数估计。

用例

  • 将概率模型应用于语音和转录识别以及生物信息学等领域的序列数据。
  • 在无监督学习设置中应用概率算法进行聚类和分类。
  • 为嵌入式系统和机器人技术量身定制的快速实时概率推断。

下一个主题贝叶斯定理