深度学习过拟合解决方案(pytorch相关方案实现)

描述

最近做项目出现过拟合的情况,具体表现为,使用简单模型的时候需要迭代十几个epoch之后才能达到一个理想的结果,并且之后loss趋于稳定,f1也趋于稳定;后来使用复杂的模型后,两三个epoch后能达到更好的结果但是之后随着loss下降f1值反而下降了。这是一个比较明显的的过拟合现象。

解决方案

对于深度学习网络的过拟合,一般的解决方案有:

1.Early stop

在模型训练过程中,提前终止。这里可以根据具体指标设置early stop的条件,比如可以是loss的大小,或者acc/f1等值的epoch之间的大小对比。

2.More data

用更多的数据集。增加样本也是一种解决方案,根据不同场景和数据有不同的数据增强方法。

3.正则化

常用的有L1、L2正则化

4.Droup Out

以一定的概率使某些神经元停止工作

5.BatchNorm

对神经元作归一化

实现

这里主要讲述一下在pytorch中的过拟合解决方案,early stop和more data都是对于特定的任务去进行的,不同的任务有不同的解决方案,这里不做进一步说明。在pytorch框架下后面几种解决方案是有统一的结构或者解决办法的,这里一一道来。

1.正则化

torch.optim集成了很多优化器,如SGD,Adadelta,Adam,Adagrad,RMSprop等,这些优化器中有一个参数weight_decay,用于指定权值衰减率,相当于L2正则化中的λ参数,注意torch.optim集成的优化器只有L2正则化方法,api中参数weight_decay 的解析是:weight_decay (float, optional): weight decay (L2 penalty) (default: 0),这里可以看出其weight_decay就是正则化项的作用。可以如下设置L2正则化:

optimizer
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值