本章我们描述概率论。概率论是表示不确定现象的数学框架。它提供了定量不确定性和公理来导出新不确定现象的方法。在人工智能应用中,我们主要用在两个方面。首先,概率法则告诉我们人工智能系统应该如何推理,所以我们设计算法,来计算或近似各种用概率论推导出来的表达式。其次,我们可以用概率和统计理论来分析人工智能系统的行为。
概率论是许多科学和工程学科的基本工具。我们提供这一章是为了确保较少接触概率论的软件工程可以理解本书的材料。如果你已经熟悉了概率论,那么可以跳过这一章。如果你有没有接触过概率论,这一章内容足以进行深度学习的研究项目,但我们建议看一些额外的资源,如( Jaynes ,2003)。
许多计算机科学分支处理的是完全确定的实体。程序员通常可以假设一个CPU将正常地执行每个机器指令。硬件错误确实会发生,但很少见,所以大多数设计出来的软件应用不需要考虑它们。鉴于许多计算机科学家和软件工程师是在一个相对干净且稳定的环境下工作,而令人惊讶的是,机器学习大量使用了概率论。
这是因为机器学习必须处理不确定的量,有时也可能应对随机的(不确定的)量。不确定性和随机性可能有多种来源。至少从20世纪80年代起,研究人员对于用概率量化不确定性做出了令人信服的论点。这里提出的许多论点由 Pearl(1988)总结或受启发于他。
几乎所有的活动都需要在不确定性的情况中推断。事实上,除了那些定义为真的数学现象外,很难想到某些命题完全为真,或者某些事件保证会发生。
有三个不确定的可能来源:
- 系统中的被建模的固有随机性。例如,量子力学解释中,将大多数亚原子粒子的动态描述为概率。我们也可以创建一个理论场景,假定有随机动态,如一个假想的纸牌游戏,该游戏中我们假设卡牌顺序是随机的。
- 不完整的可观察性。当我们无法观察到所有驱动系统行为的变量时,即使确定系统也会出现不确定性。例如,在蒙提霍尔问题中,游戏表明参赛者要求在三个门里选一个并赢得所选门后的奖品。两扇门是山羊,而第三个是汽车。给定选手选择的结果后,结果是确定的,但是从选手的角度来说,结果是不确定。
- 不完整的模型。当我们使用一个模型时,该模型必须抛弃一些我们观察到的信息,被丢弃的信息在模型预测中产生了不确定性。例如,假设我们建了一个机器人,它可以准确地观察到它周围每一个物体的位置。如果在预测这些对象将来位置的时候,它离散化了空间,那么离散使得机器人对对象的精确位置变得不确定:每个对象可能是观察到它所在的那个离散区域的任何地方。
在许多情况下,使用简单而不确定规则要比复杂而确定的更加实用,即便真规则是确定的,我们的建模系统具有保真度以适应复杂的规则。例如,简单的规则:“大多数鸟类会飞”很容易制定并具有广泛的实用性,而形如“鸟会飞,除了非常年轻的鸟类,它们还没有学会飞,还有生病或受伤的失去了能力的鸟类,鸟类中不会飞的物种包括食火鸡,鸵鸟和kiwi等”制定,维护和沟通哦都很麻烦,毕竟这种尝试容易失败。
鉴于我们需要表示和推理不确定性的一种方法,概率论可以提供给我们在人工智能应用中的工具似乎不太明显。概率论最初被用来分析事件的频率。很容易看到概率论如何被用来研究事件,就像扑克游戏中手中拿到的一副牌。这种事件往往是重复的。当我们说一个结果发生的概率为p,它意味着如果我们反复实验(例如,拿一手牌)无限次,则重复比例p将导致那种结果。这种推理似乎并不适用于不重复的命题。如果医生分析病情,说病人有40%的几率的流感,我们不能做出无数个病人副本,也没有任何理由相信病人副本将有相同的症状。在医生诊断病人中,我们用概率来表示置信度,1表示患者肯定患有流感而0表示患者肯定没得流感。前种概率(直接和事件发生率相关)是频率论概率,而后者(与确定性水平有关)是贝叶斯概率。
事实证明,如果我们列出不确定性常识推理拥有的一些属性,那么满足这些属性的唯一方法是将贝叶斯概率看做频率概率。举例来说,如果我们要计算一个玩家赢得扑克游戏的概率,当然她已有一套牌。我们可以使用医生病人中相同的公式来计算概率。有关为什么常识假设暗含着同样的公理满足这两种概率的更多信息,请参阅Ramsey(1926)
概率可以被看作是处理不确定性的逻辑扩展。逻辑提供了一套规则来确定哪些命题是真,哪些是假,前提是给定了一些命题是真是假的假设。概率论提供了一套规则来确定一个命题为真的可能性,前提是给定其他命题的可能性。