硬啃:《Deep Learning》最大似然估计

1,046 阅读4分钟

学习了很多的模型评估指标后,我们如何在合适的模型中使用合适的指标得出优秀的估计水准呢?最常用的就是最大似然估计。

考虑一组含有mm个样本的数据集X={x1,,xm}\mathbb X=\{x^{1},\dots,x^{m}\},独立地由未知的真实数据生成分布pdata(x)p_{data}(x)生成。

pmodel(x;θ)p_{model}(x;\theta)是一族由θ\theta确定在相同空间上的概率分布。简单来说,pmodel(x;θ)p_{model}(x;\theta)将任意输入xx映射到实数来估计真实概率pdata(x)p_{data}(x)

θ\theta的最大似然估计定义为

θML=arg maxθ pmodel(X;θ)=arg maxθ i=1mPmodel(x(i);θ)\theta_{ML}={\underset {\theta}{\operatorname{arg\, max}}}~p_{model}(\mathbb X;\theta) \\ ={\underset {\theta}{\operatorname{arg\, max}}}~\prod^m_{i=1}P_{model}(x^{(i)};\theta)

多个概率模型的乘积会因很多原因不方便计算。例如,计算中很可能会出现数值下溢。为了得到一个便于计算的等价优化,我们观察到似然对数不会改变其arg max{\operatorname{arg\, max}},但是将乘积转化为了求和:

θML=arg maxθ i=1mlogPmodel(x(i);θ)\theta_{ML}={\underset {\theta}{\operatorname{arg\, max}}}~\sum^m_{i=1}\log {P_{model}(x^{(i)};\theta)}

因为当重新缩放代价函数的时候arg max{\operatorname{arg\, max}}不会改变,我们可以除以mm得到和训练数据经验分布p^data\hat{p}_{data}相关的期望作为准则:

θML=arg maxθ EXp^datalogPmodel(x(i);θ)\theta_{ML}={\underset {\theta}{\operatorname{arg\, max}}}~\mathbb E_{X\sim\hat{p}_{data}}\log {P_{model}(x^{(i)};\theta)}

一种解释最大似然估计的观点就是将它看作是最小化训练集上的经验分布p^data\hat{p}_{data}和模型分布之间的差异,两者之间的差异程度可以通过KLKL散度度量。KLKL散度被定义为:

DKL(p^datapmodel)=EXp^data[logp^data(x)logpmodel(x)]D_{KL}(\hat{p}_{data}||p_{model})=\mathbb E_{X\sim\hat{p}_{data}}\big[{\log {\hat{p}_{data}}(x)-\log {p_{model}(x)}\big]}

左边一项仅涉及数据生成,和模型无关。这意味着当训练模型最小化KLKL散度时,我们只需要最小化

EXp^data[logpmodel(x)]-\mathbb E_{X\sim\hat{p}_{data}}\big[\log {p_{model}(x)}\big]

我们可以将最大似然看作使得模型分布尽可能地和经验分布p^data\hat{p}_{data}相匹配的尝试。理想情况下,我们希望匹配更加真实的数据生成分布pdatap_{data},但是我们无法直接获取这个分布。

条件对数似然和均方误差

最大似然估计很容易扩展到估计条件概率P(yx;θ)P(y|x;\theta),从而给定xx预测yy。这也是最常见的情况,因为这构成了大多数监督学习的基础。如果XX表示所有输入,YY表示我们所预测的目标,那么条件最大似然估计是

θML=arg maxθ P(YX;θ)\theta_{ML}={\underset {\theta}{\operatorname{arg\, max}}}~P(Y|X;\theta)

如果假设样本是独立同分布的,那么上式可以分解为

θML=arg maxθi=1mlogP(y(i)x(i);θ)\theta_{ML}={\underset {\theta}{\operatorname{arg\, max}}}\sum_{i=1}^m\log{P(y^{(i)}|x^{(i)};\theta)}

示例:线性回归作最大似然

前面我们学过线性回归了,我们将线性回归作为学习从输入xx映射到输出y^\hat{y}的算法。从xx映射到y^\hat{y}选自最小的均方误差。现在我们用最大似然估计的角度重新看待线性回归。我们希望模型可以得到条件概率p(yx)p(y|x),而不只是一个单独的预测结果。假设拥有一个无限大的数据集做训练,我们可能会观测到几个训练样本有同样的输入但是不同的输出。现在学习算法将会拟合出一个分布p(yx)p(y|x)到和xx相匹配的不同的yy

我们为了和以前的结果一致,我们定义p(yx)=N(y;y^(x;ω),σ2)p(y|x)=N(y;\hat{y}(x;\omega),\sigma^2)。函数y^(x;ω)\hat{y}(x;\omega)用于预测高斯均值。在这个例子中,我们假设方差是用户固定的某个常量σ2\sigma^2。这种函数形式会使得最大似然估计得出和之前相同的学习算法。由于假设样本是独立同分布的,条件对数似然如下

i=1mlogp(yix(i);θ)=mlogσm2log2πi=1my^(i)y(i)2σ2\sum_{i=1}^m\log{p(y^{i}|x^{(i)};\theta)} \\ =-m\log{\sigma}-\dfrac{m}{2}\log{2\pi}-\sum^m_{i=1}\dfrac{||\hat{y}^{(i)}-y^{(i)}||}{2\sigma^2}

其中y^(i)\hat{y}^{(i)}是线性回归在第ii个输入x(i)x^{(i)}上的输出,mm是训练样本数目。对比均方误差和对数似然,

MSEtrain=1mi=1my^(i)y(i)2MSE_{train} =\dfrac{1}{m}\sum^m_{i=1}||\hat{y}^{(i)}-y^{(i)}||^2

通过上式我们可以发现,最大化关于ω\omega的对数似然和最小化均方误差会得到相同的参数估计ω\omega。但是对于相同的最优解,这两个准则有不同的值。这验证了MSE可以用于最大似然估计。最大似然估计有几个很不错的性质。

最大似然的性质

在合适的条件下,极大似然估计具有一致性,意味着当训练数据趋于无穷大时,参数的最大似然估计会收敛到参数的真实值。这些条件如下:

  • 真实分布pdatap_{data}必须在模型族pmodel(;θ)p_{model}(\cdot;\theta)中。否则,没有估计可以还原pdatap_{data}
  • 真实分布pdatap_{data}必须刚好对应一个θ\theta值。否则,最大似然估计恢复出真实分布pdatap_{data}后。也不能决定数据生成过程使用哪一个θ\theta

统计效率通常用于有参情况下,我们在有参情况中,我们只需要关注参数值,而不是函数值。度量和真实参数相差多少的计算方法是计算均方误差的期望,即计算mm个从数据生成分布中出来的训练样本上的估计参数和真实参数之间差值的平方。有参均方误差估计随着mm的增大而减小。

最大似然估计依然是机器学习中的首选估计方法。当样本数目小到会发生过拟合的情况时,正则化策略如权重衰减可用于在数据集优先的情况下减少过拟合的发生。