深度学习的数学:使用Python语言
上QQ阅读APP看书,第一时间看更新

2.1 基础概念

概率是一个介于0和1之间的数(包含0和1),用于衡量事件发生的可能性。如果事件一定不会发生,那么概率为0。反过来,如果事件一定会发生,那么概率就为1。这是概率通常的定义方式,但人们在日常生活中不大会说“明天下雨的概率是0.25”,“明天有25%的可能性下雨”这样的表达更贴近生活。在日常的表达中,人们可能更喜欢把概率值转换为百分数,本章也会这么做。

上面提到了与概率相关的一些词语,如“可能性”和“一定”。在非正式语境下,甚至在讨论深度学习的情况下,这些表述没什么问题,但如果需要给出精确的定义,我们就必须严格使用概率论中的术语,概率是一个取值区间为[0, 1]的数值。这里的方括号表示取值范围是包含边界的闭区间。如果值域不包含边界点,则需要指定用圆括号表示的开区间。例如,NumPy函数np.random.random()返回取值区间为[0, 1)的伪随机浮点数,这表明可以取0,但是不能取1。

下面介绍样本空间、事件和随机变量的基本概念。本节的最后将举例说明人类有多么不擅长处理概率问题。

2.1.1 样本空间和事件

简单来说,样本空间是表示某个事件所有可能结果的离散集或连续取值范围,事件则是指某件可能发生的事情。通常情况下,事件是某个物理过程的结果,比如抛硬币或掷骰子的结果。事件的所有可能结果构成了我们要处理的样本空间。每个事件是样本空间中的单个样本,样本空间则表示事件的所有可能。下面来看几个例子。

抛硬币的结果有正面(用H表示)和反面(用T表示)两种可能,因而抛硬币的样本空间是集合{H}。对于掷骰子,骰子的形状是标准的,如果不考虑骰子立在边缘的情况,也就是假设骰子停止时总有某个面朝上,则整个样本空间就是{1, 2, 3, 4, 5, 6}。这些都是样本空间为离散集的例子。但在深度学习中,大多数样本空间是包含浮点数的连续集,而非整数集或元素集。例如,如果神经网络的某个输入特征是在[0, 1]区间任意取值,那么[0, 1]就是该输入特征的样本空间。

我们可以研究特定事件发生的可能性。例如,在抛硬币实验中,我们可以讨论硬币正面朝上的可能性是多少。从直观上讲,只要硬币均匀,那么任意一面朝上的可能性都不会比另一面大,因此,我们可以认为正面朝上的概率为0.5(即50%)。同样,反面朝上的概率也是0.5。最后,由于所有可能的结果只有正面或反面,因此把得到所有可能结果的概率相加,便可得到0.5 + 0.5 = 1.0。对于任意样本空间,所有可能结果的概率和总是1.0。

那么,在掷骰子实验中,掷出4的概率是多大?同理,由于各个面出现的机会均等,且只有一个面代表4,因此概率应该是六分之一,也就是1/6 ≈ 0.166667,大约是17%。

2.1.2 随机变量

我们用变量X来表示抛硬币的可能结果。X称为随机变量,它取值于样本空间,并对应某种概率。在抛硬币实验中,样本空间是离散的,所以X是离散型随机变量,通常用大写字母表示。对于一枚硬币来说,X取正反两面的概率相同,都是0.5。对此,正式的表述如下:

通常用P来表示其后面括号里事件发生的概率。连续型随机变量则取自连续的样本空间,通常用小写字母(如x)来表示。我们通常讨论随机变量落在样本空间的某个范围内的概率,而不是讨论变量取某个实数值的概率。例如,如果用NumPy的random函数返回[0, 1)区间的某个值,则可以问该值落在[0, 0.25)区间的概率是多少。由于所有取值的概率都相等,因此可以说变量从区间[0, 1)取值的概率为0.25,或者说25%。

2.1.3 人类不擅于处理概率问题

我将从2.2节开始讨论概率论的数学知识。在此之前,我们先来看两个证明人类不擅于处理概率问题的例子。这两个例子都能难倒专家,倒不是因为专家不够专业,而是因为人类对概率的直观感受往往有很大偏差,即便是专家也无法摆脱这种直观上的偏差。

1.蒙提·霍尔困境

这是我特别喜欢的一个问题,因为它能让一些拥有高段位的数学家都感到困惑。这个问题来自一个很早的美国电视游戏节目《让我们做个交易》。蒙提·霍尔是该节目最早的主持人,在游戏中,他会挑选一名观众作为参赛者,将其带到编号为1、2和3的三扇门前。其中一扇门的后面有一辆全新汽车,而另外两扇门的后面放着搞笑安慰奖,比如一头活生生的小羊羔。

