给定模型与参数,我们就能对样本空间进行描述。大家很自然地会问,这个描述是不是最不好的呢?我们用什么评价标准判断这个描述的好坏呢?这篇博客将一起探讨这个问题。
在统计学中,根据从总体中抽取的随机样本来估计模型未知参数的过程被称为参数估计(parameter estimation)。 常用的参数估计方法有:最小二乘估计,最大似然估计和最大后验估计,其中最小二乘估计用于函数模型的参数估计,最大似然估计和最大后验估计常用于概率模型的参数估计。
最小二乘估计
最小二乘估计(Ordinary Least Square,OLS),又称最小二乘法,它的核心思想是:最小化实际值与预测值之间的平方误差,使得平方误差最小的参数就是我们要找的最优参数。 以线性回归问题为例,其误差函数可以表示为:
L
=
1
2
m
∑
i
=
1
m
(
y
(
i
)
−
w
T
x
(
i
)
)
2
=
1
2
m
∣
∣
y
−
w
X
∣
∣
2
2
=
1
2
m
(
y
−
w
X
)
(
y
−
w
X
)
T
\begin{aligned} \mathcal{L}&=\frac{1}{2m}\sum_{i=1}^m(y^{(i)}-w^Tx^{(i)})^2\\ &=\frac{1}{2m}||\bold{y}-\bold{wX}||_2^2\\ &=\frac{1}{2m}(\bold{y}-\bold{wX})(\bold{y}-\bold{wX})^T \end{aligned}
L=2m1i=1∑m(y(i)−wTx(i))2=2m1∣∣y−wX∣∣22=2m1(y−wX)(y−wX)T
求其最小值,我们对其求导找到导数为零的点:
∂
L
∂
w
=
∂
∂
w
1
2
m
(
y
y
T
−
2
w
X
y
T
+
w
X
X
T
w
T
)
=
1
2
m
(
−
2
X
y
T
+
2
X
X
T
w
T
)
=
0
⇔
−
X
y
T
+
X
X
T
w
T
=
0
⇔
X
X
T
w
T
=
X
y
T
⇔
w
=
(
X
T
X
)
−
1
X
T
y
\begin{aligned} \frac{\partial{\mathcal{L}}}{\partial{\bold{w}}}&=\frac{\partial}{\partial{\bold{w}}}\frac{1}{2m}(\bold{y}\bold{y}^T-2\bold{wXy^T}+\bold{wXX^Tw^T})\\ &=\frac{1}{2m}(-2\bold{Xy^T}+2\bold{XX^Tw^T})=0\\ &\Leftrightarrow -\bold{Xy^T}+\bold{XX^Tw^T}=0\\ &\Leftrightarrow \bold{XX^Tw^T}=\bold{Xy^T}\\ &\Leftrightarrow \bold{w}=\bold{(X^TX)^{-1}X^Ty} \end{aligned}
∂w∂L=∂w∂2m1(yyT−2wXyT+wXXTwT)=2m1(−2XyT+2XXTwT)=0⇔−XyT+XXTwT=0⇔XXTwT=XyT⇔w=(XTX)−1XTy
用平方和的原因是因为回归函数的预测值与真实值之差可正可负,简单求和可能出现误差抵消的情况,而采用平方误差既保证了非负性,也没有破坏误差关系。因此,最小二乘估计是回归问题中最常用的参数估计方法。
最大似然估计
在概率模型中,最大似然估计(Maximum Likelihood Estimation,MLE)是最常用的参数估计方法。首先需要明白什么是似然,根据贝叶斯公式:
p
(
θ
∣
X
)
=
p
(
θ
,
X
)
p
(
X
)
=
p
(
X
∣
θ
)
p
(
θ
)
p
(
X
)
p(\bold{\theta}|\bold{X})=\frac{p(\bold{\theta,X})}{p(\bold{X})}=\frac{p(\bold{X|\theta})p(\bold{\theta})}{p(\bold{X})}
p(θ∣X)=p(X)p(θ,X)=p(X)p(X∣θ)p(θ)
其中,
p
(
X
)
p(\bold{X})
p(X)描述的是样本
X
\bold{X}
X的发生概率,对于给定样本
X
\bold{X}
X,其值与参数
θ
\bold{\theta}
θ无关,因此,可以得到如下公式:
p
(
θ
∣
X
)
∝
p
(
X
∣
θ
)
p
(
θ
)
p(\bold{\theta}|\bold{X})\propto p(\bold{X|\theta})p(\bold{\theta})
p(θ∣X)∝p(X∣θ)p(θ)
上式中, p ( θ ) p(\bold{\theta}) p(θ)是参数先验(prior)概率,即在没有看到样本情况下,我们对模型的认知。 p ( X ∣ θ ) p(\bold{X|\theta}) p(X∣θ)是在给定参数 θ \theta θ的情况下,样本产生的概率,称为似然(likelihood)。 p ( θ ∣ X ) p(\theta|\bold{X}) p(θ∣X)是参数的后验(posterior)概率,即在看到样本分布后,我们对模型认知的调整。
回到最大似然估计,顾名思义,就是要最大化似然函数,使得似然函数最大的那组参数就是我们要找的最优参数。 我们知道,对于样本空间,给定模型后,不同参数会对样本空间有不同的描述。现在我们只有从样本空间独立抽取的若干样本 X = { x ( 1 ) , ⋯   , x ( m ) } \bold{X}=\{x^{(1)},\cdots,x^{(m)}\} X={x(1),⋯,x(m)},需要判断哪组参数是对整个样本空间描述最好的那组参数,很自然的想法是最大化样本效益,即找到使得样本 X \bold{X} X产生概率最大的那组参数。因为样本 X \bold{X} X是已经观测到的,相当于我们的证据,选择对证据描述最好的那组参数肯定是最保险最稳妥的做法。

