正则化

1.泛化问题


  上一篇文章深入理解泛化提及了泛化问题,即是解决过拟合问题。本篇文章就来看看在机器学习(深度学习)领域通常是怎么解决过拟合。

  神经网络的复杂度由其自由参数(权值和偏置量)的数量决定,而自由参数数量又由网络中的神经元数量决定。对于一个给定的数据集,如果网络结构复杂,则很可能会造成网络过拟合而使泛化能力不足。

  因此,要想获得具有良好泛化能力的神经网络,就是要找到能够解释数据的最简神经网络模型。这就是14世纪逻辑学家奥卡姆的威廉命名的奥卡姆剃刀定律的变形。其核心思想:模型越复杂,出错的可能性越大

图片1.jpg

  根据奥卡姆剃刀法则:在同样能够解释已知观测现象的假设中,我们应该挑选“最简单”的那一个。对于模型的设计而言,我们应该选择简单、合适的模型解决复杂的问题。

2.一些方法


  最优解决方法是获取更多的训练数据。模型的训练数据越多,泛化能力自然也越好,但往往获得带标签的数据成本是很高的。

  因此,在得不到足够多数据的情况下,我们通常选择能产生最简神经网络模型的方法,这里可按方法的目标分为两类:限制权重数量、限制权重大小。

Snipaste_2019-11-15_20-11-12.png

3.提前终止法


先回顾深度学习的训练过程:

  当训练有足够的表示能力甚至会过拟合的大模型时,我们经常会观察到,训练误差会随着时间的推移逐渐降低但验证集的误差会再次上升,并且这种现象几乎一定会出现。

  因此,我们考虑使训练在最优容量(在前一篇文章提及)处终止,这种策略为提前终止法。其基本思想:随着训练的进行,网络使用越来越多的权值,直到训练结果达到误差曲面的极小值时所有的权值都被使用。通过增加训练的迭代次数,使得网络的复杂度也在增加。如果训练在达到极小误差值之前终止,那么网络将有效地使用更少的参数,且更不容易过拟合。

  为了有效使用提前终止法,需要知道何时终止训练,这里使用一个方法:交叉验证法 (cross validation)。它先将数据集划分为 k个大小相似的互斥子集, 即
D=D1D2Dk,DiDj=(ij) D = D_{1} \cup D_{2} \cup \cdots \cup D_{k},D_{i} \cup D_{j} = \varnothing(i \neq j)
  每个子集 都尽可能保持数据分布的一致性,即从DiD_{i}中通过分层采样得到. 然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行 k次训练和测试,最终返回的是这k个测试结果的均值。

图片2.png

  训练集用来计算梯度或者Jacobian矩阵,并确定每次迭代中网络权值的更新。验证集是一个指示器,用来表明训练数据点之间所形成的网络函数发生了什么,并且验证集上的误差值在整个训练过程中都将被监测。

  当验证集上的误差在几次迭代中均上升时,训练终止,在验证集上产生最小误差的权值被用作最终训练好的网络的权值。

图片3.png

  上图展示了训练过程中网络在训练集和验证集上的性能指标F(误差平方和的变化)。蓝色曲线为真实,黑色曲线为拟合。

  左边这张图中虽然训练过程中训练集的误差持续下降,但验证集上的误差极小值出现在“a”点处。中间这张图是在“a”点的网络响应,拟合效果很好。右边这张图是“b”点的时的网络响应,此时验证集误差变大,网络过拟合。

小结

  提前终止法在凭借其有效性和简单性在深度学习中非常流行。它在实际应用中需要说明的问题:

  • 所选验证集(训练集、测试集)必须代表网络后续使用中涉及的所有情形(尽管每个数据集的规模可能不同,但它们所覆盖的输入空间都必须大致相等);
  • 划分数据集时,通常大约70%的数据用作训练,15%用作验证,15%用作测试。关于如何选取验证集的数据规模,可以参见:Gauss-Newton approximation to Bayesian learning
  • 需要使用一个相对较慢的训练方法,在训练过程中,网络将使用越来越多的可用网络参数。如果训练方式过快,很有可能会跳过使得验证集上误差取得较小值的点。

4.正则化法


4.1定义

  正则化:修改学习算法,使其降低泛化误差而非训练误差。最新定义:旨在更好实现模型泛化的补充技术,即在测试集上得到更好的表现。(Kukacka et al,2017)

  另一种理解:调节模型允许存储的信息量,或对模型允许存储的信息加以约束。如果一个网络只能记住几个模式,那么优化过程会迫使模型集中学习最重要的模式,这样更可能得到良好的泛化。

