机器学习在干什么?最大似然估计与最大后验估计

发布时间 2023-04-10 08:45:22作者: 心元

· 机器学习在干什么?最大似然估计的视角

传统观念上,机器学习是一个优化问题。以监督学习为例,给定一个数据集\((x_i,y_i)\),利用先验知识建立起y和x的关系模型\(y=f(x;w),w为参数\),然后通过最小化代价函数\(Loss(Y-f_w(X))\)来确定参数的取值。也即所谓的“模型已定,参数未知”,但这样会带来一个很严重的后果,没有解释清为什么观测样本不会完全符合理论值\(f_w(X)\),而是存在偏差。由于模型是预先已经确定的,这就带来了偏差到底是由于模型不完善(比如用直线去拟合二次曲线的采样),还是存在观测误差的问题。
由于我们得到的数据集样本只是所有可能数据中一个有限的子集,在这个问题上的糊涂不清,必然会导致“以偏概全”,也就是我们常说的过拟合问题。一次抛硬币试验的结果是“正反反正反反反正反反”,那么在新的预测中,机器学习模型就更可能给出“反”的结果,尽管我们知道两者可能性相同。换句话说,如果一个参数很好地满足了已知的样本,往往会在新的数据上表现地相当糟糕,产生泛化能力比较差的问题。在实践中,会采取增大样本量,提早停机,参数惩罚(正则化,限制参数范围),dropout(随机舍弃一些数据)等技术,来艰难地在满足已知和预测未知之间保持平衡
另一个问题是度量标准,也即代价函数如何选取,才能更好地使得模型满足实际情况。对于一个发病率仅仅为0.01%的罕见病,如果采取准确率为指标,即使模型对所有人都报告为健康,也能达到99.99%的准确率。这时候就需要更换评估标准,引入先验的发病率,去考虑假阴性(将阳性病人报告为阴性)的概率,来更合理地设计评估指标。
如何解决这些问题呢?我们考虑到统计与机器学习之间的共性——根据采样数据来反推模型参数,认为机器学习训练的实质就是根据观测数据来进行参数估计的过程。这时,我们承认\(y\)是一个随机变量,观测值是对这一随机变量的若干次采样\(y_i\),其与理论值\(f_w(x_i)\)的偏差是由误差引起。最大似然估计得出的是在当前采样数据下参数最可能的取值,是根据部分推断全体,由有限的数据确定整体最可能的分布情况,由此得出的最佳拟合和代价函数才是最合理的。
f51d53eefaf3a967e6acd90d569d2e5.jpg
【图片:每次观测都是对随机变量的一次采样】
以二分类问题所用到的Logistic回归为例,其可以表示为
\(P(y=1|x) = S(w^T x)=\frac{1}{1+exp(-w^T x)}, \space S(x)=Sigmoid(x)=\frac{1}{1+exp(-x)}\)
\(P(y=0|x) = 1-P(y=1|x) = \frac{exp(-w^T x)}{1+exp(-w^T x)}\)
对于给定的训练数据\((x_i,y_i),y_i=0 \space or \space 1\),有似然函数
\(L(w) = \prod_{i=1}^{n} S(w^Tx)^{y_i} (1-S(w^Tx))^{1-y_i}\)
取对数有
\(J(w)=ln(L(w))=\sum_{i=1}^{n} y_iln(S(w^Tx)) + (1-y_i)ln(1-S(w^Tx))\)
\(=w^Tx(y-1)-ln(1+exp(-w^Tx))\)
这样就变成了以对数似然函数为目标的最优化问题,可以使用梯度下降法,得到\(w\)的参数估计。
事实上,深度学习中的损失函数也是由最大似然估计决定的。最小二乘法中的模型是我们根据先验知识确定的,也就是可以显式地写出\(f_w(x)\)。但面对如图像识别这样的复杂问题,我们就无法这样轻松地写出输出函数,而只能去搭建一个复杂的神经网络,添加大量的参数\(W\),去自动拟合输入输出之间的映射。此时用来衡量预测值与真实值之间关系的便是损失函数(Loss Function)。虽然损失函数有很多种,但每种特定问题都有确定的损失函数,比如回归问题用误差平方损失,分类问题用交叉熵损失函数,这也是由最大似然估计的结果决定的。

· 更进一步——考虑先验知识(MAP)

在前面抛硬币的例子里,虽然根据一次试验结果“正反反正反反反正反反”进行最大似然估计的结果是
\(P(X|\theta) = \theta^3(1-\theta)^7\)
\(lnL(\theta) = 3ln(\theta)+7ln(1-\theta),\space \theta_{MLE}=0.3\)
但我们会敏锐地意识到,这个结果有问题,硬币正面朝上的概率不大可能是0.3。这种在试验开始前,对\(\theta\)可能为多少的认知称为先验概率,也即根据常识预先对\(\theta\)的分布有一个估计,新的试验结果是在先验的基础上进行更新。
而在进行最大似然估计时,我们认为\(\theta\)是一个客观存在的固定值,完全由最大似然函数决定,也即是使数据集\(X\)出现概率最大的值(或者说,先验认为是均匀分布)。但最大似然估计并没有考虑到,X可能不是一个最好的采样,它也可能是如上述硬币试验一样处在一个可能性比较低的位置。为了解决这一问题,贝叶斯学派认为\(\theta\)也是一个有着概率分布的随机变量,对于它的分布我们会预先有一个先验估计,应当也纳入其中。
于是,根据贝叶斯定理
\(P(\theta|X) = \frac{P(X|\theta)P(\theta)}{P(X)}\)
由于\(P(X)与\theta\)无关,那么就可以用\(P(X|\theta)P(\theta)\)来估计\(P(\theta|X)\)的最值点。
\(P(\theta|X)\)被称为后验概率,因此这种估计方法称为最大后验估计MAP。实质上,它就是在似然函数\(P(X|\theta)\)基础上,乘以了先验概率\(P(\theta)\)
以前文分析的\(y_i \sim N(f_w(x_i),\sigma^2)\)这一数据集为例,假设先验认为\(w \sim N(0, \gamma^2), \sigma为均匀分布\),则
\(w_{MAP}=arg \space max \space L(w)p(w)p(\sigma^2) = arg \space max \space lnL(w)+lnp(w)+lnp(\sigma^2)\)
\(= arg\space min_w \space \sum_{i=1}^{n} (y_i - f_w(x_i))^2 + \frac{1}{2\gamma^2}||w||^2 + C(\sigma)\)
可见,该最大后验估计是在最大似然估计的基础上,增加了两个修正项\(\frac{1}{2\gamma^2}||w||^2 + C(\sigma)\)
至此,问题也就基本阐释清楚了。