学习笔记36-防止过拟合现象产生的常见方法

过拟合定义:

过拟合是指过于精准地匹配了特定数据集,导致模型不能良好地拟合其他数据或预测未来的观察结果。

1.数据增强

由于更深、更宽的深度学习网络,往往需要训练集更多的参数,当有足够多的数据量时才能获得较好且稳定的训练效果。如果数据样本质量差、数据样本有限等情况,可以通过数据增强技术对现有的数据集扩充。数据增强则是通过已定的规则扩充数据。
数据增强目的: 提升算法性能、满足深度学习模型对大量数据需求的重要工具。
一般方法有: 水平或垂直翻转图像、裁剪、色彩变换、缩放和旋转等手法。

2.合理的数据切分

一个数据集将被且分为训练集-训练深度学习网络、验证集-监督网络的学习过程、测试集-测试训练结果的泛化能力。当然如果数据量过少时可以忽略验证集的存在。
传统的数据切分方法通常按照60:20:20比例拆分。针对数据量不同,当数据量很大时,更好的方式将数据集的98%用于训练网络,保证尽可能多的样本训练,剩余的2%分别用于监督模型是否过拟合,以及测试网络的泛化能力。
结论: 针对于数据量的大小、网络参数的数量,数据切分比例可以根据实际需求来确定。

3.正则化方法(权重衰减)

正则化的定义: 其用于解决模型因强大的表征力而产生测试数据过拟合等现象,通过避免训练完美拟合数据来加强算法的泛化能力。因此,算法正则化的研究成为机器学习中重要的研究主题之一。表征力: 表达信息量。
3.1权重正则化

  1. 权重正则化通常是在损失函数上添加训练参数的惩罚范数,通过添加的范数惩罚对需要训练的参数进行约束,防止过拟合。惩罚范数主要包括L1(Lasso回归)、L2(Ridge回归)。
  2. L1范数目的是将参数的绝对值最小化,使用L1会趋向于使用更少的参数,而其他参数都是0,从而增加网络的疏密性,进而防止过拟合现象的产生。
  3. L2范数目的是将参数的平方和最小化,使用L2约束会趋向选择更多的参数,但这些参数都将会接近于0。
    举例:
    损失函数为:
    在这里插入图片描述
    为了减少损失函数的均方误差,通过添加正则项λ方法,提高模型的泛化能力(减小泛化误差)。
    在这里插入图片描述

3.2 Dropout正则化
Dropout在训练过程中通过按一定比例随机忽略或丢弃一部分神经元及其连接。在每一轮的训练过程中以一定的概率丢弃神经元,被丢弃的参数不更新,减少了神经元之间的共适应。其不仅降低了过拟合,同时做到了减少训练节点提高算法学习速度。通常丢弃率控制在0.2-0.5比较好,因为太低可能起不到效果,太高则会导致模型欠拟合。共适应: 神经元之间的特征相互依赖,防止过拟合。
3.3批量正则化(Batch Normalization)
输入:微批次(mini-batch)数据:B={x1,x2,…,xm}
学习参数:γ,β类似于权重参数,可以通过梯度下降等算法求得。
输出:{yi=NBγ,β(xi)}
处理:
1.求微批次平均值
在这里插入图片描述
2.求微批次样本方差
在这里插入图片描述
3.对xi标准化处理
在这里插入图片描述
4.反标准化操作
在这里插入图片描述
BN一般应用在非线性映射前,在全连接和激活函数之间。当神经网络出现收敛速度很慢,或梯度爆炸等无法训练的状况时,尝试利用BN解决。除此之外,BN还具有加快收敛速度、提高模型精度、提高网络的泛化能力以及提高模型的效率等优势。因此,当模型采用BN归一化处理后,训练时可以移除Dropout和L2正则化方法,或者可以使用更小的约束参数。
有人提出在BN中加入L1正则项用来实现在训练过程中自动去除不重要的学习,减少模型计算量,使模型轻量化。
总结:Dropout通过修改网络结构实现,而其他正则化方法是通过修改损失函数的方法实现。

4.提前停止(早停法)
提前停止可以限制模型最小化代价函数所需的训练迭代次数。即可以提前停止训练,是机器学习最简单的正则化方法。但可能会获得训练不充分的最终参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值