深度学习中神经网络模型训练常见技巧

本文介绍了深度学习中神经网络模型训练的关键步骤,包括数据预处理、端到端训练框架设计、随机值管理和权重初始化,以及应对过拟合的策略、优化方法选择、预训练模型利用和超参数优化等,强调了长时间训练和集成学习的重要性。
摘要由CSDN通过智能技术生成

深度学习中神经网络模型训练常见技巧

1查看数据的分布与规律

数据的预处理与探索阶段非常重要,要花尽量多的时间观察和了解数据的分布并找到其中的一些规律,如果数据量巨大,可以使用部分代表性数据通过可视化工具在二维空间进行初步观察,高维数据可以使用多种降维方法到二维,删除重复数据、低质量数据、错误数据,对于异常数据要深度分析,看看是正常分布中的异常,还是错误引起的异常。

2设计端到端的训练评估框架

建立一个完整的训练与评估框架,注意简单化是这个阶段的核心,训练数据量不要过大,但是要体现整体分布规律,此时需要的是一个较为简单和训练快速的模型,目的是把训练和评估的整个完整流程可以顺利跑通,对于准确率和损失等性能评估标准,要进行可视化和观察值的输出,每训练一次,要可以清晰观察出整个过程的性能变化与走势。

3随机值的处理

在深度学习训练过程中,经常会有一些随机值的设置,比如对权重按照正态分布随机初始化等,需要保证每次训练或运行过程中随机的结果是相同的,这就要使用固定的随机种子,消除随机值带来的差异因素。

4权重的初始化

神经网络中正确有效的权重初始化可以加快训练速度,带来快速正确的收敛。可以先通过设置多种初始化方案并观察输出的性能曲线,确定选择有效的一种。由于最后一层网络决定了最终输出结果,正确初始化最后一层的权重对于加速模型收敛更为重要,比如有一个比例为2:8的不平衡数据集,就可以针对最后一层网络设置权重来有利于比例少的数据,也是在训练阶段解决不平衡数据集的一种方案。

5处理过拟合的常见方法

深度学习最致命的问题就是过拟合,因为模型复杂度高,所以非常容易过拟合。减少过拟合的方法包括:(1)增加数据集规模,(2)对数据进行增广,比如图像的仿射变换与背景变换,模拟,合成图像等,(3)减少特征数量,可以降维,也可以选择更重要的特征,(4)裁剪神经网络或使用更简单的模型,(5)正则化处理,包括L1,L2,dropout和BN等,(6)清除部分异常数据,(7)监控性能指标,比如测试集达到某个准确率就停止训练。

6早停法控制过拟合的奇特效果

深度学习大一些的模型很容易过拟合,几乎是必然的,通过大量的实践经验,很多时候通过早停的方法,即性能指标达到某一个值就停下来,比如准确率在验证集上达到95%就不再训练,此时模型在测试集和新数据上往往有比较好的表现。         

7如何选择优化方法

深度学习中的优化方法有7种左右,如果你不知道选择哪个好,选择Adam方法是最安全的,这里再分享一个我的训练经验,Adam训练最优的模型往往可以使用经典的SGD(随机梯度下降)进一步训练来继续优化权重,即先用Adam优化训练一个模型,再使用该模型作为预训练模型,通过SGD继续训练,精确度会进一步提升。

8先尝试小分辨率图像

深度学习中图像处理占了相当大的一部分比例,比如分类、检测、分割和生成等应用。对于图像的训练,我们希望batchsize(批量大小)尽量大一些,但是这样会占用大量的GPU显存,为了让训练速度加快,同时在已有的显存中每次处理更多的图像,一种有效的方案是尽量使用小分辨率的图像,除非应用对于细节要求特别高,根据经验,一些图像细节通过训练的方式也是可以学习到的。

9防止学习率到零

 在深度学习训练中,学习率有不同的衰减方法,目的是为了更加精确的逼近极值点,防止跨越极值点。但是也可能会过早地将学习率减少到零,从而导致模型无法收敛。所以在训练过程中,可以对衰减方案进行一些有效的设置,从而避免学习率减少到零的情况发生。

10尽量使用预训练模型

预训练模型是指在大规模数据集上预先训练好的神经网络模型。预训练模型的目标是学习到通用的特征表示,这些特征可以被迁移到各种不同的任务中。比如在自然语言处理(NLP)领域,使用谷歌的预训练模型,自己就可以在半个小时内使用最普通的训练显卡训练出一个和人类识别力相当的短文本分类器。所以如果有合适的预训练模型,一定要使用。

11权重可视化

对于tensorflow和pytorch等深度学习平台,都有自己的权重可视化工具,第一层权重可视化就可以初步看出训练效果的好坏,因为第一层的权重可视化通常显示出一些基本的特征探测器或滤波器。这些滤波器通常与输入数据的低级特征相关联,例如边缘、纹理、颜色等。这些滤波器通过二维图像可视化是很有一些特点的,至少有比较明显的不同类型的边缘,如果图像看起来像噪声,说明训练效果不太好。

12为何用随机搜索

网格搜索是机器学习中用于确定最佳模型超参数的一种方法,网格搜索通常是把各种参数设定组合都包含进来。但是记住深度学习中,随机搜索更好。因为深度学习中,超参数维度更高,网络搜索数量会爆炸性增长,同时会限制搜索空间,导致探索能力变差。随机搜索对于高维度的参数空间和大型数据集更具有可扩展性和灵活性。

13使用贝叶斯超参数优化工具

       开源可以直接使用的贝叶斯超参数优化工具特别多,比如Hyperopt、BayesianOptimization、Optuna等,通过贝叶斯优化的方法在超参数空间中搜索最优的超参数组合,并且可以方便地与深度学习框架(如TensorFlow、PyTorch)集成。在完成贝叶斯优化算法的运行后,得到最优的超参数组合。然后,使用这些超参数在整个训练集上重新训练模型即可。

14集成学习

三个臭皮匠顶个诸葛亮是一个放之四海而皆准的道理,在机器学习领域就是集成学习的思想。将多个模型按照集成学习思想结合之后,可以进一步的提升预测效果,不管什么任务,至少可以保证提升2%的准确度。比如可以使用蒸馏法(Distill),该方法可以同时减小模型尺寸和计算成本。很多时候是非常好的一个选择。

15超长时间训练计划

深度学习的出现,把人工智能转为一个实验性很强的学科,这意味着大量不同的实验可能会产生意想不到的结果。如果时间允许,设备允许,可以设计一些超长时间的训练计划,比如原本可以三天训练完的数据,延长训练一周,甚至两周,甚至一个月,真的可能会产生性能极佳的预测模型,因为这样的例子在大模型时代更是层出不穷。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值