文章目录
假设有数据 X = { x 1 , x 2 , . . . , x n } X=\{x_1, x_2, ...,x_n\} X={x1,x2,...,xn},模型 P ( x ∣ θ ) P(x|\theta) P(x∣θ)其中 θ \theta θ表示模型的全部参数。
那么该如何对 θ \theta θ进行估计呢?
频率学派vs贝叶斯学派
对于 θ \theta θ是否是一个服从某种分布的随机变量这个观点,各个学派持不同意见。
其中认为
θ
\theta
θ是一个未知常量的学派,就是频率学派,他们认为
θ
\theta
θ是一个常量,只不过我们还不清楚而已。对于他们来说对参数
θ
\theta
θ的估计就是最大化似然
P
(
X
∣
θ
)
P(X|\theta)
P(X∣θ)。
其中X是给定的数据,是常量,而
θ
\theta
θ是未知变量。那么你可能就有疑问了,不是说
θ
\theta
θ是常量么?怎么到这里又是变量了?
其实
θ
\theta
θ确实是常量,我们的表示
P
(
X
∣
θ
)
P(X|\theta)
P(X∣θ)即表示在已知某个
θ
\theta
θ情况下的X的分布,而我们现在要做的就是去搜索一个
θ
\theta
θ使我们的
P
(
X
∣
θ
)
P(X|\theta)
P(X∣θ)能更好的符合出现的数据。
贝叶斯学派就不这么认为了,他觉着 θ \theta θ符合某种分布,即 θ \theta θ并不是一个未知的常量。那么按照这个思想,贝叶斯派其实就是在已知X的情况下,从 θ \theta θ的分布中求出一个能够比较好满足我们要求的 θ \theta θ,即我们要进行操作的目标是 P ( θ ∣ X ) P(\theta|X) P(θ∣X)
MLE
极大似然估计属于频率派的东西,它的想法就是在所有的
θ
\theta
θ中,能让所有的已知样本出现几率最大的那个点就是最好的。
可以看出在上述描述中,我们是在
θ
\theta
θ所有可能中搜出满足条件的最好的
θ
\theta
θ然后认为它就是那个适合的常数。
具体的极大似然估计如下。
θ
^
=
arg max
θ
∏
i
=
1
n
P
(
x
i
∣
θ
)
\hat \theta = \argmax_{\theta}\prod_{i = 1}^nP(x_i|\theta)
θ^=θargmaxi=1∏nP(xi∣θ)
为了方便计算我们通常会加一个log
θ
^
=
arg max
θ
∑
i
=
1
n
l
o
g
P
(
x
i
∣
θ
)
\hat \theta = \argmax_{\theta}\sum_{i = 1}^nlogP(x_i|\theta)
θ^=θargmaxi=1∑nlogP(xi∣θ)
我们把其中
∑
i
=
1
n
l
o
g
P
(
x
i
∣
θ
)
\sum\limits_{i = 1}^nlogP(x_i|\theta)
i=1∑nlogP(xi∣θ)叫做似然函数记做
L
(
X
;
θ
)
L(X;\theta)
L(X;θ),极大似然估计在学校里讲过很多次,这里就不再详细说了。
需要注意的是,似然和概率函数不一样,似然的未知量是
θ
\theta
θ,而概率函数的未知量是x
MAP
MAP叫最大后验估计,属于频率派,它的计算式子是
θ
^
=
arg max
θ
P
(
θ
∣
X
)
\hat \theta = \argmax_{\theta}P(\theta|X)
θ^=θargmaxP(θ∣X)
注意,这里写的是X不是x,X是全体样本。
根据贝叶斯公式,就有
P
(
θ
∣
X
)
=
P
(
X
∣
θ
)
P
(
θ
)
P
(
X
)
∝
P
(
X
∣
θ
)
P
(
θ
)
P(\theta|X)=\frac{P(X|\theta)P(\theta)}{P(X)}\propto P(X|\theta)P(\theta)
P(θ∣X)=P(X)P(X∣θ)P(θ)∝P(X∣θ)P(θ)
在上式中,由于X是已知的,所以P(X)为常数,所以有正比的关系。我们可以发现
P
(
X
∣
θ
)
P(X|\theta)
P(X∣θ)就是似然,而
P
(
θ
)
P(\theta)
P(θ)是先验。
也就是说,MAP最后是这个样子
θ
^
=
arg max
θ
P
(
X
∣
θ
)
P
(
θ
)
\hat \theta = \argmax_{\theta}P(X|\theta)P(\theta)
θ^=θargmaxP(X∣θ)P(θ)
我们同样可以加上一个log,于是就变成:
θ
^
=
arg max
θ
[
l
o
g
P
(
X
∣
θ
)
+
l
o
g
P
(
θ
)
]
\hat \theta = \argmax_{\theta}[logP(X|\theta) + logP(\theta)]
θ^=θargmax[logP(X∣θ)+logP(θ)]
我们回过头来看MAP,它的从式子可以看出,它的想法就是极大化后验概率
P
(
θ
∣
X
)
P(\theta|X)
P(θ∣X)。
即从后验概率
P
(
θ
∣
X
)
P(\theta|X)
P(θ∣X)中找出出现可能性最大的一个
θ
\theta
θ。
从这里可以看出MAP它考虑在X给定时不同
θ
\theta
θ出现的概率,最后选出出现概率最大的一个作为最后的估计值。
举个例子,比如我们做投硬币游戏(硬币可能不均匀),我们投了9次,记正面为1,反面为0,我们得到样本:
1
,
1
,
0
,
0
,
1
,
0
,
1
,
0
,
1
1,1,0,0,1,0,1,0,1
1,1,0,0,1,0,1,0,1,现在请你估计出
P
(
x
∣
θ
)
P(x|\theta)
P(x∣θ)
x
∈
{
0
,
1
}
x\in\{0,1\}
x∈{0,1}
解:
我们都知道投硬币服从二项分布,所以我们可以写出
P
(
x
∣
θ
)
P(x|\theta)
P(x∣θ),其中
θ
\theta
θ为正面的概率
P
(
x
∣
θ
)
=
θ
x
(
1
−
θ
)
1
−
x
P(x|\theta) = \theta^x(1 - \theta)^{1-x}
P(x∣θ)=θx(1−θ)1−x
那么似然函数就可以很轻松地表示出来。
L
(
X
;
θ
)
=
∑
i
=
1
n
l
o
g
P
(
x
i
∣
θ
)
L(X;\theta)=\sum_{i = 1}^n logP(x_i|\theta)
L(X;θ)=i=1∑nlogP(xi∣θ)
根据MAP的计算式,我们还需要知道
P
(
θ
)
P(\theta)
P(θ)才能计算。
这个
P
(
θ
)
P(\theta)
P(θ)就是所谓的先验,我们通过以往的经验得到的一个分布。比如我们曾经使用同一个生产线的硬币做实验,得到了这个硬币的
θ
\theta
θ值大概服从某个正态分布,比如
N
∼
(
0.5
,
1
)
N\thicksim(0.5,1)
N∼(0.5,1)。
θ
^
=
arg max
θ
[
∑
i
=
1
n
l
o
g
P
(
x
i
∣
θ
)
+
l
o
g
(
1
2
π
e
−
(
θ
−
0.5
)
2
2
)
]
\hat \theta = \argmax_{\theta}[\sum_{i = 1}^n logP(x_i|\theta) + log(\frac{1}{2\pi}e^{-\frac{(\theta-0.5)^2}{2}})]
θ^=θargmax[i=1∑nlogP(xi∣θ)+log(2π1e−2(θ−0.5)2)]
我们尽心进一步的化简,对后面的对数高斯分布进行化简
l
o
g
(
1
2
π
e
−
(
θ
−
0.5
)
2
2
)
=
l
o
g
(
1
2
π
)
+
l
o
g
(
e
−
(
θ
−
0.5
)
2
2
)
log(\frac{1}{2\pi}e^{-\frac{(\theta-0.5)^2}{2}})=log(\frac{1}{2\pi}) + log(e^{-\frac{(\theta-0.5)^2}{2}})
log(2π1e−2(θ−0.5)2)=log(2π1)+log(e−2(θ−0.5)2)
由于
l
o
g
(
1
2
π
)
log(\frac{1}{2\pi})
log(2π1)是常数,不影响优化,所以舍弃。我们假设log以e为底,就有
l
o
g
(
1
2
π
e
−
(
θ
−
0.5
)
2
2
)
=
−
(
θ
−
0.5
)
2
2
log(\frac{1}{2\pi}e^{-\frac{(\theta-0.5)^2}{2}})={-\frac{(\theta-0.5)^2}{2}}
log(2π1e−2(θ−0.5)2)=−2(θ−0.5)2
我们设
λ
=
0.5
\lambda=0.5
λ=0.5就有
l
o
g
(
1
2
π
e
−
(
θ
−
0.5
)
2
2
)
=
−
λ
(
θ
−
0.5
)
2
log(\frac{1}{2\pi}e^{-\frac{(\theta-0.5)^2}{2}})=-\lambda(\theta-0.5)^2
log(2π1e−2(θ−0.5)2)=−λ(θ−0.5)2
带回到原式就有
θ
^
=
arg max
θ
[
∑
i
=
1
n
l
o
g
P
(
x
i
∣
θ
)
+
−
λ
(
θ
−
0.5
)
2
]
\hat \theta = \argmax_{\theta}[\sum_{i = 1}^n logP(x_i|\theta) + -\lambda(\theta-0.5)^2]
θ^=θargmax[i=1∑nlogP(xi∣θ)+−λ(θ−0.5)2]
到此,我们只需要求导然后取导数等于0就可以求出解了。
我们此时再观察一下式子,就会发现 λ ( θ − 0.5 ) 2 \lambda(\theta-0.5)^2 λ(θ−0.5)2其实就是一个L2正则。也就是说我们使用MAP进行估计时实质上就是使用了正则对MLE进行约束,使得我们的先验概率在参数估计中能起到一定的干预作用。
具体的,对于高维高斯分布:
f
(
x
)
=
1
(
2
π
)
n
2
(
d
e
t
(
C
)
)
0.5
e
x
p
(
−
1
2
(
x
−
μ
)
T
C
−
1
(
x
−
μ
)
)
f(x)=\frac{1}{(2\pi)^{\frac{n}{2}}(det(C))^{0.5}}exp(-\frac{1}{2}(x-\mu)^TC^{-1}(x-\mu))
f(x)=(2π)2n(det(C))0.51exp(−21(x−μ)TC−1(x−μ))
其中
x
=
(
x
1
,
x
2
,
.
.
.
,
x
n
)
T
,
μ
=
(
μ
1
,
μ
2
,
.
.
.
,
μ
3
)
T
x = (x_1, x_2, ..., x_n)^T, \mu=(\mu_1, \mu_2, ..., \mu_3)^T
x=(x1,x2,...,xn)T,μ=(μ1,μ2,...,μ3)TC表示各个维度随机变量之间构成的协方差矩阵。
对于确定的高维高斯分布,前面的一个乘数依然是常数,记为
1
(
2
π
)
n
2
(
d
e
t
(
C
)
)
0.5
=
k
\frac{1}{(2\pi)^{\frac{n}{2}}(det(C))^{0.5}}=k
(2π)2n(det(C))0.51=k
假设
μ
=
(
μ
1
,
μ
2
,
.
.
.
,
μ
3
)
T
=
(
0
,
0
,
.
.
.
,
0
)
T
\mu=(\mu_1, \mu_2, ..., \mu_3)^T=(0,0,...,0)^T
μ=(μ1,μ2,...,μ3)T=(0,0,...,0)T即每个维度的随机变量的均值都为0,并且假设各个维度之间独立,那么此时
C
−
1
C^{-1}
C−1就变成了单位矩阵
于是我们得到:
f
(
x
)
=
k
e
x
p
(
−
1
2
(
x
)
T
C
−
1
(
x
)
)
f(x)=k exp(-\frac{1}{2}(x)^TC^{-1}(x))
f(x)=kexp(−21(x)TC−1(x))
我们把
C
−
1
C^{-1}
C−1按列进行分块得到
C
−
1
=
(
C
1
,
C
2
,
.
.
.
,
C
n
)
C^{-1}=(C_1, C_2, ..., C_n)
C−1=(C1,C2,...,Cn)于是我们可以把上式写成
f
(
x
)
=
k
e
x
p
(
−
1
2
∣
∣
x
∣
∣
2
)
f(x)=k exp(-\frac{1}{2}||x||^2)
f(x)=kexp(−21∣∣x∣∣2)
我们对其取log
f
(
x
)
=
k
e
x
p
(
−
1
2
∣
∣
x
∣
∣
2
)
f(x)=k exp(-\frac{1}{2}||x||^2)
f(x)=kexp(−21∣∣x∣∣2)
我们把他放在MAP中,设
λ
=
1
2
\lambda=\frac{1}{2}
λ=21并且于是就得到了
−
λ
∣
∣
x
∣
∣
2
-\lambda||x||^2
−λ∣∣x∣∣2
这与L2正则完全一致,至于为啥有负号,是因为我们MAP求的是极大,而我们一般写目标函数时求的是极小。
对于其它的一些先验分布也有他们对应的正则,比如拉普拉斯分布对应L1正则。
可见MAP的本质就是加了正则的MLE。
对于MAP来说,在样本比较少的时候比较适合使用。
从两个角度去理解:
一方面是,样本少时容易产生过拟合,需要加正则抑制。
另一方面是,样本多时,我们的先验就不是那么重要了,因为根据中心极限定理,我们的数据足以逼近参数的真实值,此时MAP就近似等于MLE了。
BE
BE是贝叶斯估计,是贝叶斯学派的参数估计,MAP其实就是残缺的贝叶斯估计。
真正的贝叶斯估计是要求
P
(
θ
∣
X
)
=
P
(
X
∣
θ
)
P
(
θ
)
P
(
X
)
P(\theta|X)=\frac{P(X|\theta)P(\theta)}{P(X)}
P(θ∣X)=P(X)P(X∣θ)P(θ)
注意,这里没有求极大值,这里是要实打实的求
P
(
θ
∣
X
)
P(\theta|X)
P(θ∣X)。
那么问题来了,求出这个有什么用呢?这里就需要来说一下贝叶斯推断了。
对于新给出得到一个样本
x
x
x我们要进行预测
P
(
x
∣
X
)
P(x|X)
P(x∣X)。即在给定样本X情况下的x的概率。
这里我们没法直接求出来,但是我们可以通过
θ
\theta
θ进行联系。
P
(
x
∣
X
)
=
∫
P
(
x
,
θ
∣
X
)
d
θ
=
∫
P
(
x
∣
θ
,
X
)
P
(
θ
∣
X
)
d
θ
P(x|X) = \int P(x, \theta|X)d\theta=\int P(x|\theta, X)P(\theta|X)d\theta
P(x∣X)=∫P(x,θ∣X)dθ=∫P(x∣θ,X)P(θ∣X)dθ
可以发现,贝叶斯推断的第二项就是后验概率
P
(
θ
∣
X
)
P(\theta|X)
P(θ∣X),所以想要使用贝叶斯推断就要求出
P
(
θ
∣
X
)
P(\theta|X)
P(θ∣X),这里贝叶斯估计求出了新数据的概率,没有估计
θ
\theta
θ。
贝叶斯估计也可以估计
θ
\theta
θ不过使用的
P
(
θ
∣
X
)
P(\theta|X)
P(θ∣X)的期望来估计
θ
\theta
θ,我们对
P
(
X
)
P(X)
P(X)进行变换
P
(
θ
∣
X
)
=
P
(
X
∣
θ
)
P
(
θ
)
∫
θ
P
(
X
∣
θ
)
P
(
θ
)
d
θ
P(\theta|X)=\frac{P(X|\theta)P(\theta)}{\int_{\theta}P(X|\theta)P(\theta)d\theta}
P(θ∣X)=∫θP(X∣θ)P(θ)dθP(X∣θ)P(θ)
可以看到分母是要对所有可能的
θ
\theta
θ进行积分,这显然很难做到,所以我们很难直接对
P
(
θ
∣
X
)
P(\theta|X)
P(θ∣X)建模,但是我们可以通过一些其他手段(MCMC之类的)求出其值。
其贝叶斯估计的
θ
^
\hat \theta
θ^为
θ
^
=
∫
θ
θ
P
(
θ
∣
X
)
d
θ
\hat \theta = \int_{\theta}\theta P(\theta|X)d\theta
θ^=∫θθP(θ∣X)dθ
参考:
https://www.jianshu.com/p/9c153d82ba2d
https://zhuanlan.zhihu.com/p/37215276
统计机器学习