参赛者首先要挑选其中一扇门,然后霍尔会下令打开另外两扇门中的一扇门,而这扇门后没有汽车。但不管这扇门后放着什么搞笑奖品,观众笑完后,霍尔都会询问参赛者,是继续保持之前的选择,还是重新挑选一扇门。这时困境来了:是应该保持不变,还是应该选另一扇没有打开的门呢?

你可以先思考一下这个问题。把书合上,走两圈,拿出纸笔,推导一番,等你有了自己的答案,再往后看。

正确的答案是:应该选另一扇门。因为这样选的话,你就会有2/3的可能性获得汽车。否则,你获得汽车的可能性就只有1/3,也就是第一次就选对了。

当玛丽莲·沃斯·莎凡特于1990年首次提出这个问题并指出应该选另一扇门时,各种质疑的信件如洪水般涌向她,很多信件来自数学家,一些人非常生气地指出她是错的。但其实她并没有错。要证明这一点,只需要用计算机程序对游戏进行模拟即可。这里不讨论该程序要怎么写,但也不会太难。如果你写了这个程序并运行,那么随着模拟的游戏次数的增加,重新选门赢得奖励的可能性会收敛于2/3。不过,我们也可以通过常识和概率论的基本概念来解决这个问题。

首先,如果我们保持原有的选择,那么赢得汽车的可能性显然应该与最初一致,都是1/3。问题在于,如果我们改变选择会怎么样?

如果我们选择换一扇门,那么安慰奖仅在我们第一次选到汽车的情况下才可能最终被选到。为什么?假设我们最初没有选到汽车,而是选到了安慰奖,那么霍尔作为知道真相的人,一定不会下令打开藏有汽车的那扇门。所以,只要我们第一次选到了安慰奖,霍尔就会为我们打开另一扇有安慰奖的门,那么在最后剩下的一扇门里,一定藏有汽车。在这种情况下,只要我们选择换一扇门,就一定会赢。由于在三扇门中有两扇门里藏有安慰奖,因此我们第一次选错的概率为2/3。然而我们看到,这时只要我们中途更换选择,就一定能赢。也就是说,我们可以通过这种策略,获得2/3的获胜概率。剩下的1/3则是第一次选对导致最终错失汽车的概率。

2.是否患有癌症

这个例子在很多关于概率和统计的畅销书里都有提到,例如More Damned Lies and Statistics(Joel Best;UC Press, 2004),以及The Drunkard’s Walk(Leonard Mlodinow;Pantheon, 2008)。这个例子基于一项真实的研究,研究40岁女性在乳房X光摄影检查中结果为阳性时患有乳腺癌的概率。注意,下面很多数据在当时的实验中是准确的,但现在可能已经失效,我们仅仅把它们当成一个例子来阐述。

我们知道以下三点事实。

(1)在所有40岁女性里,患有乳腺癌的概率为0.8%(每1000人里有8人患有乳腺癌)。

(2)如果某位女性患有乳腺癌,那么她做乳房X光摄影检查的结果有90%的概率为阳性。

(3)如果某位女性没有乳腺癌,那么她做乳房X光摄影检查的结果只有7%的概率为阳性。

当一位女性来到诊所进行乳房X光摄影检查时,如果结果为阳性,那么基于以上三点事实,她实际患有乳腺癌的概率应该是多少?

根据事实(1),我们知道,如果我们找到1000位40岁女性,那么她们中平均有8位乳腺癌患者。在这8个人中,有90%的人检查结果为阳性。这意味着约有7位乳腺癌患者的检查结果为阳性,因为8 × 0.9 = 7.2。剩下的992人都没有患乳腺癌。而根据事实(3),由于992 × 0.07 = 69.44,因此约有69位没有患乳腺癌的女性也会检查出阳性。总结起来,共有7 + 69 = 76人得到阳性结果,7人为真实患者,69人为假阳性。综上,当乳房X光摄影检查结果为阳性时,患有乳腺癌的概率为7/76 ≈ 0.092,大约9%。

但是当我们让医生们对这个概率进行估计时,他们所给出答案的中位数是70%,并且有超出三分之一的回答是90%。显然,概率题对人类来说太难了,即便受过大量训练的人也不容易做对。医生们回答错误的原因在于,他们没有考虑到40岁女性的总体患病率并不高。我们将在第3章介绍如何用贝叶斯定理解决这个问题,贝叶斯定理会把这个总体概率纳入考量。

现在,让我们从直观感受进入正式的数学理论。