过拟合与欠拟合

过拟合:模型对于训练数据拟合过当的情况。其表现为模型在训练数据上表现很好,但是在测试数据上表现较差。

欠拟合:模型对数据拟合不够。其表现为模型在训练数据和测试数据上都表现不好。“欠拟合”常常在模型学习能力较弱,而数据复杂度较高的情况出现,此时模型由于学习能力不足,无法学习到数据集中的“一般规律”,因而导致泛化能力弱。

降低过拟合风险的方法:

(1) 获取更多的训练数据。如增加训练数据,通过平移、旋转、缩放、调整光亮、使用不同滤波等方式扩充数据,使用生成对抗网络来合成大量的新数据。

(2)降低模型复杂度。在数据较少时,模型过于复杂是造成过拟合的主要原因。可采用:减少网络层数、神经元个数,在决策树模型中降低树的深度、进行剪枝等方法。

(3)正则化方法。关于正则化 正则化为什么能降低过拟合程度           L1 L2正则

越小的参数说明模型越简单,越简单的模型越不容易产生过拟合现象。

(4)集成学习方法。集成学习是把多个模型集成在一起,来降低单一模型的过拟合风险,如bagging方法。多个模型的组合可以弱化每个模型中的异常点的影响,保留模型之间的通性,弱化单个模型的特性。

(5)dropout。Dropout是深度学习中最常用的控制过拟合的方法,主要用在全连接层处。Dropout方法是在一定的概率上(通常设置为0.5,原因是此时随机生成的网络结构最多)隐式的去除网络中的神经元。

Dropout控制过拟合的思想和机器学习中的集成方法中的bagging类似,在每个batch更新的网络结构都有所不同,也就相当于在训练时有很多个不同的子网络,在每次迭代时dropout的神经元都不一样,因此对于整个模型参数而言,每次都会有一些参数不被训练到。Dropout会导致网络的训练速度慢2、3倍,而且数据小的时候,Dropout的效果并不会太好。因此只会在大型网络上使用。

(6)提前终止迭代

(7)Bach Normalization。(BN是否能抑制过拟合存疑)。BN算法是一种非常有用的正则化方法,而且可以让大型的卷积神经网络快速收敛,同时还能提高分类的准确率,而且可以不需要使用局部响应归一化处理,也可以不需要加入Dropout。BN算法会将每一层的输入值做归一化处理,并且会重构归一化处理之后的数据,确保数据的分布不会发生变化。

而且有很多变种,比如Layer Normalization,在RNN或者Transformer中用的比较多。

降低欠拟合风险的方法:

(1)添加新特征。可以考虑加入进特征组合、高次特征,来增大假设空间

降低“欠拟合”凤险的方法:
( 1 )添加新特征。当特征不足或者特征与样本标签的相关性不强时模型容易出现欠拟合。通过挖掘“上下文特征”“ID类特征”“组合特征”等新的特征,往往能够取得更好的效果。在深度学习潮流中,有很多模型可以帮助完成特征工程,如因子分解机、梯度提升决策树、Deep-crossing等都可以成为丰富特征的方法。

(2)增加模型复杂度。简单模型的学习能力较差,通过增加模型的复杂度可以使模型拥有更强的拟合能力。如,在线性模型中添加高次项,在神经网络模型中增加网络层数或者神经元个数等等。

(3)减少正则化系数。正则化的目的是用来防止过拟合的,但是模型出现了欠拟合,则需要减少正则化参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值