Reference:
- 怎样用非数学语言讲解贝叶斯定理(Bayes’s theorem)?
- 周志华《机器学习》
1. 贝叶斯定理
1.1贝叶斯定理有什么用
贝叶斯为了解决一个逆概率问题,而提出了贝叶斯定理。
与之相对的正向概率的意思是:假设有一个抽奖活动,抽奖桶里有10个球,其中2个白球,8个黑球,抽到白球算中奖,那么随便摸出一个球,摸出中奖球的概率为: 2 / ( 2 + 8 ) = 2 / 10 2/(2+8)=2/10 2/(2+8)=2/10.
而贝叶斯要解决的"逆概率"问题,如在上面的例子中并不知道抽奖桶里有什么,而是摸出一个球,通过观察这个球的颜色,来预测这个桶里白色球和黑色球的比例。
生活中所遇到的问题,大多像上面问题一样,在决策时面临的信息都是不全的,手中只有有限的信息。在有限信息的情况下,尽可能做一个准确的预测。
比如天气预报说,明天降雨的概率是30%,肯定不是像计算概率那样,重复将明天过上100次,然后计算出大约有30次会下雨,而是利用贝叶斯定理来预测出明天下雨的概率是多少。
因此,贝叶斯定理的用处为:在有限的信息下,能够帮助我们预测出概率。
1.2 贝叶斯决策论
贝叶斯决策论 (Bayesian decision theory)
是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都己知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。下面我们以多分类任务为例来解释其基本原理。
假设有
N
N
N 种可能的类别标记,即
Y
=
{
c
1
,
c
2
,
…
,
c
N
}
\mathcal{Y}=\left\{c_{1}, c_{2}, \ldots, c_{N}\right\}
Y={c1,c2,…,cN},
λ
i
j
\lambda_{ij}
λij 是将一个真实标记为
c
j
c_j
cj 的样本误分类为
c
i
c_i
ci 所产生的损失,基于 后验概率
P
(
c
i
∣
x
)
P(c_i \mid \boldsymbol{x})
P(ci∣x) 可获得将样本
x
\boldsymbol{x}
x 分类为
c
i
c_i
ci 所产生的期望损失(expected loss)
,即在样本
x
\boldsymbol{x}
x 上的“条件风险”(conditional risk)
:
R
(
c
i
∣
x
)
=
∑
j
=
1
N
λ
i
j
P
(
c
j
∣
x
)
.
R\left(c_{i} \mid \boldsymbol{x}\right)=\sum_{j=1}^{N} \lambda_{i j} P\left(c_{j} \mid \boldsymbol{x}\right) .
R(ci∣x)=j=1∑NλijP(cj∣x).
我们的任务是寻找一个判定准则
h
:
X
↦
Y
h: \mathcal{X} \mapsto \mathcal{Y}
h:X↦Y 以最小化总体风险:
R
(
h
)
=
E
x
[
R
(
h
(
x
)
∣
x
)
]
R(h)=\mathbb{E}_{\boldsymbol{x}}[R(h(\boldsymbol{x}) \mid \boldsymbol{x})]
R(h)=Ex[R(h(x)∣x)]
显然,对每个样本
x
\boldsymbol{x}
x,若
h
h
h 能最小化条件风险
R
(
h
(
x
)
∣
x
)
R(h(\boldsymbol{x}) \mid \boldsymbol{x})
R(h(x)∣x),则总体风险
R
(
h
)
R(h)
R(h) 也将最小化。这就产生了 贝叶斯判定准则(Bayes decision rule)
: 为最小化总体风险,只需在每个样本上选择那个能使条件风险
R
(
c
∣
x
)
R(c \mid \boldsymbol{x})
R(c∣x) 最小的类别标记,即:
h
∗
(
x
)
=
arg
min
c
∈
Y
R
(
c
∣
x
)
h^{*}(\boldsymbol{x})=\underset{c \in \mathcal{Y}}{\arg \min } R(c \mid \boldsymbol{x})
h∗(x)=c∈YargminR(c∣x)
此时,
h
∗
h^*
h∗ 称为贝叶斯最优分类器 (Bayes optimal classifier)
,与之对应的总体风险
R
(
h
∗
)
R(h^*)
R(h∗) 称为贝叶斯风险 (Bayes risk)
。
1
−
R
(
h
∗
)
1 -R(h^*)
1−R(h∗) 反映了分类器所能达到的最好性能,即通过机器学习所能产生的模型精度的理论上限。
若使用 0/1 损失函数,则误判损失
λ
i
j
\lambda_{ij}
λij 可写为:
λ
i
j
=
{
0
,
if
i
=
j
1
,
otherwise
\lambda_{i j}=\left\{\begin{array}{ll} 0, & \text { if } i=j \\ 1, & \text { otherwise } \end{array}\right.
λij={0,1, if i=j otherwise
此时的条件风险也被转换为了:
R
(
c
∣
x
)
=
1
−
P
(
c
∣
x
)
R(c \mid \boldsymbol{x})=1-P(c \mid \boldsymbol{x})
R(c∣x)=1−P(c∣x)
于是,最小化分类错误率的贝叶斯最优分类器为:
h
∗
(
x
)
=
arg
max
c
∈
Y
P
(
c
∣
x
)
h^{*}(\boldsymbol{x})=\underset{c \in \mathcal{Y}}{\arg \max } P(c \mid \boldsymbol{x})
h∗(x)=c∈YargmaxP(c∣x)
即对每个样本 x \boldsymbol{x} x,选择能使后验概率 P ( c ∣ x ) P(c \mid \boldsymbol{x}) P(c∣x) 最大的类别标记。
不难看出,欲使用贝叶斯判定准则来最小化决策风险,首先要获得后验概率
P
(
c
∣
x
)
P(c \mid \boldsymbol{x})
P(c∣x)。然而,在现实任务中这通常难以直接获得。从这个角度来看,机器学习所要实现的是基于有限的训练样本集尽可能准确地估计出后验概率
P
(
c
∣
x
)
P(c \mid \boldsymbol{x})
P(c∣x)。大体来说,主要有两种策略:给定
x
\boldsymbol{x}
x ,可通过直接建模
P
(
c
∣
x
)
P(c \mid \boldsymbol{x})
P(c∣x) 来预测
c
c
c,这样得到的是 "判别式模型"(discriminative models)
;也可先对联合概率分布
P
(
x
,
c
)
P(\boldsymbol{x},c)
P(x,c) 建模,然后再由此获得
P
(
c
∣
x
)
P(c \mid \boldsymbol{x})
P(c∣x), 这样得到的是 "生成式模型"(generative models)
。决策树、 BP 神经网络、支持向量机等,都可归入判别式模型的范畴。对生成式模型来说,必然考虑:
P
(
c
∣
x
)
=
P
(
x
,
c
)
P
(
x
)
P(c \mid \boldsymbol{x})=\frac{P(\boldsymbol{x}, c)}{P(\boldsymbol{x})}
P(c∣x)=P(x)P(x,c)
基于贝叶斯定理,
P
(
c
∣
x
)
P(c \mid \boldsymbol{x})
P(c∣x) 可写为:
P
(
c
∣
x
)
=
P
(
c
)
P
(
x
∣
c
)
P
(
x
)
P(c \mid x)=\frac{P(c)P(\boldsymbol{x} \mid c)}{P(\boldsymbol{x})}
P(c∣x)=P(x)P(c)P(x∣c)
-
P
(
c
)
P(c)
P(c):
类“先验”(prior)概率
,也就是在不知道 x \boldsymbol{x} x 事件的前提下,我们对 c c c 事件概率的一个主观判断; -
P
(
x
∣
c
)
P(\boldsymbol{x} \mid c)
P(x∣c):样本
x
\boldsymbol{x}
x 相对于类标记
c
c
c 的
类条件概率(class-conditional probability)
,或称为"似然" (likelihood)
; -
P
(
x
)
P(\boldsymbol{x})
P(x):用于归一化的
"证据" (evidence) 因子
,对给定样本 x \boldsymbol{x} x,证据因子 P ( x ) P(\boldsymbol{x}) P(x) 与类标记无关( P ( x ) P(\boldsymbol{x}) P(x) 对所有类标记均相同),因此估计 P ( c ∣ x ) P(c \mid \boldsymbol{x}) P(c∣x) 的问题就转化为如何基于训练数据 D D D 来估计先验 P ( c ) P(c) P(c) 和似然 P ( x ∣ c ) P(\boldsymbol{x} \mid c) P(x∣c); -
P
(
c
∣
x
)
P(c \mid \boldsymbol{x})
P(c∣x):
后验概率(Posterior probability)
,即在 x \boldsymbol{x} x 事件发生之后,我们对 c c c 事件概率的重新评估。因此,贝叶斯公式的中心思想为:我们先根据以往的经验预估一个先验概率 P ( c ) P(c) P(c),然后加入新的信息 x \boldsymbol{x} x,这样有了新的信息后,我们对事件 c c c 的预测就更加准确。
P
(
x
∣
c
)
P
(
x
)
\frac{P(\boldsymbol{x} \mid c)}{P(\boldsymbol{x})}
P(x)P(x∣c) 称为可能性函数,这是一个调整因子,也就是新信息
x
\boldsymbol{x}
x 带来的调整,作用是将先验概率(之前的主观判断)调整到更接近真实概率。
可能性函数可以理解为新信息过来后,对先验概率的一个调整。比如我们刚开始看到“人工智能”这个信息,你有自己的理解(先验概率-主观判断),但是当你学习了一些数据分析,或者看了些这方面的书后(新的信息),然后你根据掌握的最新信息优化了自己之前的理解(可能性函数-调整因子),最后重新理解了“人工智能”这个信息(后验概率)
- 如果 P ( x ∣ c ) P ( x ) > 1 \frac{P(\boldsymbol{x} \mid c)}{P(\boldsymbol{x})}>1 P(x)P(x∣c)>1,意味着"先验概率"被增强,事件 c c c 的发生的可能性变大;
- 如果 P ( x ∣ c ) P ( x ) = 1 \frac{P(\boldsymbol{x} \mid c)}{P(\boldsymbol{x})}=1 P(x)P(x∣c)=1,意味着 x \boldsymbol{x} x 事件无助于判断事件 c c c 的可能性;
- 如果 P ( x ∣ c ) P ( x ) < 1 \frac{P(\boldsymbol{x} \mid c)}{P(\boldsymbol{x})}<1 P(x)P(x∣c)<1,意味着"先验概率"被削弱,事件 c c c 的可能性变小。
1.2.1 全概率定理
假设我们要求得,从上一时间点到下一时间点
X
i
X_i
Xi 的概率。这时需要遍历其所有可能来自的位置,即上一时间点不同的
X
j
X_j
Xj,然后乘上从
j
j
j 到
i
i
i 的概率。该公式通常被称为全概率公式
:
P
(
B
)
=
∑
P
(
B
∣
A
i
)
∗
P
(
A
i
)
P(B)=\sum P(B|A_i)*P(A_i)
P(B)=∑P(B∣Ai)∗P(Ai)
这里对其他变量的加权求和运算被称为“卷积”。
2. 示例
癌症测试:
假定存在一种特定的癌症,但是这种癌症很罕见----1000个人里面仅仅只有1个人得这种癌症,也就是说1000个人中有999人不会得这种病。
假设我们有一个测试,这个测试可以得出结果阳性或者阴性,如果得了癌症,测试出结果阳性的概率是0.8;假设没有得癌症,测试结果为阳性的概率仅仅只有0.1。
问题是,假设我做了一次测试,其结果为阳性,那么患有癌症的概率是多少?
由题干可知,
- 得癌症的概率为: P ( C ) = 0.001 P(C)=0.001 P(C)=0.001, 没有得癌症的概率为: P ( T C ) = 0.999 P(TC)=0.999 P(TC)=0.999;
- P ( P O S ∣ C ) = 0.8 P(POS|C)=0.8 P(POS∣C)=0.8, P ( P O S ∣ T C ) = 0.1 P(POS|TC)=0.1 P(POS∣TC)=0.1;
- 要求得的概率是: P ( C ∣ P O S ) P(C|POS) P(C∣POS).
2.1 方法一
P ( C ∣ P O S ) = P ( P O S ∣ C ) ∗ P ( C ) P ( P O S ) = P ( P O S ∣ C ) ∗ P ( C ) / ( P ( P O S ∣ C ) ∗ P ( C ) + P ( P O S ∣ T C ) ∗ P ( T C ) P(C|POS)=\frac{P(POS|C)*P(C)}{P(POS)}= P(POS|C)*P(C)/(P(POS|C)*P(C)+P(POS|TC)*P(TC) P(C∣POS)=P(POS)P(POS∣C)∗P(C)=P(POS∣C)∗P(C)/(P(POS∣C)∗P(C)+P(POS∣TC)∗P(TC)
得, P ( C ∣ P O S ) = 0.0079 P(C|POS)=0.0079 P(C∣POS)=0.0079
2.2 方法二
由贝叶斯法则的结果,在给定 POS 的前提下,非标准化的 C,是先验概率的乘积0.001乘上0.8,即在癌症状态下检测出阳性结果的概率:
P
ˉ
(
C
∣
P
O
S
)
=
0.001
×
0.8
=
0.0008
\bar P(C|POS)=0.001\times0.8=0.0008
Pˉ(C∣POS)=0.001×0.8=0.0008
对于相对的事件,也就是没有得癌症的事件,在给定阳性检查结果的条件下,这个非标准化的概率:
P
ˉ
(
T
C
∣
P
O
S
)
=
0.999
×
0.1
=
0.0999
\bar P(TC|POS)=0.999\times0.1=0.0999
Pˉ(TC∣POS)=0.999×0.1=0.0999
我们的标准因子就是他们的求和,结果是:
α
=
0.0008
+
0.0999
=
0.1007
\alpha = 0.0008+0.0999 = 0.1007
α=0.0008+0.0999=0.1007
则,
P
(
C
∣
P
O
S
)
=
0.0008
0.1007
=
0.0079
P(C|POS)= \frac{0.0008}{0.1007} = 0.0079
P(C∣POS)=0.10070.0008=0.0079