4.2 最大似然估计 MLE#
参数估计最常用的方法就是选择分配给训练数据最大概率的参数,这就叫做最大似然估计 maximum likelihood estimation or MLE.
4.2.1 定义#
θ^mle≜argmaxθ p(D∣θ)我们通常假设训练样本都是独立从一个相同的分布中采样得到,所以(条件)似然变为:
p(D∣θ)=n=1∏Np(yn∣xn,θ)这被称为 i.i.d 假设,意为“独立同分布”。实际上我们通常使用对数似然:
LL(θ)≜logp(D∣θ)=n=1∑Nlogp(yn∣xn,θ)此时 MLE 表示为:
θ^mle=argmaxθ n=1∑Nlogp(yn∣xn,θ)由于大多数优化算法都是设计用于最小化损失函数,我们可以重新定义目标函数为(条件)负对数似然 or NLL:
NLL(θ)≜−logp(D∣θ)=−n=1∑Nlogp(yn∣xn,θ)最小化此函数即可得到 MLE.
如果这个模型是非条件模型(无监督模型),则无输入数据 xn,MLE 就变成了:
θ^mle=argminθ−n=1∑Nlogp(yn∣θ)有时我们会希望最大化输入输出的联合概率分布,此时 MLE 变为:
θ^mle=argminθ−n=1∑Nlogp(yn,xn∣θ)4.2.2 MLE 的合理性解释#
关于 MLE 方法合理性有几种解释。一种是把它看作使用一个均匀分布先验来对贝叶斯后验 p(θ∣D) 进行简单点逼近,具体解释见 Section 4.6.7.1。
考虑一个特殊情况,假设我们使用一个 delta 函数逼近后验分布,p(θ∣D)=δ(θ−θ^map),其中 θ^map 是后验分布的 mode,计算公式如下:
θ^map=argmaxθ logp(D∣θ)+logp(θ)由于我们使用的是一个均匀分布先验,即 p(θ)∝1, 此时 MAP 的估计就等于MLE,θ^map=θ^mle.
另一种解释 MLE 的方法是 MLE 预测的分布 p(y∣θ^mle) 已经尽可能的接近数据的经验分布了。在无监督的情形下,经验分布定义为:
pD(y)≜N1n=1∑Nδ(y−yn)我们可以看到经验分布是由一系列在观察数据点处的 delta 函数 or “脉冲”组成的,我们的目标是创造一个模型,它的分布 q(y)=p(y∣θ) 要与 pD(y) 尽量相似。
一个用来度量概率分布 p 和 q 之间的相似度的标准方法是 KL 散度,具体在 Section 6.2 中介绍,这里仅给出定义:
KL(p∣∣q)=y∑p(y)logq(y)p(y)=−H(p)y∑p(y)logp(y)H(p,q)−y∑p(y)logq(y)其中 H(p) 是 p 的熵,H(p,q) 是 p 和 q 的交叉熵。可证明 KL(p∣∣q)≥0,当且仅当 p=q 时取等号。
如果我们定义 p(y)=pD(y), q(y)=p(y∣θ),KL散度就变成了:
KL(p∣∣q)=y∑pD(y)logpD(y)−y∑pD(y)logq(y)=−H(pD)−y∑[N1n=1∑Nδ(y−yn)]logp(y∣θ)=−H(pD)−N1n=1∑Nlogp(yn∣θ)=const+NLL(θ)第一项是一个常数,忽略后就只剩下NLL,因此最小化 KL 散度等价于最小化 NLL,也等价于最小化 MLE。
上述结论可以推广到有监督(有条件)的情形下,使用下面的经验分布:
pD(x,y)=pD(y∣x)pD(x)=N1n=1∑Nδ(x−xn)δ(y−yn)KL 散度的期望变为:
EpD(x)[KL(pD(Y∣x)∣∣q(Y∣x))]=x∑pD(x)[y∑pD(y∣x)logq(y∣x)pD(y∣x)]=const−x,y∑pD(x,y)logq(y∣x)=const−N1n=1∑Nlogp(yn∣xn,θ)同样,最小化 KL 散度等价于最小化 NLL。
4.2.3 Example: MLE for the Bernoulli distribution#
NLL for Bernoulli distribution:
NLL(θ)=−logn=1∏Np(yn∣θ)=−logn=1∏NθI(yn=1)(1−θ)I(yn=0)=−n=1∑NI(yn=1)logθ+I(yn=0)log(1−θ)=−[N1logθ+N0log(1−θ)]其中 N0 和 N1 分别代表样本中正负例的数量。Binomial distribution 和 Bernoulli distribution 的 NLL 是相同的,只差一个 (kN) 项系数。N0 和 N1 即称作数据的sufficient statistics,因为它们已经总结了所有数据的信息。N=N0+N1 称作 sample size。
MLE 可以通过 dθdNLL(θ)=0 来求解:
dθdNLL(θ)=θ−N1+1−θN0θ^mle=N0+N1N14.2.4 Example: MLE for the categorical distribution#
假设我们将一个 K 面的骰子抛 N 次,令 Yn∈{1,…,K} 为第 n 次的结果,则 Yn 服从一个类别分布,记为 Yn∼M(θ). 我们希望从数据集 D={yn:n=1:N} 中估计概率 θ. 类别分布的 NLL 为:
NLL(θ)=−k∑Nklogθk多项式分布的 NLL 去掉系数后也是相同的。
为了计算 MLE 我们需要在 ∑k=1Kθk=1 的限制条件下最小化 NLL. 这里需要用到拉格朗日乘子法,具体见 Section 8.5.1. 这里的优化问题可以写成下列拉格朗日函数:
L(θ,λ)≜−k∑Nklogθk−λ(1−k∑θk)对 λ 求导得到原始限制条件:
∂λ∂L=1−k∑θk=0对 θk 求导得:
∂θk∂L=−θkNk+λ=0⟹Nk=λθk应用限制条件即可解出
k∑Nk=N=λk∑θk=λθk^=λNk=NNk可以看到 MLE 就是事件 k 的发生的经验频率。
4.2.5 Example: MLE for the univariate Gaussian#
假设 Y∼N(μ,σ2) 且 D={yn:n=1:N} 是一个样本容量为 N 的 iid 样本,我们同样可以用 MLE 来估计参数 θ=(μ,σ2). 首先写出 NLL:
NLL(μ,σ2)=−n=1∑Nlog[(2πσ21)21exp(−2σ21(yn−μ)2)]=2σ21n=1∑N(yn−μ)2+2Nlog(2πσ2)分别对两个参数 μ 和 σ2 求导来最小化 NLL:
∂μ∂NLL(μ,σ2)=0, ∂σ2∂NLL(μ,σ2)=0⟹⟹∂μ∂NLL(μ,σ2)=−σ21n=1∑N(yn−μ)=0μ^mle=N1n=1∑Nyn=yˉ∂σ2∂NLL(μ,σ2)=−2σ41n=1∑N(yn−μ)2+2σ2N=0σ^mle2=N1n=1∑N(yn−μ^mle)2=N1[n=1∑Nyn2+μ^mle2−2ynμ^mle]=s2−yˉ2s2≜N1n=1∑Nyn2此时 yˉ 和 σ2 就是数据的sufficient statistics, 因为它们足够计算出 MLE, 且不会丢失信息。
注意方差的估计还可以写成:
σ^unb2=N−11n=1∑N(yn−μ^mle)2这不是 MLE,但这刚好是一种无偏估计。
4.2.6 Example: MLE for the multivariate Gaussian#
4.2.7 Example: MLE for linear regression#
Section 2.6.3 中我们已经提到了线性回归,它可以看成是如下的模型:
p(y∣x;θ)=N(y∣wTx,σ2)现在我们假设 σ2 固定,只关注估计 w,推导出 NLL:
NLL(w)=−n=1∑Nlog[(2πσ21)21exp(−2σ21(yn−wTxn)2)]丢掉无关常数项,就得到了常见的优化目标,称作残差平方和 or RSS:
RSS(w)≜n=1∑N(yn−wTxn)2=n=1∑Nrn2除以样本数量 N 就得到了均方误差 or MSE:
MSE(w)=N1RSS(w)=N1n=1∑N(yn−wTxn)2再开根号就得到了均方根误差 or RMSE:
RMSE(w)=MSE(w)=N1n=1∑N(yn−wTxn)2我们可以通过最小化 NLL,RSS,MSE or RMSE 来计算 MLE,得到的结果是一样的,只差一些无关的常数项。
让我们用 RSS 来求解,它可以写成如下的矩阵形式:
RSS(w)=n=1∑N(yn−wTxn)2=∣∣Xw−y∣∣22=(Xw−y)T(Xw−y)在 Section 11.2.2.1,我们证明了最优化点在 ∇wRSS(w)=0,满足以下方程:
w^mle≜argminw RSS(w)=(XTX)−1XTy这就是普通最小二乘 or OLS 估计,和 MLE 相同。
4.3 Empirical risk minimization (ERM)#
我们可以用其他损失函数来取代 MLE 中的对数损失项:l(yn,θ;xn)=−logp(yn∣xn,θ),以此将 MLE 推广为经验风险最小化 or ERM,因为这是采取经验分布时的损失期望:
L(θ)=N1n=1∑Nl(yn,θ;xn)4.3.1 Example: minimizing the misclassification rate#
如果解一个分类问题,我们可以采用一个 0-1 loss
:
l01(yn,θ;xn)={01if yn=f(xn;θ)if yn=f(xn;θ)此时 ERM 就是训练集上的经验错误分类率。
如果我们面对的是一个二分类问题,我们可以重新用更简洁的形式表示上述公式,令 y~∈{−1,+1} 为真实标签,y^∈{−1,+1}=f(x;θ) 为预测,0-1 损失就表示为:
l01(y~,y^)=I(y~=y^)=I(y~ y^<0)此时对应的经验风险为:
L(θ)=N1n=1∑Nl01(yn,y^n)=N1n=1∑NI(y~n y^n<0)这里对于 xn 和 θ 的依赖是隐式的。
4.3.2 Surrogate loss#
不幸的是,0-1 loss 不是一个平滑函数,所以很难优化。(实际上,它是 NP-hard 的问题)这里我们考虑使用一个 surrogate loss function 代理损失函数,通常选择使用一个最大紧凸上界 maximally tight convex upper bound,这样容易最小化。
例如,考虑一个概率二分类模型,产生如下分布:
p(y~∣x,θ)=σ(y~η)=1+e−y~η1其中 η=f(x;θ) 是对率 log odds。因此 log loss
表示为:
lll(y~,η)=−logp(y~∣η)=log(1+e−y~η)下图显示这是 0-1 loss 的一个平滑上界,这里 y~η 称作margin or 函数间隔,因为它定义了一个与阈值0之间的“安全间隔”,所以我们可以发现最小化负对数似然等价于最小化经验 0-1 损失的相对紧密上界。

0-1 loss 的另一个凸上界是hinge loss:
lhinge(y~,η)=max(0,1−y~η)≜(1−y~η)+从上图可以看出它的函数形状类似一个半开的门的铰链,它只是部分区域可导,不是处处可导。