如上图所示:红色、蓝色和绿色三个概率分布都能描述样本空间,但在看到样本分布后,显然选择蓝色的分布是最佳的。
上面讲了这么多,一直没有解释什么是似然,什么是似然函数,上面我们说在给定参数 θ \theta θ的情况下,样本产生的概率,称为似然,那这不就是一个概率吗?为什么要叫似然呢?所以首先我们要区分概率与似然:
- 概率: 在给定参数的情况下,事件发生的可能性。
- 似然: 在已知某些观测结果的情况下,参数取值的可能性。
可以看到概率和似然是两个完全不同的角度,概率是由因求果,似然是由果执因。概率要求满足概率之和等于1,但似然不要求满足归一性。两者的联系在于,似然的取值等于在给定参数的情况下,事件发生的概率。所以似然函数是关于参数的函数,其数学形式如下:
L
(
θ
∣
X
)
=
p
(
X
;
θ
)
\mathcal{L(\theta|\bold{X})}=p(\bold{X};\theta)
L(θ∣X)=p(X;θ)
似然函数乘以一个正常数后仍然是似然函数,其取值并不需要满足归一性:
∑
θ
α
⋅
L
(
θ
∣
X
)
 
/
=
1
,
α
>
1
\sum_\theta\alpha\cdot \mathcal{L}(\theta|\bold{X}) \mathrlap{\,/}{=} 1,\quad \alpha>1
θ∑α⋅L(θ∣X)/=1,α>1
对
θ
\theta
θ的最大似然估计是:
θ
M
L
=
arg
max
θ
p
(
X
;
θ
)
=
arg
max
θ
∏
i
=
1
M
p
(
x
(
i
)
;
θ
)
\theta_{ML}=\arg\max_{\theta}p(\bold{X};\theta)=\arg\max_{\theta}\prod_{i=1}^Mp(x^{(i)};\theta)
θML=argθmaxp(X;θ)=argθmaxi=1∏Mp(x(i);θ)
多个概率的乘积可能出现数值下溢,常去对数将乘积转化为求和,得到最大对数似然:
θ
M
L
=
arg
max
θ
∑
i
=
1
M
log
p
(
x
(
i
)
;
θ
)
\theta_{ML}=\arg\max_{\theta}\sum_{i=1}^M\log p(x^{(i)};\theta)
θML=argθmaxi=1∑Mlogp(x(i);θ)
关于最大似然估计的另一个解释是利用KL散度(Kullback-Leibler divergence)。样本
X
=
{
x
(
1
)
,
⋯
 
,
x
(
m
)
}
\bold{X}=\{x^{(1)},\cdots,x^{(m)}\}
X={x(1),⋯,x(m)}由真实分布
p
d
a
t
a
(
x
;
θ
)
p_{data}(x;\theta)
pdata(x;θ)生成,这个分布唯一且未知,我们寻找模型分布
p
m
o
d
e
l
(
x
;
θ
)
p_{model}(x;\theta)
pmodel(x;θ)都只是对真实分布
p
d
a
t
a
(
x
;
θ
)
p_{data}(x;\theta)
pdata(x;θ)的拟合,两个分布的距离越小,说明
p
m
o
d
e
l
(
x
;
θ
)
p_{model}(x;\theta)
pmodel(x;θ)对
p
d
a
t
a
(
x
;
θ
)
p_{data}(x;\theta)
pdata(x;θ)的拟合越好,而两个分布之间的差异程度可以通过KL散度度量,KL散度的定义如下:
D
K
L
(
p
∣
∣
q
)
=
E
x
∽
p
[
log
p
(
x
)
q
(
x
)
]
=
E
x
∽
p
[
log
p
(
x
)
−
log
q
(
x
)
]
D_{KL}(p||q)=\Bbb{E}_{x\backsim p}\Big[\log\frac{p(x)}{q(x)}\Big]=\Bbb{E}_{x\backsim p}[\log p(x)-\log q(x)]
DKL(p∣∣q)=Ex∽p[logq(x)p(x)]=Ex∽p[logp(x)−logq(x)]
KL散度是非负的,KL散度等于0,当且仅当
p
p
p和
q
q
q是同一个分布。借助KL散度,我们可以将
p
m
o
d
e
l
(
x
;
θ
)
p_{model}(x;\theta)
pmodel(x;θ)与
p
d
a
t
a
(
x
;
θ
)
p_{data}(x;\theta)
pdata(x;θ)之间的差异程度表示为:
D
K
L
(
p
d
a
t
a
∣
∣
p
m
o
d
e
l
)
=
E
x
∽
p
d
a
t
a
[
log
p
d
a
t
a
(
x
)
−
log
p
m
o
d
e
l
(
x
)
]
D_{KL}(p_{data}||p_{model})=\Bbb{E}_{x\backsim p_{data}}[\log p_{data}(x)-\log p_{model}(x)]
DKL(pdata∣∣pmodel)=Ex∽pdata[logpdata(x)−logpmodel(x)]
左边一项与模型无关,取值固定,这意味着最小化KL散度,只需要最小化:
−
E
x
∽
p
d
a
t
a
[
log
p
m
o
d
e
l
(
x
)
]
-\Bbb{E}_{x\backsim p_{data}}[\log p_{model}(x)]
−Ex∽pdata[logpmodel(x)]
上式正好是交叉熵的表达式,因此最小化KL散度其实就是在最小化分布之间的交叉熵,因为真实分布 p d a t a p_{data} pdata我们很难知道,通常用经验分布 p ^ d a t a \hat{p}_{data} p^data代替。以上我们就将最小化负对数似然与最小化交叉熵损失函数联系起来了。
最小二乘估计与最大似然估计的联系
最小二乘估计用于函数模型的参数估计,最大似然估计常用于概率模型的参数估计,那最小二乘估计与最大似然估计有没有什么联系呢?对于回归问题,模型的输出直接是一个单独的实数值,其实我们也可以将其转化为一个概率问题,即在给定输入 x x x的情况下, y y y取到取值空间中每个值得概率 p ( y ∣ x ) p(y|x) p(y∣x),概率最大对于的 y y y就是我们的预测。如下图:

