深度学习模型在训练集上很好而在测试集表现得不好而拟合次数并不多_深度学习中网络训练技巧...

本文探讨了深度学习模型在训练集和测试集表现的差异,强调了不能仅依赖测试集调整网络。文章介绍了深度学习流程,讨论了训练集效果不佳时可能的问题,如激活函数选择,提出ReLU等解决方案。此外,还讲解了当训练集效果好但测试集效果差时的应对策略,如提前结束训练、正则化和dropout技术的应用,并提供了相关优化算法的资源链接。
摘要由CSDN通过智能技术生成

本文内容如下:

1.深度学习的流程
2.根据训练的问题选择解决方案
3.梯度下降方法
4.当训练集效果好但测试集效果差时
5.dropout

1.深度学习的流程

基本流程就是 定义一个函数→评价函数→选择最好的函数

这样就可以得到网络。那么得到网络后,先要测试在训练集上的效果,如果训练集的效果都不好的话,就要回去检查挑选的是否是最好的函数。深度学习上过拟合一般是不容易遇到的,你更容易遇到的问题就是在训练集上正确率也不高。

如果在训练集上已经得到好的结果了,那么在测试集上检查网络的效果。如果结果不好的话,那么才是过拟合,这个时候才要解决过拟合的问题。然后再回到网络里去检查问题出在哪。但是如果你直接通过测试集去改变网络的话,你的网络在训练集的效果也会变差。因此,这个步骤是不能跳跃的,得严格按下面的流程进行。如果在训练集和测试集上效果都很好就可以输出网络了。

a622916810d3d1f99c9d7432eadfe93f.png

同时,在训练网络时,不要总是把问题归在过拟合上面。例如下面这个在测试集的误差图,发现20层的效果比56层的效果好,那么你可能第一反应就是56层的网络过拟合了,但是第一反应归第一反应,还是得回到训练集上来查看是否是过拟合的原因。

1965d101b2a889b19b1df12ac00b61e8.png

从训练集的误差图来看(下图),发现哪怕是在训练集上,56层的效果还是要比20层的效果差。那么这肯定不是过拟合的问题了。那为什么会这样呢?这就有很多原因了,例如,56层的网络就可能卡在局部最小值了,或者鞍点等原因。

17316f3293aebac4abce5123403b8ca6.png

所以,在读深度学习文献时,一定要想到,训练到底是遇到了什么问题。这里主要就是从测试集和训练集来考虑问题。确定了什么问题之后,再来想解决方案。例如,dropout,只有在测试集上效果很差时,才会选择用dropout;如果在训练集效果都很差,那使用dropout只会让效果更差。

2.根据训练的问题选择解决方案

前面提到了,训练过程中可能出现的问题。这里来讲一下,出现不同问题时,不同的解决方案。

方案总体如下图,具体后面叙述。

d6eb129013ff7c5b50fc0bcbfada3898.png

在训练集的效果很差时,我们可以考虑是不是激活函数的选择出了问题。例如,在多年前,我们的网络越深,效果就会越差,下面就是手写数字上的准确率随着层数的变化(使用的sigmoid激活函数),发现层数越深结果质量越差。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值