Site Overlay

条件概率、全概率公式和贝叶斯定理

概率论作业。前半部分还是认真写了的,不过后面其实烂尾了。虽然数学的世界很奇妙,但对我而言学起来真的艰难。


摘要

概率论对于计算机科学领域,尤其是现代的人工智能学科而言,是根基一样的理论。本文介绍了概率论中的条件概率的几何意义,全概率公式和贝叶斯定理,并使用朴素贝叶斯的方法,实现了一个垃圾邮件的分类器,展示了贝叶斯定理在我们的生活中的应用。

正文

在介绍贝叶斯定理之前,我们先回顾一下几个基本概念。

边缘概率

仅与单个随机变量有关的概率称为边缘概率,比如 $P(X=a)$ 或 $P(Y=b)$。

它是一个事件发生的概率,与其它的随机变量无关,若该随机变量是独立的,那么它就是该事件发生的概率。如果这个变量依赖于其他变量(把这个变量叫做因变量),则边缘概率就是事件发生的概率对因变量的所有情况求和,这个计算规则称之为求和规则。

联合概率

多个条件同时满足的概率,比如把 $X=a \and Y=b$(两个事件同时发生)的概率记作 $P{X=a, Y=b}$。两个以上变量同理。

条件概率

条件概率的定义

把条件 $Y=b$ 成立下,$X =a $ 的概率称为条件概率,记作 $P{X=a|y=b}$。条件概率具有这样的性质:在 $Y=b$ 的条件下,$X$ 的条件分布也是一种 $X$ 的概率分布,因此穷举$X$ 的所有取值下的概率,再对这些值概率求和,结果为为1。条件概率的计算公式如下:
$$
P(X=a|Y=b) = \dfrac{P(X=a, Y=b)}{P(Y=b)}
$$

条件概率的几何意义

我们使用一个面积为 1 的封闭图形表示样本空间,记作 $\Omega$。用 $\Omega$ 子空间中的封闭图形表示某个事件,记作 $A$,以 $A$ 的面积表示概率(因为 $P(A) = SA/S\Omega$,而$\Omega = 1$,所以 $P(A) = S_A$)。则事件 $A$ 的无条件概率就是 $P(A|\Omega) = P(A)$。

考虑有 $\Omega$ 子空间中的另一个封闭图形 $B$,则条件概率 $P(A|B)$ 相当于考虑封闭图形 $A$ 占有封闭图形 $B$ 的面积。

而 $A$ 与 $B$ 的关系有可以分为有交集和无交集。有交集的情况又可以划分为完全包含或不完全包含。

无交集的情况

image-20201208150848184

在这种情况下,$B$ 不占有 $A$ 的任何面积,相当于 $P(A|B) = 0$。这表示,两个事件相互排斥,则条件概率为 $0$。

包含的情况

image-20201208151018706

我们以 $B\subseteq A$ 为例,则 $P(A|B)$ 表示 $B$ 的面积比上 $A$ 的面积,即 $P(A|B) = \dfrac{P(B)}{P(A)}$。

另外, $P(B|A)$ 表示 $B$ 中 $A$ 的面积比上 $B$ 的面积,即 $P(B|A) = 1$。

部分包含的情况

image-20201208151724863

这种情况下,$A\cap B \ne \Phi$,$P(A|B)$ 表示 $A \cap B$ 的面积比上 $B$ 的面积,即 $P(A|B) = \dfrac{P(A,B)}{P(B)}$。

对于前两种情况,这个公式同样适用。于是我们就得到了条件概率公式。

$P(A,B) = P(A|B) P(B)$ 的几何解释

前面我们知道 $P(A|B)$ 实际上表示的是交集在 $B$ 的权重。所以权重乘以 $B$ 的面积就相当于求这块交集的面积。

另外,前面所使用的这种几何面积表示概率的方法,实际上是概率空间,人们通过概率空间结合抽象代数、测度论等,从基础上构建起概率论的大厦。

