本篇文章作为下一篇实践篇的理论基础发布。注意,文章面向那些有一定机器学习基础的人,故文中涉及的部分内容并没有详细介绍。如果你还不太了解机器学习,那么我建议你先放下这篇文章。如果可能的话,还请你期待一下未来有可能出现的理论篇(☆゚∀゚)。话不多说,进入正题。
在机器学习中,我们应该已经见识过正则化(regularization)这一强大的解决过拟合(overfitting)问题的利器了。我们知道,在数据点不多的情况下,往往合理使用正则化能极大地改善过拟合问题。但是,你真的想过正则化是怎么起作用的吗?而为什么有时扩增数据集也能解决过拟合问题?如果你现在还不太清楚的话,那么这篇文章将会给你一个答案。
在估计模型参数的时候,我们往往会采取极大似然法来进行估计。这里做简单说明,对于一个分类模型,根据贝叶斯定理,我们有:
P(w|y)=\frac{P(y|w,X)P(w)}{P(y)}
其中,X是数据集,y是数据类别,w是模型参数。其中我们知道分母就是归一化因子: P(y)=\sum_{w}P(y|w,X)P(w)。我们来看剩下的几项,P(w|y)即在已知数据集下模型参数的概率,即w的后验概率(posterior)。而在贝叶斯观点看,我们就是要找一个值,让这个概率变得最大。剩下两项:P(y|w,X)叫似然(likelihood),它刻画了对不同的模型参数w而言,当前数据集出现的可能性。这一项可以被看作是一个关于w的函数,即似然函数(likelihood function)。还剩的一项P(w),叫先验概率(prior),也就是w的分布。不难看出,后验概率∝似然×先验概率。
回到极大似然法,同个这个方法估计模型参数的时候,我们注意到我们实际上仅仅关注了似然函数,而另一边的先验概率却被我们忽略了。试想,若我们忽略了w会如何?我们已经知道似然其实刻画的是数据集出现的可能性,而对于不同的极大似然解,似乎极大似然是“一视同仁”的。什么意思呢?就是说,在不同的两个极大似然解之间,极大似然方法丧失了辨别能力!所以,为了解决这个问题,我们需要引入那剩下的一项——先验概率。从而我们就能选择出一个更好的模型参数。是时候拿出纸和笔了。
考虑先验概率P(w),我们可以采用以下形式的高斯分布(即多元高斯分布):
N(x|\mu ,\Sigma )=\frac{ 1}{ {(2\pi)}^{\frac{D}{2}}} \frac{ 1}{ {|\Sigma|}^{\frac{1}{2}}} exp\left\{-\frac{ 1}{ 2}(x-\mu)^{T}\Sigma^{-1}(x-\mu)\right\}
m是数据点的个数,因为算上了偏置,所以w就是m+1维向量了。α是分布的精度。好了,现在我们根据上面的正比关系继续研究:
P(w|y,\lambda)\propto P(y|w,X)\times P(w|\lambda)
接下来让我们导入先验概率到极大似然估计中。记负对数似然函数(likelihood function)为J(w),即-ln P(y|w,X)=L(w)。即:
其中,由于 -ln\left\{ (\frac{ \lambda}{2\pi})^{\frac{m+1}{2}}\right\}与w无关,所以大可省去。所以,我们的模型参数就可以通过极小化下式获得:
J(w)+\frac{ \lambda}{ 2}w^{T}w
诶,等等……这不是正则化吗!没错,就是这样。而这种估计方法的名字正如它的名字那样——最大后验(maximum posterior,MAP)。而正则化是符合奥卡姆剃刀原理的,运用正则化方法后,在能正确贴合数据集的情况下,选择了最简单的模型。不过要注意的是,一般情况下,我们不会对偏置的那一项进行正则化。因为这会使得结果趋向于靠近原点。接下来我们来考虑训练中正则化的形式,首先来推导正则化后的梯度:
在线性回归的时候,我们还用知道了正规方程(normal equation),这里我们来推导正则化以后它的形式。因为是线性回归,J(w)定义如下:
J(w)=\frac{ 1}{ 2} \sum_{i=1}^{m} (y_{i}-w^Tx_{i})^2
令梯度为0:
其中,由于λ的系数是无所谓的,所以:
w=(XX^T+\lambda I )^{-1} X^Ty
到此为止,本文就进入了尾声。通过本篇文章,希望你能建立起一个更系统话的对正则化的认识。如果你还有问题,欢迎你直接评论本文,或者发送至我的邮箱:admin@kaaass.com。如果你觉得这篇文章对你或多或少有些帮助,希望帮助我继续写下这些文章,可以在我博客的About-捐助页面找到捐助我的入口,随便砸我一个包子啦QwQ。
感谢分享!已推荐到《开发者头条》:https://toutiao.io/posts/xctq18 欢迎点赞支持!
欢迎订阅《KAAAsS的J&A教室》https://toutiao.io/subject/69380