一直都觉得贝叶斯定理是个非常神奇的东西,以前总是被什么先验概率,后验概率,最大似然估计什么的搞得昏头转向的,让人摸不着北,总感觉贝叶斯定理有点违反直觉, 但是生活中却又经常会遇到。
相信很多人对下面这样的问题一定不感到陌生:
假设有两个盒子,我们姑且称为 A 和 B, A 盒子里有 4 个红球,6 个绿球,B 盒子里有 2 个红球,8 个绿球。我们从 A 盒子 或者 B 盒子里取出一个球,记录球的颜色,然后再放回去,这样做了很多次这样的取球实验,假设从 A 盒子或者 B 盒子取球的概率都是一样的,都为
1/2
1
/
2
,那么:
1)取到红球的概率是多少
2)如果取到的球是绿球,那么这个红球是从 B 盒子取出来的概率是多少
相信对于问题 (1),很多人都会有一个直观的理解,但是对于问题 (2),恐怕就得好好想想了,贝叶斯定理,就是用来帮我们解决这个问题的,对于观察到的数据 D D ,我们要求其背后的假设 ,这个时候就要用贝叶斯定理来解决。
在解答这道题之前,我们先来看看大名鼎鼎的贝叶斯定理,到底是个什么鬼:
没错,这就是传说中的贝叶斯定理,上面这个表达式, P(X,Y) P ( X , Y ) 是联合概率, P(X),P(Y) P ( X ) , P ( Y ) 是边缘概率, P(Y|X),P(X|Y) P ( Y | X ) , P ( X | Y ) 是条件概率,为了说明这几个概念之间的关系,在 pattern recognition and machine learning 中,列举了一个很形象的例子:
想象有这样一组格子,有一系列的点, 随机的落在这些格子里,横向的格子坐标用
X
X
,纵向的格子坐标用
Y
Y
表示,通过计算得知,所有格子里的点的总和为
N
N
,如上图所示,在
X=i,Y=j
X
=
i
,
Y
=
j
这个格子里,落入的点的数目为
nij
n
i
j
,那么:
如果我们想知道第
i
i
列所有的点的数目,那么我们只要把第
i
i
列所有格子里的点的数目相加即可:
同样的,我们可以得到:
因此,我们可以得到:
有了这个定理,我们再来回头看看之前的问题,我们假设 X X 表示取盒子, Y Y 表示取球,我们可以定义 X={A,B} X = { A , B } , Y={r,g} Y = { r , g } , 根据之前的定义,我们知道:
P(X=A)=P(X=B)=12 P ( X = A ) = P ( X = B ) = 1 2
利用条件概率,我们可以求得:
P(Y=r|X=A)=410,P(Y=g|X=A)=610
P
(
Y
=
r
|
X
=
A
)
=
4
10
,
P
(
Y
=
g
|
X
=
A
)
=
6
10
P(Y=r|X=B)=210,P(Y=g|X=B)=810
P
(
Y
=
r
|
X
=
B
)
=
2
10
,
P
(
Y
=
g
|
X
=
B
)
=
8
10
对于第一个问题, 就是求 P(Y=r) P ( Y = r ) 的概率 :
P(Y=r)=P(Y=r,X=A)+P(Y=r,X=B)=310 P ( Y = r ) = P ( Y = r , X = A ) + P ( Y = r , X = B ) = 3 10
对于第二个问题,就是求 P(X=B|Y=g) P ( X = B | Y = g ) 的概率 :
根据贝叶斯定理,我们可以得到:
因为 P(Y=r)=3/10 P ( Y = r ) = 3 / 10 ,所以 P(Y=g)=7/10 P ( Y = g ) = 7 / 10 ,而且通过计算我们可以得到 P(X=B,Y=g)=4/10 P ( X = B , Y = g ) = 4 / 10 ,所以
在我们没有看到球之前,我们只能根据先验,认为 P(X = B) 的概率是 1/2 1 / 2 ,但是一旦我们看到取出来的球是绿球之后,我们立马修正了我们的判断,其后验概率变成了 P(X=B|Y=g)=4/7 P ( X = B | Y = g ) = 4 / 7 ,比一半要高一点,因为 A A 盒子里有 6 个绿球,而 B B 盒子里有 8 个绿球,所以,绿球从 B 盒取出来的概率也应该更高一点,这是符合常识的。
从普通的贝叶斯定理出发,机器学习的很多模型和概念都可以建立在这基础上,像我们熟悉的最大似然估计,最大后验概率估计等,都可以看到贝叶斯的定理在发挥作用。后面,我们会继续探讨贝叶斯和机器学习的很多联系。