背景知识
D
=
(
x
1
,
x
2
,
⋯
,
x
n
)
\boldsymbol{D}=(x_1,x_2,\cdots,x_n)
D=(x1,x2,⋯,xn)为对某个随机变量X进行n次独立试验获得的试验结果(即数据集)。
w
\boldsymbol{w}
w为该随机变量所服从的分布函数的参数向量。则根据贝叶斯公式有:
P
(
w
∣
D
)
=
P
(
D
∣
w
)
P
(
w
)
P
(
D
)
P(\boldsymbol{w}|\boldsymbol{D}) = \frac{P(\boldsymbol{D}|\boldsymbol{w})P(\boldsymbol{w})}{P(\boldsymbol{D})}
P(w∣D)=P(D)P(D∣w)P(w)
- 其中 P ( w ∣ D ) P(\boldsymbol{w}|\boldsymbol{D}) P(w∣D)是在已知试验结果后参数向量的后验概率分布;
- P ( D ∣ w ) P(\boldsymbol{D}|\boldsymbol{w}) P(D∣w)是在参数向量取不同的值的时候,获得试验结果的概率,即似然函数。往往就是数据集中的数据对应的概率密度的乘积;
- P ( w ) P(\boldsymbol{w}) P(w)就是参数向量取不同的值的概率,即先验概率分布。
频率学派往往通过最大化似然函数 P ( D ∣ w ) P(\boldsymbol{D}|\boldsymbol{w}) P(D∣w)来寻找能够使已获得的数据集发生的概率最大的参数。该思想往往建立在参数向量取不同值的概率是相同的假设下,即假设参数向量的先验分布 P ( w ) P(\boldsymbol{w}) P(w)为均匀分布。
而贝叶斯学派则往往不承认这种假设,即认为参数向量的先验分布并不是均匀分布,从而会计算参数分布的后验概率分布,寻找后验概率最大值对应的参数。
为了便于计算,往往还会构造出共轭先验分布(Conjugate Prior Distribution),使得后验分布的函数形式与先验分布一致。这样的话就可以在新的数据集出现后,继续计算新的后验分布,如对同一个事件又出现了一个新的独立的数据集
D
′
=
(
x
1
′
,
x
2
′
,
⋯
,
x
n
′
)
\boldsymbol{D'}=(x'_1,x'_2,\cdots,x'_n)
D′=(x1′,x2′,⋯,xn′),则有:
P
(
w
∣
D
,
D
′
)
=
P
(
D
,
D
′
∣
w
)
P
(
w
)
P
(
D
,
D
′
)
=
P
(
D
′
∣
w
)
P
(
D
∣
w
)
P
(
w
)
P
(
D
′
)
P
(
D
)
=
P
(
D
′
∣
w
)
P
(
D
′
)
⋅
P
(
w
∣
D
)
\begin{aligned} P(\boldsymbol{w}|\boldsymbol{D,D'}) & = \frac{P(\boldsymbol{D,D'}|\boldsymbol{w})P(\boldsymbol{w})}{P(\boldsymbol{D,D'})} \\ & = \frac{P(\boldsymbol{D'}|\boldsymbol{w})\color{red}{P(\boldsymbol{D}|\boldsymbol{w})P(\boldsymbol{w})}}{P(\boldsymbol{D'})\color{red}{P(\boldsymbol{D})}} \\ & = \frac{P(\boldsymbol{D'}|\boldsymbol{w})}{P(\boldsymbol{D'})} \cdot \color{red}{P(\boldsymbol{w}|\boldsymbol{D})} \end{aligned}
P(w∣D,D′)=P(D,D′)P(D,D′∣w)P(w)=P(D′)P(D)P(D′∣w)P(D∣w)P(w)=P(D′)P(D′∣w)⋅P(w∣D)
从上式就可以看出,可以在旧数据集的基础上,根据新数据集的似然函数 P ( D ′ ∣ w ) P(\boldsymbol{D'}|\boldsymbol{w}) P(D′∣w)继续计算后验概率,结合流式计算等技术就可以持续优化更新模型,实现实时学习。
Beta分布
Beta分布是伯努利分布或二项分布中事件发生概率
p
p
p的共轭先验分布。其公式为:
Beta
(
p
∣
a
,
b
)
=
Γ
(
a
+
b
)
Γ
(
a
)
Γ
(
b
)
p
a
−
1
(
1
−
p
)
b
−
1
\text{Beta}(p|a,b) = \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}p^{a-1}(1-p)^{b-1}
Beta(p∣a,b)=Γ(a)Γ(b)Γ(a+b)pa−1(1−p)b−1
该分布由于是概率的共轭先验分布,因此自变量取值范围在0到1之间,系数
Γ
(
a
+
b
)
Γ
(
a
)
Γ
(
b
)
\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}
Γ(a)Γ(b)Γ(a+b)保证了归一化(即在
[
0
,
1
]
[0,1]
[0,1]区间上的积分为1)。其中a和b为超参数,控制了参数p的先验分布。可以将a看做伯努利分布或二项分布中事件发生(
x
=
1
x=1
x=1)的次数,b看做事件没发生(
x
=
0
x=0
x=0)的次数。其图像如下:
可以看出Beta分布的几个性质:
- 期望: E ( p ) = a a + b E(p) = \frac{a}{a+b} E(p)=a+ba
- 方差: D ( p ) = a b ( a + b ) 2 ( a + b + 1 ) D(p) = \frac{ab}{(a+b)^2(a+b+1)} D(p)=(a+b)2(a+b+1)ab
- 众数: mode ( p ) = a − 1 a + b − 2 \text{mode}(p) = \frac{a-1}{a+b-2} mode(p)=a+b−2a−1
- 若 a = b = 1 a=b=1 a=b=1,Beta分布简化为均匀分布;
- 即使 a a + b \frac{a}{a+b} a+ba相同,但若a和b越大,方差越小。这也符合直觉,即实验次数越多,均值越集中于期望附近。
下面以二项分布进行进一步讨论,假设进行n次掷硬币试验,正面向上发生了m次。则由贝叶斯公式可得:
P
(
p
∣
n
,
m
)
∝
P
(
m
∣
n
,
p
)
P
(
p
)
∝
C
n
m
p
m
(
1
−
p
)
n
−
m
⋅
Γ
(
a
+
b
)
Γ
(
a
)
Γ
(
b
)
p
a
−
1
(
1
−
p
)
b
−
1
∝
p
m
+
a
−
1
(
1
−
p
)
n
−
m
+
b
−
1
\begin{aligned} P(p|n,m) & \propto P(m|n,p)P(p) \\ & \propto C_n^m p^m (1-p)^{n-m} \cdot \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}p^{a-1}(1-p)^{b-1} \\ & \propto p^{m+a-1}(1-p)^{n-m+b-1} \end{aligned}
P(p∣n,m)∝P(m∣n,p)P(p)∝Cnmpm(1−p)n−m⋅Γ(a)Γ(b)Γ(a+b)pa−1(1−p)b−1∝pm+a−1(1−p)n−m+b−1
可以看出后验概率的形式确实与先验Beta分布一致。与Beta分布公式比对可以得出其归一化系数,即:
P
(
p
∣
n
,
m
,
a
,
b
)
=
Γ
(
n
+
a
+
b
)
Γ
(
m
+
a
)
Γ
(
n
−
m
+
b
)
p
m
+
a
−
1
(
1
−
p
)
n
−
m
+
b
−
1
P(p|n,m,a,b) = \frac{\Gamma(n+a+b)}{\Gamma(m+a)\Gamma(n-m+b)}p^{m+a-1}(1-p)^{n-m+b-1}
P(p∣n,m,a,b)=Γ(m+a)Γ(n−m+b)Γ(n+a+b)pm+a−1(1−p)n−m+b−1
从后验概率的公式中可以得出概率参数p的期望
E
(
p
)
=
m
+
a
n
+
a
+
b
E(p)=\frac{m+a}{n+a+b}
E(p)=n+a+bm+a。结合贝叶斯公式
P
(
p
∣
n
,
m
)
=
P
(
m
∣
n
,
p
)
P
(
p
)
P
(
m
)
P(p|n,m) = \frac{P(m|n,p)P(p)}{P(m)}
P(p∣n,m)=P(m)P(m∣n,p)P(p),可以推出为了得到后验Beta分布中的归一化系数,n次掷硬币正面向上次数为m次的概率
P
(
m
)
P(m)
P(m)应该服从超几何分布:
P
(
m
)
=
C
m
+
a
m
C
n
−
m
+
b
n
−
m
C
n
+
a
+
b
n
P(m) = \frac{C_{m+a}^m C_{n-m+b}^{n-m}}{C_{n+a+b}^n}
P(m)=Cn+a+bnCm+amCn−m+bn−m
即总共进行了 n + a + b n+a+b n+a+b次试验(实际实验次数加上假想的先验观测次数),其中正面向上的总次数为 m + a m+a m+a次。在实际 n n n次的试验中,正面向上发生 m m m次的概率。也就是下述列联表的发生概率:
实际试验 | 先验假设 | |
---|---|---|
正面向上 | m | a |
反面向上 | n-m | b |
加和 | n | a+b |
这也是符合直觉和逻辑的。
此处举一个例子说明贝叶斯学派的优势:比如投了三次硬币( n = 3 n=3 n=3),三次均正面向上( m = 3 m=3 m=3)。使用频率学派的最大似然法,可以得出当 p = m n p=\frac{m}{n} p=nm时似然函数 P ( m ∣ n , p ) = C n m p m ( 1 − p ) n − m P(m|n,p) = C_n^m p^m (1-p)^{n-m} P(m∣n,p)=Cnmpm(1−p)n−m会取得最大值。因此投三次硬币都向上,按照最大似然法得出 p M L = 1 p_{ML}=1 pML=1,也就是说认为这枚硬币只会正面向上,这显然是一种典型的过拟合。
而在贝叶斯学派看来,硬币正面向上的概率是服从Beta分布的。因此先验假设这枚硬币是普通硬币,正面和背面向上的次数应该是相等的。先验假设已经做了4次掷硬币试验,正面背面分别朝上2次,即
a
=
b
=
2
a=b=2
a=b=2。如果这时进行了3次掷硬币的试验,结果均是正面向上。按照贝叶斯学派的观点,当想要预测下一次掷硬币试验的输出时,相当于对一个服从伯努利分布(Bernoulli Distribution)的随机变量进行预测。也就是计算该随机变量在已知数据集
D
\boldsymbol{D}
D的条件下的预测分布:
Bern
(
x
=
1
∣
D
)
=
∫
0
1
Bern
(
x
=
1
∣
p
)
P
(
p
∣
D
)
d
p
=
∫
0
1
p
P
(
p
∣
D
)
d
p
=
E
[
p
∣
D
]
=
m
+
a
n
+
a
+
b
\begin{aligned} \text{Bern}(x=1|\boldsymbol{D}) & = \int_0^1 \text{Bern}(x=1|p)P(p|\boldsymbol{D}) \mathrm{d}p\\ & = \int_0^1 p P(p|\boldsymbol{D}) \mathrm{d}p \\ & = E[p|\boldsymbol{D}]=\frac{m+a}{n+a+b} \end{aligned}
Bern(x=1∣D)=∫01Bern(x=1∣p)P(p∣D)dp=∫01pP(p∣D)dp=E[p∣D]=n+a+bm+a
从上式可以看到,对下一次掷硬币实验中正面向上( x = 1 x=1 x=1)的预测分布,也就等于正面向上的概率p的后验Beta分布的期望 E ( p ∣ D ) = m + a n + a + b = 5 8 = 0.625 E(p|\boldsymbol{D})=\frac{m+a}{n+a+b}=\frac{5}{8}=0.625 E(p∣D)=n+a+bm+a=85=0.625。这个结果显然没有过拟合,且更为合理,泛化性也更好。
狄利克雷分布
先简单回顾一下多项分布,多项分布是一个多元变量分布,是指一个实验有k种可能的结果,每种结果发生概率分别为
p
=
(
p
1
,
p
2
,
⋯
,
p
k
)
\boldsymbol{p}=(p_1,p_2,\cdots,p_k)
p=(p1,p2,⋯,pk)。实验进行n次,每种结果发生的次数为一个k维向量
D
=
(
x
1
,
x
2
,
⋯
,
x
k
)
\boldsymbol{D}=(x_1,x_2,\cdots,x_k)
D=(x1,x2,⋯,xk),有
n
=
x
1
+
x
2
+
⋯
+
x
k
n=x_1+x_2+\cdots+x_k
n=x1+x2+⋯+xk,且该k元随机变量服从多项分布:
Poly
[
D
=
(
x
1
,
x
2
,
⋯
,
x
k
)
∣
n
,
p
]
=
n
!
x
1
!
x
2
!
⋯
x
k
!
p
1
x
1
p
2
x
2
⋯
p
k
x
k
\text{Poly}[\boldsymbol{D}=(x_1,x_2,\cdots,x_k)|n,\boldsymbol{p}] = \frac{n!}{x_1! x_2! \cdots x_k!}p_1^{x_1}p_2^{x_2}\cdots p_k^{x_k}
Poly[D=(x1,x2,⋯,xk)∣n,p]=x1!x2!⋯xk!n!p1x1p2x2⋯pkxk
狄利克雷分布(Dirichlet distribution)就是对于多项分布中k种结果发生概率
(
p
1
,
p
2
,
⋯
,
p
k
)
(p_1,p_2,\cdots,p_k)
(p1,p2,⋯,pk)的先验分布。很明显这也是一个多元变量的分布:
Dir
[
p
∣
a
]
=
Γ
(
a
0
)
Γ
(
a
1
)
Γ
(
a
2
)
⋯
Γ
(
a
k
)
p
1
a
1
−
1
p
2
a
2
−
1
⋯
p
k
a
k
−
1
\text{Dir}[\boldsymbol{p}|\boldsymbol{a}] = \frac{\Gamma(a_0)}{\Gamma(a_1)\Gamma(a_2)\cdots\Gamma(a_k)}p_1^{a_1-1}p_2^{a_2-1}\cdots p_k^{a_k-1}
Dir[p∣a]=Γ(a1)Γ(a2)⋯Γ(ak)Γ(a0)p1a1−1p2a2−1⋯pkak−1
其中
a
0
=
a
1
+
a
2
+
⋯
+
a
k
a_0=a_1+a_2+\cdots+a_k
a0=a1+a2+⋯+ak。狄利克雷分布由于是多元随机变量的分布,因此除了期望和方差,还有协方差,体现了随机变量之间的相关性:
E
(
p
i
)
=
a
i
a
0
=
p
i
^
var
(
p
i
)
=
a
i
(
a
0
−
a
i
)
a
0
2
(
a
0
+
1
)
=
p
i
^
(
1
−
p
i
^
)
a
0
+
1
cov
(
p
i
,
p
j
)
=
−
a
i
a
j
a
0
2
(
a
0
+
1
)
\begin{aligned} & E(p_i)=\frac{a_i}{a_0} = \hat{p_i} \\ & \text{var}(p_i) = \frac{a_i(a_0-a_i)}{a_0^2(a_0+1)} = \frac{\hat{p_i}(1-\hat{p_i})}{a_0+1}\\ & \text{cov}(p_i, p_j) = \frac{-a_ia_j}{a_0^2(a_0+1)} \end{aligned}
E(pi)=a0ai=pi^var(pi)=a02(a0+1)ai(a0−ai)=a0+1pi^(1−pi^)cov(pi,pj)=a02(a0+1)−aiaj
就如多项分布是二项分布的扩展,狄利克雷分布也就是Beta分布的扩展。先验分布中
a
=
(
a
1
,
a
2
,
⋯
,
a
k
)
\boldsymbol{a}=(a_1,a_2,\cdots,a_k)
a=(a1,a2,⋯,ak)就是先验假设每种情况发生的次数。既然是共轭先验分布,则
p
\boldsymbol{p}
p的后验概率形式也是狄利克雷分布的形式:
Dir
[
p
∣
D
,
a
]
=
Γ
(
a
0
+
n
)
Γ
(
a
1
+
x
1
)
Γ
(
a
2
+
x
2
)
⋯
Γ
(
a
k
+
x
k
)
p
1
a
1
+
x
1
−
1
p
2
a
2
+
x
2
−
1
⋯
p
k
a
k
+
x
k
−
1
\text{Dir}[\boldsymbol{p}|\boldsymbol{D},\boldsymbol{a}] = \frac{\Gamma(a_0+n)}{\Gamma(a_1+x_1)\Gamma(a_2+x_2)\cdots\Gamma(a_k+x_k)}p_1^{a_1+x_1-1}p_2^{a_2+x_2-1}\cdots p_k^{a_k+x_k-1}
Dir[p∣D,a]=Γ(a1+x1)Γ(a2+x2)⋯Γ(ak+xk)Γ(a0+n)p1a1+x1−1p2a2+x2−1⋯pkak+xk−1
同样可以结合贝叶斯公式推出为了得到后验狄利克雷分布中的归一化系数,实验数据
D
=
(
x
1
,
x
2
,
⋯
,
x
k
)
\boldsymbol{D}=(x_1,x_2,\cdots,x_k)
D=(x1,x2,⋯,xk)出现的概率为:
P
[
D
]
=
C
x
1
+
a
1
x
1
C
x
2
+
a
2
x
2
⋯
C
x
k
+
a
k
x
k
C
n
+
a
0
n
P[\boldsymbol{D}] = \frac{C_{x_1+a_1}^{x_1}C_{x_2+a_2}^{x_2} \cdots C_{x_k+a_k}^{x_k}}{C_{n+a_0}^{n}}
P[D]=Cn+a0nCx1+a1x1Cx2+a2x2⋯Cxk+akxk
实际上就是下述 k × 2 k \times 2 k×2的列联表的发生概率:
实际试验 | 先验假设 | |
---|---|---|
第1种可能 | x 1 x_1 x1 | a 1 a_1 a1 |
第2种可能 | x 2 x_2 x2 | a 2 a_2 a2 |
⋮ \vdots ⋮ | ⋮ \vdots ⋮ | ⋮ \vdots ⋮ |
第k种可能 | x k x_k xk | a k a_k ak |
加和 | n n n | a 0 a_0 a0 |