上一篇文章深刻理解泛化说起了泛化问题,便是解决过拟合问题。本篇文章就来看看在机器学习(深度学习)领域一般是怎么解决过拟合。html
神经网络的复杂度由其自由参数(权值和偏置量)的数量决定,而自由参数数量又由网络中的神经元数量决定。对于一个给定的数据集,若是网络结构复杂,则极可能会形成网络过拟合而使泛化能力不足。web
所以,要想得到具备良好泛化能力的神经网络,就是要找到可以解释数据的最简神经网络模型。这就是14世纪逻辑学家奥卡姆的威廉命名的奥卡姆剃刀定律的变形。其核心思想:模型越复杂,出错的可能性越大。算法
根据奥卡姆剃刀法则:在一样可以解释已知观测现象的假设中,咱们应该挑选“最简单”的那一个。对于模型的设计而言,咱们应该选择简单、合适的模型解决复杂的问题。网络
最优解决方法是获取更多的训练数据。模型的训练数据越多,泛化能力天然也越好,但每每得到带标签的数据成本是很高的。app
所以,在得不到足够多数据的状况下,咱们一般选择能产生最简神经网络模型的方法,这里可按方法的目标分为两类:限制权重数量、限制权重大小。机器学习
先回顾深度学习的训练过程:svg
当训练有足够的表示能力甚至会过拟合的大模型时,咱们常常会观察到,训练偏差会随着时间的推移逐渐下降但验证集的偏差会再次上升,而且这种现象几乎必定会出现。函数
所以,咱们考虑使训练在最优容量(在前一篇文章说起)处终止,这种策略为提早终止法。其基本思想:随着训练的进行,网络使用愈来愈多的权值,直到训练结果达到偏差曲面的极小值时全部的权值都被使用。经过增长训练的迭代次数,使得网络的复杂度也在增长。若是训练在达到极小偏差值以前终止,那么网络将有效地使用更少的参数,且更不容易过拟合。性能
为了有效使用提早终止法,须要知道什么时候终止训练,这里使用一个方法:交叉验证法 (cross validation)。它先将数据集划分为 k个大小类似的互斥子集, 即
每一个子集 都尽量保持数据分布的一致性,即从
中经过分层采样获得. 而后,每次用k-1个子集的并集做为训练集,余下的那个子集做为测试集;这样就可得到k组训练/测试集,从而可进行 k次训练和测试,最终返回的是这k个测试结果的均值。学习
训练集用来计算梯度或者Jacobian矩阵,并肯定每次迭代中网络权值的更新。验证集是一个指示器,用来代表训练数据点之间所造成的网络函数发生了什么,而且验证集上的偏差值在整个训练过程当中都将被监测。
当验证集上的偏差在几回迭代中均上升时,训练终止,在验证集上产生最小偏差的权值被用做最终训练好的网络的权值。
上图展现了训练过程当中网络在训练集和验证集上的性能指标F(偏差平方和的变化)。蓝色曲线为真实,黑色曲线为拟合。
左边这张图中虽然训练过程当中训练集的偏差持续降低,但验证集上的偏差极小值出如今“a”点处。中间这张图是在“a”点的网络响应,拟合效果很好。右边这张图是“b”点的时的网络响应,此时验证集偏差变大,网络过拟合。
小结
提早终止法在凭借其有效性和简单性在深度学习中很是流行。它在实际应用中须要说明的问题:
正则化:修改学习算法,使其下降泛化偏差而非训练偏差。最新定义:旨在更好实现模型泛化的补充技术,即在测试集上获得更好的表现。(Kukacka et al,2017)
另外一种理解:调节模型容许存储的信息量,或对模型容许存储的信息加以约束。若是一个网络只能记住几个模式,那么优化过程会迫使模型集中学习最重要的模式,这样更可能获得良好的泛化。
正则化项即惩罚函数,该项对模型向量进行“惩罚“,从而避免单纯最小二乘问题的过拟合问题。或者说正则化参数等价于对参数引入先验分布,使得模型复杂度变小(缩小解空间),对于噪声以及异常值的鲁棒性加强(泛化能力)。
正则化项本质上是一种先验信息,整个最优化问题从贝叶斯观点来看是一种贝叶斯最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,二者的乘积即对应贝叶斯最大后验估计的形式,若是你将这个贝叶斯最大后验估计的形式取对数,即进行极大似然估计,你就会发现问题立马变成了损失函数+正则化项的最优化问题形式。
正则化可按策略分为三类
发现没,提早终止法也属于正则化的一种!至于为何,请看后边的分析。
这里只介绍几种常见的正则化法:L1/L2正则化法、Dropout法以及从贝叶斯角度理解正则化。
L1正则化是指在损失函数后加上权值向量w中各个元素的绝对值之和,即(lasso回归):
L2正则化是指在损失函数后加上权值向量w中各个元素的平方和而后再求平方根,即(岭回归) :
通常都会在正则化项以前添加一个系数(如C),这个系数须要用户设定,系数越大,正则化做用越明显。
如上图,参数空间(w1,w2)是一个二维平面,蓝色部分是一个平方损失函数,黄色部分是正则项。蓝色的那个圈,中心的点其实表明的就是损失函数最优的点,而同心圆则表明不一样的参数相同的损失,可见随着圆的扩大,损失增大。黄色的区域也相似,周边的红色线表示的是损失相同点的轮廓。
正则项的红色轮廓线示平方损失的蓝色轮廓线总要相交,才能使得二者加起来的损失最小,二者的所占区域的相对大小,是由权重因子决定的。无论怎么说,它们总有一个交叉点。
对于L2正则化,它的交点会使得w1或者w2的某一个维度特别小,而L1正则化则会使得w1或者w2的某一个维度等于0,所以得到所谓的稀疏化。
所以,L1正则化容易获得稀疏解(0比较多)。L2正则化相比于L1正则来讲,获得的解比较平滑(不是稀疏),可是一样可以保证解中接近于0(但不是等于0,因此相对平滑)的维度比较多,下降模型的复杂度。
从贝叶斯先验的角度看,加入正则化项至关于加入了一种先验,L1范数至关于加入了一个Laplacean先验,L2范数至关于加入了一个Gausssian先验,如图:
拉普拉斯先验在0的位置具备最高的几率密度,这就说明不少参数会变成0,这就是为何L1正则化会具备能产生稀疏性的优良性质。
待补
待补
待补
1.尹恩·古德费洛.深度学习[M].北京:人民邮电出版社,2017.8
2.马丁 T·哈根,章毅(译).神经网络设计.第二版.北京:机械出版社,2017.12
5.其它
😕/blog.csdn.net/dcrmg/article/details/80229189)
5.其它