为了账号安全,请及时绑定邮箱和手机立即绑定

机器学习中的正则化

1.1 竹篮打水一场空-过拟合

如果你发现在训练集上你的模型无比的完美,请晚一点再开心,因为很有可能你的模型已经过拟合了,那么这个模型就算废了。过拟合的直观解释是模型在训练集上性能完美,但在验证集或测试集上效果却不那么尽人意了。机器学习中一个核心任务就是防止模型过拟合,当模型的参数个数远大于数据集样本数量时,模型则可很好的“记忆”每一个训练数据的随机噪声而忘了去学习训练数据中通用的趋势,这就有可能导致过拟合,这个时候你可以简单的扩充数据集中的样本来降低过拟合的影响,但这需要一定的时间和人力成本,且效果可能不那么明显。那么如何用最小的成本来防止模型过拟合呢,即如何使训练错误率与测试错误率的差距尽可能小呢?答案就是本文主要讨论的内容:正则化。

1.2 正则化

我们都知道正则化可以降低泛化错误率,降低模型过拟合几率,但Why?How?下面我们来详细分析下正则化。正则化策略主要的目的是限制学习算法的能力,主要的方法可以是:限制网络模型的神经元数量、限制模型参数(连接权重W,偏置项B等)的数目、在目标函数添加一些额外的惩罚项等。添加惩罚项可看成是对损失函数中的某些参数做一些限制,根据惩罚项的不同可分为:L0范数惩罚、L1范数惩罚(参数稀疏性惩罚)、L2范数惩罚(权重衰减惩罚)

1.2.1 L0范数惩罚

L0范数惩罚是最“严格”的参数限制策略,它将模型参数不等于0的个数控制在c以内来达到限制模型能力的目的。

1.2.2 L1范数惩罚

L0范数惩罚在实际应用中不太友好,进一步放松限制,不要求参数的非零数量被限制在某个范围内,而要求参数数值的总和要小于某个数值,具体公式可见《深度学习中你需要知道的几个基本概念》,这种对参数数值总和的限制被称为L1范数惩罚,又称参数稀疏性惩罚,那么参数稀疏在哪呢?假设一个带L1正则化的损失函数为J=J0+α∑|w|
其中,J0是原始的损失函数,α∑|w|是L1正则化项,α是正则化系数。L1正则化项是带有绝对值符号的函数,因此加了L1正则化项的损失函数是不完全可微的。当我们在原始损失函数J0后添加L1正则化项后,相当于对J0做了一个约束。令L=α∑|w|,则J=J0+L,我们知道梯度下降算法的目的是使损失函数最小化,那么我们的任务变成在L约束下求出J0取最小值的解。假设在二维的情况,即只有两个权值w1w2,此时L=|w1|+|w2|。损失函数的梯度等值线如图1中的实线等高椭圆所示,梯度的最小值为其中心点,如果没有加任何限制项,则模型学习过程就是每次沿着梯度等高线垂直的方向寻找极值点。而L1正则化的函数L在w1、w2的二维平面上画出来表示为图1中的黑色方形。如下图1所示。

图片描述

图1 求解带L1正则化项的损失函数

上图中J0LL的一个顶点处(0,w2)相交,这个顶点就是损失函数J的最优解。可以直观想象,因为L函数有很多“突出的角”(二维情况下四个,多维情况下更多),J0与这些角接触的机率会远大于与L其它部位接触的机率,而在这些角上会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型。

在这里,我们在解释下为什么J0与这些角接触的机率会远大于与L其它部位接触的机率?试着想象下,如果方形的四条边凹进去一定的弧度,那么除非梯度等高线在一些特殊的角度才会使得相交点落在四条边上而不是方形的角上。当在多维的情况下(模型参数不只有2个),那么这个时候的L可表示为一个多边形,当边数够多,即角很多,可以近似的看成是四条边凹进去一定弧度后的图形,这样梯度等高线与角相交的概率会远大于L其它部分相交的概率。同样,如果方形的四条边往外凸,当凸出一定弧度后,会转变成一个圆,即为L2正则化的图形,这个时候的J0L的图形上每个点相交的概率都一样,所以L2正则化无法产生稀疏模型。求解带L2正则化项的损失函数如图2所示。

那么得到稀疏模型有什么好处呢?

稀疏模型是指模型参数矩阵中有很多参数为0,只有少数参数是非零值的。机器学习中特征向量的维数一般很大,在预测或分类时,那么多特征显然难以选择,但是如果代入这些特征得到的模型是一个稀疏模型,表示只有少数特征对这个模型有贡献,绝大部分特征很大程度上是噪声特征,其没有贡献或贡献微小(因为它们前面的系数是0或者是很小的值,即使去掉对模型也没有什么影响),此时我们就可以只关注系数是非零值的特征。这就是稀疏模型与特征选择的关系。

1.2.3 L2范数惩罚

我们知道L1范数项不可微,所以我们将参数的绝对值求和改为参数平方和,公式如《深度学习中你需要知道的几个基本概念》所示,这就是L2范数惩罚,即权重衰减惩罚。

这时一个带L2正则化的损失函数为J可表示为J=J0+α∑w2

求解带L2正则化项的损失函数如下图所示。

图片描述

图2 求解带L2正则化项的损失函数

正则化前面的系数α,可以控制L图形的大小。α过小,L的半径则很大,就越容易达到损失函数的最小值(中心点),会发生过拟合现象;α过大,L的半径则很小,即对模型参数惩罚过重,模型的能力也就越弱,会发生欠拟合现象。

模型在拟合过程中通常都会倾向于让权值尽可能小,最终构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,且能适应不同的数据集,在一定程度上可降低过拟合风险。比如,对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,这就是常说的抗扰动能力强。

1.3 其它被视为正则化的策略

在深度学习中你听过的很多名词其实都是一种正则化策略,下面我们将介绍这些正则化策略。

  1. 参数共享,在卷积神经网络中,卷积操作其实就采用了参数共享,通过参数共享,减少模型参数,降低模型复杂度,从而减少模型过拟合风险,卷积神经网络的详细内容见《卷积神经网络你需要知道的几个基本概念》。

  2. 噪声注入以及数据扩充,降低泛化错误率直接的方法就是训练更多的数据,但有监督学习中,带标签的数据往往是有限的,我们可以通过噪声注入以及数据扩充方法在现有数据的基础上扩充数据集。

  3. 稀疏表征,这种正则化策略事通过某种惩罚措施来抑制神经网络隐藏层中大部分神经元,当信息输入神经网络时,只有关键部分神经元处于激活状态。这和1.2.2节的L1范数惩罚相似,只不过,L1范数是使模型参数稀疏化,而表征稀疏化是隐藏层输出大多数为零或接近零。

  4. Dropout,以dropout概率随机断开神经元连接,是一种非常高效的深度学习正则化措施。
点击查看更多内容
5人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
算法工程师
手记
粉丝
1533
获赞与收藏
2735

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消