4.2 对正则化理解

  正则化项即惩罚函数,该项对模型向量进行“惩罚“,从而避免单纯最小二乘问题的过拟合问题。或者说正则化参数等价于对参数引入先验分布,使得模型复杂度变小(缩小解空间),对于噪声以及异常值的鲁棒性增强(泛化能力)。

  正则化项本质上是一种先验信息,整个最优化问题从贝叶斯观点来看是一种贝叶斯最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计的形式,如果你将这个贝叶斯最大后验估计的形式取对数,即进行极大似然估计,你就会发现问题立马变成了损失函数+正则化项的最优化问题形式。

4.3正则化法分类

正则化可按策略分为三类

  • 经验正则化:通过工程上的技巧来实现更低的泛化误差方法,比如:提前终止法、模型集成、Dropout等;
  • 参数正则化:直接提供正则化约束,比如:L1/L2正则化法等;
  • 隐式正则化:不直接提供约束,比如:数据有关的操作,包括归一化、数据增强、扰乱标签等。

  发现没,提前终止法也属于正则化的一种!至于为什么,请看后边的分析。

  这里只介绍几种常见的正则化法:L1/L2正则化法、Dropout法以及从贝叶斯角度理解正则化。

4.3.1 L1/L2正则化法

  L1正则化是指在损失函数后加上权值向量w中各个元素的绝对值之和,即(lasso回归):
min{1Ni=1N(yiωTxi)2}+Cω1 \min\left\{ \frac{1}{N}\sum_{i = 1}^{N}{(y_{i} - \omega^{T}x_{i})^{2}} \right\} + C\left\| \omega \right\|_{1}
  L2正则化是指在损失函数后加上权值向量w中各个元素的平方和然后再求平方根,即(岭回归) :
min{1Ni=1N(yiωTxi)2}+Cω22 \min\left\{ \frac{1}{N}\sum_{i = 1}^{N}{(y_{i} - \omega^{T}x_{i})^{2}} \right\} + C\left\| \omega \right\|_{2}^{2}

  一般都会在正则化项之前添加一个系数(如C),这个系数需要用户设定,系数越大,正则化作用越明显。

图片4.jpg

  如上图,参数空间(w1,w2)是一个二维平面,蓝色部分是一个平方损失函数,黄色部分是正则项。蓝色的那个圈,中心的点其实代表的就是损失函数最优的点,而同心圆则代表不同的参数相同的损失,可见随着圆的扩大,损失增大。黄色的区域也类似,周边的红色线表示的是损失相同点的轮廓。

  正则项的红色轮廓线示平方损失的蓝色轮廓线总要相交,才能使得两者加起来的损失最小,两者的所占区域的相对大小,是由权重因子决定的。不管怎么说,它们总有一个交叉点。

  对于L2正则化,它的交点会使得w1或者w2的某一个维度特别小,而L1正则化则会使得w1或者w2的某一个维度等于0,因此获得所谓的稀疏化。

  因此,L1正则化容易得到稀疏解(0比较多)。L2正则化相比于L1正则来说,得到的解比较平滑(不是稀疏),但是同样能够保证解中接近于0(但不是等于0,所以相对平滑)的维度比较多,降低模型的复杂度。

  从贝叶斯先验的角度看,加入正则化项相当于加入了一种先验,L1范数相当于加入了一个Laplacean先验,L2范数相当于加入了一个Gausssian先验,如图:

图片5.jpg

  拉普拉斯先验在0的位置具有最高的概率密度,这就说明很多参数会变成0,这就是为什么L1正则化会具有能产生稀疏性的优良性质。

4.3.2 Dropout法

待补

4.3.3 从贝叶斯角度理解正则化

从贝叶斯角度理解正则化

5.提前终止法与正则化法之间关系


提前终止法与正则化关系

参考资料


1.尹恩·古德费洛.深度学习[M].北京:人民邮电出版社,2017.8

2.马丁 T·哈根,章毅(译).神经网络设计[M].北京:机械出版社,2017.12

3.神经网络损失函数中的正则化项L1和L2

4.神经网络的提升方法(2)——正则化

5.其它

©️2020 CSDN 皮肤主题: 黑客帝国 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值