解决过拟合现象的六种姿势

前面一文讲述的了过拟合现象产生的原因,现在讲述过拟合现象如何解决:

1 增加训练数据

这是解决过拟合现象的根本办法,若没有过多的训练数据,我们可以自己增加一些假数据来在增加数据的数量,从而让模型的泛化能力增强。

2 控制模型的复杂度

过于复杂的模型容易造成过拟合现象。对于模型的设计而言,我们应该选择简单、合适的模型解决复杂的问题。

3 降低特征的数量

对于一些特征工程而言,可以降低特征的数量——删除冗余特征,人工选择保留哪些特征。这种方法也可以解决过拟合问题。

4 L1 / L2 正则化

L1 正则化

在原始的损失函数后面加上一个L1正则化项,即全部权重|w|的绝对值的和,再乘以λ/n。则损失函数变为:

解决过拟合现象的六种姿势
对应的梯度(导数):
解决过拟合现象的六种姿势
其中 sgn(w)只是简单地取 w各个元素地正负号。
解决过拟合现象的六种姿势
梯度下降时权重 w更新变为:
解决过拟合现象的六种姿势
当 w=0时,|w|是不可导的。所以我们仅仅能依照原始的未经正则化的方法去更新w。
当 w>0时,sgn( w )>0, 则梯度下降时更新后的 w变小。
当w

; L2 正则化

L2正则化通常被称为权重衰减

解决过拟合现象的六种姿势
对应的梯度(导数):
解决过拟合现象的六种姿势
能够发现L2正则化项对偏置 b 的更新没有影响,可是对于权重 w的更新有影响:
解决过拟合现象的六种姿势
解决过拟合现象的六种姿势
这个式子是小于1 的
因此在梯度下降过程中,权重 w将逐渐减小,趋向于0但不等于0。这也就是权重衰减的由来
L2正则化起到使得权重参数 w 变小的效果,为什么能防止过拟合呢?因为更小的权重参数 w 意味着模型的复杂度更低,对训练数据的拟合刚刚好,不会过分拟合训练数据,从而提高模型的泛化能力。

5 dropout机制

Dropout是在训练网络时用的一种技巧(trike),相当于在隐藏单元增加了噪声。Dropout 指的是在训练过程中每次按一定的概率(比如50%)随机地”删除”一部分隐藏单元(神经元)。所谓的”删除”不是真正意义上的删除,其实就是将该部分神经元的激活函数设为0(激活函数的输出为0),让这些神经元不计算而已。
如下图是基础网络:

解决过拟合现象的六种姿势
下面所述的式子是使用dropout后的网络
解决过拟合现象的六种姿势

Dropout为什么有助于防止过拟合呢?

(a)在训练过程中会产生不同的训练模型,不同的训练模型也会产生不同的的计算结果。随着训练的不断进行,计算结果会在一个范围内波动,但是均值却不会有很大变化,因此可以把最终的训练结果看作是不同模型的平均输出。

(b)它消除或者减弱了神经元节点间的联合,降低了网络对单个神经元的依赖,从而增强了泛化能力。

; 6 Early stopping

对模型进行训练的过程即是对模型的参数进行学习更新的过程,这个参数学习的过程往往会用到一些迭代方法,如梯度下降(Gradient descent)。Early stopping是一种迭代次数截断的方法来防止过拟合的方法,即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合。

为了获得性能良好的神经网络,训练过程中可能会经过很多次epoch(遍历整个数据集的次数,一次为一个epoch)。如果epoch数量太少,网络有可能发生欠拟合;如果epoch数量太多,则有可能发生过拟合。Early stopping旨在解决epoch数量需要手动设置的问题。具体做法:每个epoch(或每N个epoch)结束后,在验证集上获取测试结果,随着epoch的增加,如果在验证集上发现测试误差上升,则停止训练,将停止之后的权重作为网络的最终参数。

为什么能防止过拟合?当还未在神经网络运行太多迭代过程的时候,w参数接近于0,因为随机初始化w值的时候,它的值是较小的随机值。当你开始迭代过程,w的值会变得越来越大。到后面时,w的值已经变得十分大了。所以early stopping要做的就是在中间点停止迭代过程。我们将会得到一个中等大小的w参数,会得到与L2正则化相似的结果,选择了w参数较小的神经网络。

Early Stopping缺点:没有采取不同的方式来解决优化损失函数和过拟合这两个问题,而是用一种方法同时解决两个问题 ,结果就是要考虑的东西变得更复杂。之所以不能独立地处理,因为如果你停止了优化损失函数,你可能会发现损失函数的值不够小,同时你又不希望过拟合。

Original: https://blog.csdn.net/m0_37347812/article/details/114930223
Author: 飞驰的拖鞋
Title: 解决过拟合现象的六种姿势

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/542967/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球