概率空间

概率空间是一个总测度为 $1$ 的测度空间,记作 $(\Omega, F, P)$。$\Omega$ 称为样本空间,是一个非空间集合,表示试验中所有可能出现的结果。$\Omega$ 的元素记作 $\omega$,是样本输出

$F$ 是 $\Omega$ 的幂集的非空子集,称为事件集(注意,因为是幂集的子集,所以它的所有元素也都是集合)。满足以下性质:

  1. 包含不可能事件($\Phi \in F$)
  2. $\Sigma \in F \to \Sigma^c \in F$,其中 $\Sigma \in F$,$c \in \mathbb{Z}^+$。
  3. 可列可加($\Sigma_1, \Sigma_2, \cdots, \Sigman \in F \to \cup{i=1}^n\Sigma_i \in F$)

$P$ 是概率测度。记作 $Pr$ 或 $\mathbb{P}$。满足以下性质:

  1. $\forall \Sigma \in F, Pr(\Sigma)\in[0,1]$。
  2. $Pr(\Omega) = 1$
  3. 互斥事件 $\Sigma_1, \Sigma_2, \cdots, \Sigma_n \in F$ 的联合概率等于各自概率的乘积。

全概率公式

完备事件组

对概率空间 $\Omega$ 的可测划分 $B_n$ 称为一个完备事件组。

全概率公式

完备事件组记为 ${B_n: n= 1, 2, 3, \cdots }$。则对于任意事件 $A$有:

$P(A) =\sum_n P(AB_n)$。

由于联合概率可表示为条件概率乘以联合条件的权重,即:

$P(A,B_n) = P(A|B_n) P(B_n)$

所以:

$P(A) = \sum_n P(A|B_n) P(B_n)$ 此为全概率公式

全概率公式的意义

通俗地说,它表示:一个事件发生的概率,是它在所有细分情况下发生的概率之和。

计算条件概率的替代方法——贝叶斯定理

有时候, 联合概率难以计算,而我们又想知道条件概率,这个时候可以用下面的公式:

  1. $P(A|B) = P(B|A) P(A) / P(B)$
  2. $P(B|A) = P(A|B) P(B) / P(A)$

其中,如果 $B$ 是原因,而 $A$ 是结果,则 $P(B)$ 是先验概率。$P(A)$ 是后验概率。其中的“验”就是经验事实。

这种对条件概率的替代计算被称为 Bayes 规则,即贝叶斯定理。这解决了当时的“逆概率”问题:

最大似然估计(MLE)

假设有一个病人去看医生,他出现了一系列的症状 $O$(作为结果)。而引发这些症状有一系列可能的原因 $I_1, I_2, I_3$。那么,如何判断他的这些症状,最有可能是哪种原因引起的呢?

我们只需要计算 $P(O | I_1)$,$P(O | I_2)$,$P(O | I_3)$,然后取其中的最大值即可。如果计算发现,$P(O | I_1)$ 远远大于 $P(O | I_2)$,$P(O | I_3)$,我们就可以推测,最有可能是 $I_1$ 原因引发了疾病。这就是最大似然估计(Maximum likelihood estimation,MLE)

那么我们更进一步,如何计算 $P(O|I_1)$ 等数值呢?根据条件概率的定义,计算公式如下:
$$
P(O|I_1) = \frac{P(O, I_1)}{P(I_1)}
$$
但是在现实世界中,调查统计得到 $P(I_1|O)$ 比 $P(O,I_1)$ 容易得多。我们是否可以通过 $P(I_1|O)$ 直接计算 $P(O|I_1)$ 呢?这就是当时困扰数学家的逆概率问题。解决方法就是贝叶斯公式:
$$
P(O|I_1) = P(I_1 | O) P(O) / P(I_1)
$$

贝叶斯定理的应用

