深度学习调参和数据增强

深度学习中关于模型训练的一些小技巧:

一、数据平衡性对模型的影响:
训练数据的均衡性,对模型的收敛速度和训练效果都会有较大影响。拿分类问题来说,如果是二分类或者三分类,如果某一类数据特别少很容易导致模型训练收敛慢,而且模型真正的表达能力不强,准确率可能很高,但是 f1 值不高,就是各类数据的准确率不是都很高,在少量数据的类方面,预测能力较弱,但是可能由于数据少的原因,导致问题被遮掩

所以,解决方法可以做一些数据增强,比如说对某一类数据量较少的可以进行数据扩充,甚至double一次,提高数据的平衡

二、batch_size 和 epoch 的选定问题:
在条件和数据量允许的情况下,可以尝试稍微大 batch_size 和 epoch,当然,并不是说越大越好,应该有个合适的值,而且一般情况下:batch_size较大(比如说2000),数据收敛较(越)慢,需要的epoch较大,batch_size较小(比如说64)时,数据收敛快,需要的epoch较小

再多说一句的话,其实batch_size的大小是适中的,绝对不是越大越好,试想一下,如果把全部数据当做一个batch去训练,假如说数据最后收敛,那么也极大可能是过拟合了,如下,就是最后逐渐过拟合了。所以batch_size 的不一定取很大,保证数据允许范围内的误差,从而提高模型的整体泛化能力,降低过拟合(这个‘合适’很玄学,不过调参经验还是很重要的)
batch_size = 600和batch_size = 2000的区别, 2000时将近22轮才收敛到0.95而600只需要4轮
在这里插入图片描述在这里插入图片描述
三、训练过程中的一些细节判断:
一般来说,由于训练集数据量一般比验证集数据量大,所以开始训练时,训练集中总的batch_size的loss和比验证集上的高,batch_size的precise_val比验证集低。当模型训练集的准确度比验证集上的准确率低时,并持续保持时,说明模型总体的的泛化能力良好,没有‘走偏’,如果开始并持续出现模型训练集的准确率比验证集准确率高,而且出现训练集模型准确率持续提升,但是验证集准确率无明显变化或者下降时,可能就是过拟合或者学习了很多‘偏门’的不必要特征,所以观察这些训练过程结果也可以对训练效果和数据有个判断

总言之:数据平衡性对模型影响较大,它不仅影响模型训练的稳定性(就是随机打乱多次训练,每次模型的准确度差别)还影响模型训练的表达能力,泛化效果,是训练模型时首先要判断的问题;第二个才是batch_size及epoch的选择,根据自己的算力,逐个选择3000→1500→1000→500→300→128→64 ,逐步尝试,选择最佳

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值