学习机器学习了好几年,好多概念也是学了就忘,MAP和MLE之间的关系也一直没搞清楚。这段时间终于可以静下心来好好理解,趁着还没忘,赶紧写下来。
两大学派——频率学派 vs 贝叶斯学派
频率学派——最大似然估计 Maximum Likelihood Estimation (MLE)
贝叶斯学派——最大后验估计 Maximum A Posteriori (MAP)
问题定义
假设有一组独立同分布 i.i.d 的随机变量
X
∼
P
(
X
∣
θ
)
X\sim P(X|\theta)
X∼P(X∣θ) ,服从概率分布P,参数为
θ
\theta
θ。
频率学派
频率派认为
θ
\theta
θ是未知的常数, X 是随机变量。频率学派使用的参数估计方法-极大似然估计(MLE),目的就是找到参数
θ
\theta
θ的一个估计值,使得当前样本出现的可能性最大。
P
(
x
1
,
x
2
,
…
,
x
n
∣
θ
)
=
P
(
x
1
∣
θ
)
×
P
(
x
2
∣
θ
)
×
P
(
x
n
∣
θ
)
P(x_1,x_2,\dots,x_n|\theta)=P(x_1|\theta)\times P(x_2|\theta)\times P(x_n|\theta)
P(x1,x2,…,xn∣θ)=P(x1∣θ)×P(x2∣θ)×P(xn∣θ)
似然函数为:
L
(
θ
∣
x
1
,
x
2
,
…
,
x
n
)
=
P
(
x
1
,
x
2
,
…
,
x
n
∣
θ
)
=
∏
P
(
x
i
∣
θ
)
L(\theta|x_1,x_2,\dots,x_n)=P(x_1,x_2,\dots,x_n|\theta)=\prod P(x_i|\theta)
L(θ∣x1,x2,…,xn)=P(x1,x2,…,xn∣θ)=∏P(xi∣θ)
在实际使用中,由于
P
(
x
i
∣
θ
)
P(x_i|\theta)
P(xi∣θ) 一般比较小,而且 n 比较大,连乘容易造成浮点运算下溢。所以一般使用对数似然函数:
log
L
(
θ
∣
x
1
,
x
2
,
…
,
x
n
)
=
∑
P
(
x
i
∣
θ
)
\log L(\theta|x_1,x_2,\dots,x_n)= \sum P(x_i|\theta)
logL(θ∣x1,x2,…,xn)=∑P(xi∣θ)
θ
M
L
E
=
arg
max
log
P
(
X
∣
θ
)
=
arg
min
−
log
P
(
X
∣
θ
)
\begin{aligned} \theta_{MLE}&=\arg\max \log P(X|\theta)\\ &=\arg\min-\log P(X|\theta) \end{aligned}
θMLE=argmaxlogP(X∣θ)=argmin−logP(X∣θ)
注意,最后这一行称为负对数似然(Negative Log Likelihood, NLL)。
举个抛硬币的例子:
假设硬币正面朝上的概率
P
(
H
e
a
d
s
∣
θ
)
=
θ
P(Heads|\theta)=\theta
P(Heads∣θ)=θ 。每一次抛硬币都是一次 i.i.d ,一共抛了十次硬币,结果为X=(H, H, T, T, H, T, H, H, H, T)。正面朝上次数为
n
h
=
6
n_h=6
nh=6,背面朝上
n
t
=
4
n_t=4
nt=4。
似然函数为:
L
(
θ
∣
X
)
=
θ
n
h
×
(
1
−
θ
)
n
t
L(\theta|X)=\theta^{n_h} \times (1-\theta)^{n_t}
L(θ∣X)=θnh×(1−θ)nt
θ
M
L
E
=
arg
max
log
P
(
X
∣
θ
)
=
arg
max
[
n
h
log
θ
+
n
t
log
(
1
−
θ
)
]
\begin{aligned} \theta_{MLE}&= \arg\max \log P(X|\theta)\\ &=\arg\max[ n_h\log \theta + n_t\log(1-\theta)] \end{aligned}
θMLE=argmaxlogP(X∣θ)=argmax[nhlogθ+ntlog(1−θ)]
对
θ
\theta
θ 求导:
n
h
θ
−
n
t
1
−
θ
=
0
⇔
θ
=
n
h
n
h
+
h
t
\frac{n_h}{\theta}-\frac{n_t}{1-\theta}=0\\ \Leftrightarrow \theta = \frac{n_h}{n_h+h_t}
θnh−1−θnt=0⇔θ=nh+htnh
在上述情况下,
θ
=
0.6
\theta = 0.6
θ=0.6。当数据量趋于无穷时,这种方法能给出精准的估计,但是缺乏数据时则可能产生严重的偏差。例如,十次实验中出现了十次正面,这时候
θ
=
1
\theta = 1
θ=1,这显然是不合理的。
贝叶斯学派
贝叶斯学派认为 θ \theta θ 也是一个随机变量,符合一定的概率分布 θ ∼ P ( θ ) \theta\sim P(\theta) θ∼P(θ) ,这个就是先验概率(prior),反映的是我们没有观测到任何数据时对 θ \theta θ 的预先判断。贝叶斯中另一个输入是似然(likelihood),即 P ( X ∣ θ ) P(X|\theta) P(X∣θ),是假设 θ \theta θ 已知后我们观察到的数据应该是什么样的。输出为后验分布(posterior),是最终的参数分布。贝叶斯公式如下:
P
(
θ
∣
X
)
⏞
后
验
=
P
(
X
∣
θ
)
⏞
似
然
×
P
(
θ
)
⏞
先
验
P
(
X
)
\overbrace{P(\theta|X)}^{后验}=\frac{\overbrace{P(X|\theta)}^{似然} \times \overbrace{P(\theta)}^{先验}}{P(X)}
P(θ∣X)
后验=P(X)P(X∣θ)
似然×P(θ)
先验
由于分母 P(X) 是一个与
θ
\theta
θ 无关的随机变量,因此可以省略掉,
∝
\propto
∝ 表示两者成正比例:
P
(
θ
∣
X
)
∝
P
(
X
∣
θ
)
×
P
(
θ
)
P(\theta|X) \propto P(X|\theta) \times P(\theta)
P(θ∣X)∝P(X∣θ)×P(θ)
最大后验概率(MAP)是贝叶斯学派常用的估计方法,假设我们用beta分布作为
θ
\theta
θ 的先验分布:
θ
∼
B
e
t
a
(
h
,
t
)
P
(
θ
)
∼
θ
h
−
1
(
1
−
θ
)
t
−
1
\theta\sim Beta(h,t) \\ P(\theta) \sim \theta^{h-1}(1-\theta)^{t-1}
θ∼Beta(h,t)P(θ)∼θh−1(1−θ)t−1
Beta分布概率密度函数
Bata分布的期望为
E
θ
=
h
h
+
t
E\theta=\frac{h}{h+t}
Eθ=h+th
似然函数为:
P
(
X
∣
θ
)
=
θ
n
h
×
(
1
−
θ
)
n
t
P(X|\theta)=\theta^{n_h} \times (1-\theta)^{n_t}
P(X∣θ)=θnh×(1−θ)nt
所以后验概率为:
P
(
θ
∣
X
)
∼
P
(
θ
)
P
(
X
∣
θ
)
∼
θ
h
−
1
(
1
−
θ
)
t
−
1
×
θ
n
h
(
1
−
θ
)
n
t
=
θ
h
−
1
+
n
h
(
1
−
θ
)
t
−
1
+
n
t
\begin{aligned} P(\theta|X)&\sim P(\theta)P(X|\theta)\\ &\sim \theta^{h-1}(1-\theta)^{t-1}\times\theta^{n_h} (1-\theta)^{n_t}\\ &=\theta ^{h-1+n_h}(1-\theta)^{t-1+n_t} \end{aligned}
P(θ∣X)∼P(θ)P(X∣θ)∼θh−1(1−θ)t−1×θnh(1−θ)nt=θh−1+nh(1−θ)t−1+nt
我们发现后验概率还是一个 Beta分布,这种特性为共轭先验:
θ
∣
X
∼
B
e
t
a
(
h
+
n
t
,
t
+
n
t
)
\theta|X\sim Beta(h+n_t, t+n_t)
θ∣X∼Beta(h+nt,t+nt)
还是举一个扔硬币的例子,假设我们扔了十次硬币,这次运气爆棚,十次里有九次都是正面。先验概率为
θ
∼
B
e
t
a
(
100
,
100
)
\theta\sim Beta(100,100)
θ∼Beta(100,100),期望
E
(
θ
)
=
0.5
E(\theta)=0.5
E(θ)=0.5 。
用最大似然来计算,
θ
^
M
L
E
=
9
9
+
1
=
0.9
\hat\theta_{MLE}=\frac{9}{9+1}=0.9
θ^MLE=9+19=0.9 ,显然这是不符合我们投硬币的经验的,因此最大似然在这种情况下有很大的偏差。
而通过贝叶斯公式计算的后验分布为:
θ
∣
X
∼
B
e
t
a
(
109
,
101
)
\theta|X\sim Beta(109,101)
θ∣X∼Beta(109,101)
期望为
E
θ
=
109
109
+
101
=
0.52
E\theta=\frac{109}{109+101}=0.52
Eθ=109+101109=0.52 。结合试验数据后,Beta分布的中心从0.5往0.52移动了,由于这次试验数据量很小,所以对后验概率影响很小。随着数据量的增加,参数分布会越来越像数据靠拢,先验的影响力会越来越小。
红色为beta(100,100),蓝色为beta(109,101)
最后,MAP对
θ
\theta
θ 推导如下:
θ
^
M
A
P
=
arg
max
P
(
θ
∣
X
)
=
arg
min
−
l
o
g
P
(
θ
∣
X
)
=
arg
min
−
l
o
g
P
(
X
∣
θ
)
P
(
θ
)
P
(
X
)
=
arg
min
−
l
o
g
P
(
X
∣
θ
)
−
P
(
θ
)
+
log
P
(
X
)
=
arg
min
−
l
o
g
P
(
X
∣
θ
)
−
P
(
θ
)
\begin{aligned} \hat\theta_{MAP}&=\arg\max P(\theta|X)\\ &=\arg\min-logP(\theta|X)\\ &=\arg\min -log\frac{P(X|\theta)P(\theta)}{P(X)}\\ &=\arg\min-logP(X|\theta)-P(\theta)+\log P(X)\\ &=\arg\min-logP(X|\theta)-P(\theta) \end{aligned}
θ^MAP=argmaxP(θ∣X)=argmin−logP(θ∣X)=argmin−logP(X)P(X∣θ)P(θ)=argmin−logP(X∣θ)−P(θ)+logP(X)=argmin−logP(X∣θ)−P(θ)
所以MAP和MLE在优化时的不同就在于增加了一个先验项
−
l
o
g
P
(
θ
)
-logP(\theta)
−logP(θ)
所以他们之间的关系为:
M
A
P
(
θ
)
≈
M
L
E
(
θ
)
+
P
(
θ
)
MAP(\theta)\approx MLE(\theta)+P(\theta)
MAP(θ)≈MLE(θ)+P(θ)
一个不严谨的总结就是:后验分布=先验分布+实验数据
参考
如何通俗理解 beta 分布?
张小磊:极大似然估计与最大后验概率估计
夏飞:聊一聊机器学习的MLE和MAP:最大似然估计和最大后验估计