每一个
x
x
x对应的
y
y
y都由高斯分布给出,即
p
(
y
∣
x
)
=
N
(
y
;
y
^
(
x
,
w
)
,
σ
2
)
p(y|x)=\mathcal{N}(y;\hat{y}(x,w),\sigma^2)
p(y∣x)=N(y;y^(x,w),σ2),其中函数
y
^
(
x
,
w
)
\hat{y}(x,w)
y^(x,w)预测高斯分布的均值,方差
σ
2
\sigma^2
σ2是用户给定的某个常量,使用最大似然估计:
∑
i
=
1
m
log
p
(
y
(
i
)
∣
x
(
i
)
)
=
∑
i
=
1
m
log
[
1
2
π
σ
2
exp
(
−
(
y
(
i
)
−
y
^
(
i
)
)
2
2
σ
2
)
]
=
−
m
2
log
(
2
π
)
−
2
m
log
σ
−
1
2
σ
2
∑
i
=
1
m
(
y
(
i
)
−
y
^
(
i
)
)
2
⇔
−
∑
i
=
1
m
(
y
(
i
)
−
y
^
(
i
)
)
2
\begin{aligned} \sum_{i=1}^m\log p(y^{(i)}|x^{(i)})&=\sum_{i=1}^m\log[\frac{1}{\sqrt{2\pi}\sigma^2}\exp(-\frac{(y^{(i)}-\hat{y}^{(i)})^2}{2\sigma^2})]\\ &=-\frac{m}{2}\log(2\pi)-2m\log\sigma-\frac{1}{2\sigma^2}\sum_{i=1}^m(y^{(i)}-\hat{y}^{(i)})^2\\ &\Leftrightarrow -\sum_{i=1}^m(y^{(i)}-\hat{y}^{(i)})^2 \end{aligned}
i=1∑mlogp(y(i)∣x(i))=i=1∑mlog[2πσ21exp(−2σ2(y(i)−y^(i))2)]=−2mlog(2π)−2mlogσ−2σ21i=1∑m(y(i)−y^(i))2⇔−i=1∑m(y(i)−y^(i))2
其中,
y
^
(
i
)
\hat{y}^{(i)}
y^(i)是线性回归在输入
x
(
i
)
x^{(i)}
x(i)的输出,对比均方误差:
M
S
E
t
r
a
i
n
=
1
2
m
∑
i
=
1
m
(
y
(
i
)
−
y
^
(
i
)
)
2
\mathrm MSE_{train}=\frac{1}{2m}\sum_{i=1}^m(y^{(i)}-\hat{y}^{(i)})^2
MSEtrain=2m1i=1∑m(y(i)−y^(i))2
我们可以看到最大似然估计和最小二乘估计具有相同的形式,会得到相同的参数估计 w w w。
最大后验估计
最大似然估计属于频率学派的观点,即参数未知,但取值固定,但贝叶斯学派认为参数不仅未知而且取值不固定。正如前面贝叶斯公式介绍的,在观测到数据之前,我们通常会利用自我认知将
θ
\theta
θ表示成一个先验概率分布。一般而言,我们会选择一个高熵(相当宽泛,如均匀分布、高熵的高斯分布)分布,以反映在观测到任何数据前参数
θ
\theta
θ的高度不确定性。因此,贝叶斯框架下,样本概率可以表示为:
p
(
x
(
1
)
)
=
∫
p
(
x
(
1
)
∣
θ
)
p
(
θ
)
d
θ
p
(
x
(
i
+
1
)
)
=
∫
p
(
x
(
i
)
∣
θ
)
p
(
θ
∣
x
(
1
)
,
⋯
 
,
x
(
i
)
)
d
θ
\begin{aligned} p(x^{(1)})&=\int p(x^{(1)}|\theta)p(\theta)d\theta\\ p(x^{(i+1)})&=\int p(x^{(i)}|\theta)p(\theta|x^{(1)},\cdots,x^{(i)})d\theta \end{aligned}
p(x(1))p(x(i+1))=∫p(x(1)∣θ)p(θ)dθ=∫p(x(i)∣θ)p(θ∣x(1),⋯,x(i))dθ
可以看到当样本数据很大时,贝叶斯方法的计算代价将非常大。
最大后验估计(Maximum A Posterior,MAP)提供了一种合理的折中方式,即可以让先验影响参数的选择,又避免了使用参数
θ
\theta
θ的全估计。最大后验估计最大化后验概率,使得后验概率最大的参数就是最有参数。
θ
M
A
P
=
arg
max
θ
p
(
θ
∣
X
)
=
arg
max
θ
log
p
(
X
∣
θ
)
+
log
p
(
θ
)
\theta_{MAP}=\arg\max_{\theta}p(\theta|\bold{X})=\arg\max_{\theta}\log p(\bold{X}|\theta)+\log p(\theta)
θMAP=argθmaxp(θ∣X)=argθmaxlogp(X∣θ)+logp(θ)
式中, log p ( X ∣ θ ) \log p(\bold{X}|\theta) logp(X∣θ)对应着标准的对数似然项, log p ( θ ) \log p(\theta) logp(θ)对应着先验分布,因此最大化后验估计不单单要最大似然函数,还要最大 θ \theta θ的先验概率,因此最大后验估计能够影响参数值朝先验偏移。最大后验估计的优势在于能够利用来自先验的信息,这些信息无法从训练数据中获得,该附加信息有助于减少模型的方差,但代价是增加了偏差。
最大似然估计与最大后验估计的联系
当先验分布是均匀分布时,就先验分布没有给出参数取值的任何信息,此时最大似然估计等于最大后验估计。因此可以把最大似然估计看作是先验分布为均匀分布的特殊最大后验估计。随着数据量的增加,先验的作用越来越弱,数据的作用越来越强,即后天的学习会改变我们对世界的自我认知。
参考文献
《深度学习》5.5、5.6 P82-P88
知乎——最大似然估计和最小二乘法怎么理解?