前言
本教程是让你从零开始入门到理解概率图模型的基本思想,这里你只需要基本的概率论基础就可以学习整篇的内容,如果你已经忘记了概率论内容也没关系,我们会带你一起复习概率论中需要的基本公式,保证你只需要通过阅读此文就可以掌握概率图的核心内容。同时我们会推理公式一步步证明概率图中贝叶斯网络等公式,此外我们还会举相关例子来帮助理解,如果是已经有基础的同学,可以选择性阅读。
两个基本公式
在开启概率图模型学习之前,一起先来复习一下概率论中的基本概念和公式。
对于含有多个随机变量的分布如
P
(
x
1
,
x
2
)
P(x_1,x_2)
P(x1,x2)分布,我们称为联合概率分布;相应的只有一个变量的分布如
P
(
x
1
)
P(x_1)
P(x1),称之为边缘概率 。在联合概率分布和边缘概率分布中存在如下的关系 Sum Rule 如公式(1)所示。(为了简洁,我们下面只采用两个变量的概率分布作为举例说明)
P
(
X
1
)
=
∑
x
∈
X
2
P
(
X
1
,
X
2
)
(1)
P(X_1) = \sum_{x\in X_2}P(X_1,X_2) \tag{1}
P(X1)=x∈X2∑P(X1,X2)(1)
公式比较抽象的,我们来看看具体的例子以方便我们理解这个公式,让我们有一个更加直观的印象。下面表格是校园中男生和女生穿衣的统计联合分布。
性别 | 服装 | 概率 |
---|---|---|
男 | 裤子 | 0.45 |
男 | 裙子 | 0.05 |
女 | 裤子 | 0.25 |
女 | 裙子 | 0.25 |
P
(
X
2
=
穿
裙
子
)
=
P
(
X
1
=
男
,
X
2
=
穿
裙
子
)
+
P
(
X
1
=
女
,
X
2
=
穿
裙
子
)
=
0.05
+
0.25
=
0.3
P
(
X
2
=
穿
裤
子
)
=
P
(
X
1
=
男
,
X
2
=
穿
裤
子
)
+
P
(
X
1
=
女
,
X
2
=
穿
裤
子
)
=
0.45
+
0.25
=
0.7
\begin{aligned} P(X_2 = 穿裙子) =& P(X_1 = 男,X_2 = 穿裙子) + P(X_1=女,X_2 = 穿裙子) \\ =& 0.05 + 0.25 = 0.3 \\ P(X_2 = 穿裤子) =& P(X_1 = 男,X_2 = 穿裤子) + P(X_1=女,X_2 = 穿裤子) \\ =&0.45 + 0.25 = 0.7 \end{aligned}
P(X2=穿裙子)==P(X2=穿裤子)==P(X1=男,X2=穿裙子)+P(X1=女,X2=穿裙子)0.05+0.25=0.3P(X1=男,X2=穿裤子)+P(X1=女,X2=穿裤子)0.45+0.25=0.7
我们可以得到穿衣的边缘概率,如下表所示:
穿衣 | 概率 |
---|---|
裤子 | 0.7 |
裙子 | 0.3 |
根据上面的例子你会发现,使用表格来描述随机变量的概率分布能够比公式本身更加的直观。
P
(
X
1
,
X
2
)
=
P
(
X
1
∣
X
2
)
∗
(
X
2
)
=
P
(
X
2
∣
x
1
)
∗
P
(
X
1
)
(2)
P(X_1,X_2) = P(X_1| X_2) * (X_2) = P(X_2|x_1)*P(X_1) \tag{2}
P(X1,X2)=P(X1∣X2)∗(X2)=P(X2∣x1)∗P(X1)(2)
利用上面的规则我们可以推导出链式法则
P
(
X
1
,
X
2
,
X
3
,
.
.
.
,
X
n
)
=
P
(
X
1
,
Y
)
=
P
(
X
1
∣
Y
)
∗
P
(
Y
)
=
P
(
X
1
∣
X
2
,
.
.
.
,
X
n
)
∗
P
(
X
2
,
.
.
.
,
X
n
)
=
P
(
X
1
∣
X
2
,
.
.
.
,
X
n
)
∗
P
(
X
2
∣
X
3
,
.
.
.
,
X
n
)
∗
P
(
X
3
,
.
.
.
,
X
n
)
.
.
.
=
P
(
X
1
∣
X
2
,
.
.
.
,
X
n
)
∗
P
(
X
2
∣
X
3
,
.
.
.
,
X
n
)
∗
P
(
X
3
∣
X
4
,
.
.
.
,
X
n
)
∗
.
.
.
P
(
X
n
−
1
∣
X
n
)
∗
P
(
X
n
)
(3)
\begin{aligned} P(X_1,X_2,X_3,...,X_n) =& P(X_1, Y) \\ =& P(X_1|Y) *P(Y) \\ =& P(X_1|X_2,...,X_n) *P(X2,...,X_n) \\ =& P(X_1|X_2,...,X_n) *P(X_2|X_3,...,X_n) * P(X_3,...,X_n) \\ ... \\ =& P(X_1|X_2,...,X_n) *P(X_2|X_3,...,X_n) * P(X_3|X_4,...,X_n) * ...P(X_{n-1}| X_n)*P(X_n) \\ \tag{3} \end{aligned}
P(X1,X2,X3,...,Xn)====...=P(X1,Y)P(X1∣Y)∗P(Y)P(X1∣X2,...,Xn)∗P(X2,...,Xn)P(X1∣X2,...,Xn)∗P(X2∣X3,...,Xn)∗P(X3,...,Xn)P(X1∣X2,...,Xn)∗P(X2∣X3,...,Xn)∗P(X3∣X4,...,Xn)∗...P(Xn−1∣Xn)∗P(Xn)(3)
独立性
- independence
独立性也就说两个事件之间相互独立,不互相影响。如下图:
根据图中所示,我们其实很容易就可以发现,A和B之间是相互独立的,于是我们就得到了下面的公式:
P
(
A
∣
B
)
=
P
(
A
)
i
f
A
⊥
B
(4)
P(A|B) = P(A) \ \ if A \perp B \tag{4}
P(A∣B)=P(A) ifA⊥B(4)
2. conditional independence
上面只是两个变量之间简单的独立性,如果是像概率图模型中的多个变量怎么知道变量之间是否有独立性呢。我们可以看下面的图,图中的4种情况是是关于独立性。代表的含义是在已知Z条件下,
X
X
X和
Y
Y
Y是独立的,
(
X
⊥
Y
)
∣
Z
(X \perp Y)| Z
(X⊥Y)∣Z。
概率图
为什么要概率图
上面例子我们只使用了二元变量的联合分布,每个变量只有两种可能性,我们一共使用了4行来记录。如果是三元变量的联合分布就是 P ( X 1 , X 2 , X 3 ) P(X_1,X_2,X_3) P(X1,X2,X3),每个变量如果依旧是两种可能性的话,那么就需要使用8行记录。如果是多元变量,那么联合分布 P ( X 1 , X 2 , . . . , X n ) P(X_1,X_2,...,X_n) P(X1,X2,...,Xn)的记录表格的行数就以指数增加,面对如此复杂的关系,我们为了有效的表达,限定变量之间存在一定依赖关系,将会减少最终记录的表格行数。
贝叶斯网络
这里是重点,建议多次阅读!!!,我们想要得到上面五个变量的联合分布
P
(
D
,
I
,
G
,
S
,
L
)
P(D,I,G,S,L)
P(D,I,G,S,L) (D代表diffculty,I代表Intelligence,G代表Grade,S代表Sat,L代表Letter), 利用公式(3)我们可以得到:
P
(
D
,
I
,
G
,
S
,
L
)
=
P
(
L
∣
G
,
S
,
D
,
I
)
∗
P
(
G
,
S
,
D
,
I
)
=
P
(
L
∣
G
,
S
,
D
,
I
)
∗
P
(
G
∣
S
,
D
,
I
)
∗
P
(
S
,
D
,
I
)
=
P
(
L
∣
G
,
S
,
D
,
I
)
∗
P
(
G
∣
S
,
D
,
I
)
∗
P
(
S
∣
D
,
I
)
∗
P
(
D
,
I
)
=
P
(
L
∣
G
,
S
,
D
,
I
)
∗
P
(
G
∣
S
,
D
,
I
)
∗
P
(
S
∣
D
,
I
)
∗
P
(
D
∣
I
)
∗
P
(
I
)
\begin{aligned} P(D,I,G,S,L) =& P(L|G,S,D,I ) * P(G,S,D,I) \\ =& P(L|G,S,D,I ) * P(G|S,D,I) * P(S,D,I) \\ =& P(L|G,S,D,I ) * P(G|S,D,I) * P(S| D,I) * P(D,I) \\ =& P(L|G,S,D,I ) * P(G|S,D,I) * P(S| D,I) * P(D| I) *P(I) \end{aligned}
P(D,I,G,S,L)====P(L∣G,S,D,I)∗P(G,S,D,I)P(L∣G,S,D,I)∗P(G∣S,D,I)∗P(S,D,I)P(L∣G,S,D,I)∗P(G∣S,D,I)∗P(S∣D,I)∗P(D,I)P(L∣G,S,D,I)∗P(G∣S,D,I)∗P(S∣D,I)∗P(D∣I)∗P(I)
由于在给定
G
G
G的情况下,
L
L
L和其他变量都独立(可以参考独立性中的四种情况),
P
(
D
,
I
,
G
,
S
,
L
)
=
P
(
L
∣
D
)
∗
P
(
G
∣
S
,
D
,
I
)
∗
P
(
S
∣
D
,
I
)
∗
P
(
D
∣
I
)
∗
P
(
I
)
\begin{aligned} P(D,I,G,S,L) = & P(L|D) * P(G|S,D,I) * P(S|D, I) * P(D|I) *P(I) \end{aligned}
P(D,I,G,S,L)=P(L∣D)∗P(G∣S,D,I)∗P(S∣D,I)∗P(D∣I)∗P(I)
同样的我们也可以对其余变量进行相同操作,最终得到熟悉的公式:
P
(
D
,
I
,
G
,
S
,
L
)
=
P
(
L
∣
D
)
∗
P
(
G
∣
D
,
I
)
∗
P
(
S
∣
I
)
∗
P
(
D
)
∗
P
(
I
)
(6)
\begin{aligned} P(D,I,G,S,L) = & P(L|D) * P(G|D,I) * P(S| I ) * P(D) *P(I) \tag{6} \end{aligned}
P(D,I,G,S,L)=P(L∣D)∗P(G∣D,I)∗P(S∣I)∗P(D)∗P(I)(6)
这样我们便得到了贝叶斯网络,之前看了很多博客都是直接给出上面的公式,但是又不给出推论过程,总是让人难以信服,本教程的核心就是带着你重新一步步计算,最终借助独立性和链式法则得到最终的贝叶斯网络。当我们有了公式(6)之后,我们可以根据图中的小表格,得到多元变量联合分布情况。
垃圾邮件分类系统
(留坑)