【深度学习笔记】深度学习训练技巧——超参数选取

本文介绍了如何选择和调整深度学习模型的超参数,如层数、神经元数、学习率等,通过逐步实验确定最佳设置,包括观察初始损失、过拟合测试、调整学习率和正则化参数。作者推荐了Fei-FeiLi等人的CS231n课程中的实用建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

超参数选取

  1. 超参数

    超参数: 控制算法行为,且不会被算法本身所更新,通常决定了一个模型的能力

    对于一个深度学习模型, 超参数包括

    • 层数,每层的神经元数目
    • 正则化系数
    • 学习率
    • 参数衰减率(Weight decay rate)
    • 动量项(Momentum rate)
  2. 如何选择深度学习模型的架构

    • 熟悉数据集
    • 与之前见过的数据/任务比较
      • 样本数目
      • 图像大小, 视频长度, 输入复杂度…
    • 最好从在类似数据集或任务上表现良好的模型开始
  3. 如何选择其它超参数

    由Fei-Fei Li & Justin Johnson & Serena Yeung(CS231n 2019,Stanford University)给出的建议

    • 第1步:观察初始损失

      • 确保损失的计算是正确的
      • 将权重衰减设为零
    • 第2步:在一组小样本上过拟合

      • 在一组少量样本的训练集上训练,尝试达到100%训练准确率
      • 如果训练损失没有下降,说明是不好的初始化,学习率太小,模型太小
      • 如果训练损失变成Inf或NaN,说明是不好的初始化,学习率太大
    • 第3步:找到使损失下降的学习率

      • 在全部数据上训练模型,并找到使损失值能够快速下降的学习率

        当损失值下降较慢时,将学习率缩小10倍

        使用较小的参数衰减

    • 第4步:粗粒度改变学习率,训练1-5轮

      • 在上一步的基础上,尝试一些比较接近的学习率和衰减率
      • 常用的参数衰减率:1e-4,1e-5,0
    • 第5步:细粒度改变学习率,训练更长时间

      • 使用上一步找到的最好的学习率,并训练更长时间 (10-20 轮),期间不改变学习率
    • 第6步:观察损失曲线

      • 训练损失通常用滑动平均绘制,否则会有很多点聚集在一起

        image-20240218161857392

        有问题的损失曲线:

        image-20240218162126133

延伸阅读:

  • 各种深度学习模型的优化方法:http://cs231n.github.io/neural-networks-3/
  • 关于不同正则化方法的讨论:https://www.cnblogs.com/LXP-
  • Never/p/11566064.html Li,Chen,Hu,Yang,2019
    Understanding the Disharmony Between Dropout and Batch Normalization by Variance Shift CVPR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

住在天上的云

如果您喜欢我的文章,欢迎打赏哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值