我们以经典例子“垃圾邮件”过滤为例。z在生活中,我们经常会收到垃圾邮件,或者垃圾短信。现代的应用程序一般都提供了垃圾邮件的过滤选项。那么这样的过滤是如何实现的呢?

我们注意到,垃圾邮件里经常会出现一些特定的广告词语,例如“发票”“赚钱”“推荐”“报告”“特卖”等等,当然,也会出现一些正常的词语。所以,用贝叶斯公式的方法,我们可以计算出现某些词语之后是垃圾邮件的概率 ,设定一个阈值,然后超过这个阈值的邮件就标记为垃圾邮件。

说到比例,就不难让我们联想到条件概率的几何意义。我们可以把一封垃圾邮件经过分词,得到组成它的词语集合 $W = {w_1, w_2, \cdots}$。

样本训练

由于贝叶斯过滤必须建立在已有的统计结果以上,所以我们必须使用两组样本进行训练。一组是正常邮件,一组是垃圾邮件。

训练的过程如下:

对于每个邮件,提取出每一个词语,然后计算这个词语在正常邮件中出现的概率,以及这个词语在垃圾邮件中出现的概率。比如假设“发票”这个词语在 5000 个正常邮件中有 100 次出现,那么出现概率就是 $100/ 5000 = 0.02$。

样本训练将会得到类似这样的一个结果:

word1, 0.02, 0.4
word2, 0.01, 0.06
...

我们用 S 表示垃圾邮件,H 表示正常邮件。

第一列表示的是被测词语,第二列表示 $P(\text{word}|H)$,第三列表示 $P(\text{word}|S)$

计算方法和实例

假定 $P(S)$ ,$P(H)$ 的先验概率都是 $0.5$。然后我们依次读取新邮件的每个词语。

比如读到了一个词语“发票”,那么它是垃圾邮件的概率是多少呢?

根据贝叶斯公式:

$$
P(S|w_1) = \frac{P(w_1|S) P(w_1)}{P(S)}
$$
根据全概率公式:
$$
P(w_1) = P(w_1|S)P(S) + P(w_1|H)P(H)
$$
带入可得:
$$
P(S|w_1) = \frac{P(w_1|S)}{P(S)}[P(w_1|S)P(S) + P(w_1|H)P(H)]
$$
而 $P(w_1|S) = 0.4$,$P(w_1|H) = 0.02$,$P(S) = P(H) = 0.5$,计算如下:
$$
P(S|w_1) = (0.4/0.5)(0.4\times0.5+0.02\times0.5)=0.4\times 0.42=0.168
$$
这表示是垃圾邮件的概率是 $16.8\%$.

以上所使用的方法称为 朴素贝叶斯。朴素贝叶斯方法是基于贝叶斯定理的一组有监督学习算法,它的特点是假定所有特征是相互独立的。

当特征以向量 $x_1, x_2, \cdots x_n$ 表示时,贝叶斯定理如下:
$$
P(y \mid x_1, \dots, x_n) = \frac{P(y) P(x_1, \dots x_n \mid y)}{P(x_1, \dots, x_n)}
$$
因为我们有独立性假设:
$$
P(x_i | y, x1, \dots, x{i-1}, x_{i+1}, \dots, x_n) = P(x_i | y)
$$
前一个式子可以表示为:
$$
P(y \mid x_1, \dots, xn) = \frac{P(y) \prod{i=1}^{n} P(x_i \mid y)}{P(x_1, \dots, x_n)}
$$
而根据训练集得到的概率数据,就可以进行分类操作了。朴素贝叶斯的学习和分类的速度非常快,相较于其他算法,可以避免数据多时性能大幅下降。

参考文献

[Bayes' theorem in Artificial intelligence](https://www.javatpoint.com/bayes-theorem-in-artifical-intelligence#:~:text=Bayes' theorem is also known,probabilities of two random events.)

1 thought on “条件概率、全概率公式和贝叶斯定理

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注