找回密码
 立即注册
查看: 165|回复: 0

16.深度学习之优化算法-2

[复制链接]
发表于 2023-1-4 15:43 | 显示全部楼层 |阅读模式
16.1 RMSProp


  • RMSProp算法对AdaGrad算法做了修改,仅累积最近迭代的梯度

    • 使用指数衰减来实现




  • 和AdaGrad算法一样,RMSProp算法将目标函数自变量中每个元素的学习率通过按元素运算重新调整,然后更新自变量


16.2 AdaDelta算法



16.3 Adam算法


  • Adam算法结合了动量优化和 RMSProp 的思想
  • 算法

    • 动量变量




  • 将小批量随机梯度按元素平方后的项做指数加权移动平均得到



  • 由于将



  • 中的元素都初始化为0, 在时间步t得到



  • 将过去各时间步小批量随机梯度的权值相加,得到



  • 需要注意的是,当t较小时,过去各时间步小批量随机梯度权值之和会较小。
  • 例如,当




  • 在Adam算法中,对变量



  • 均作偏差修正:



  • 接下来,Adam算法使用以上偏差修正后的变量



  • 将模型参数中每个元素的学习率通过按元素运算重新调整:



  • 最后,使用



  • 迭代自变量:


16.4 深度学习为什么不用二阶优化


  • 目前深度学习中,反向传播主要是依靠一阶梯度。
  • 二阶梯度在理论和实际上都是可以应用都网络中的,但相比于一阶梯度,二阶优化会存在以下一些主要问题:

    • 计算量大,训练非常慢。
    • 二阶方法能够更快地求得更高精度的解
    • 稳定性

16.5 超参数的重要性顺序


  • 学习率

    • 在网络参数、优化参数、正则化参数中最重要的超参数可能就是学习率了。

  • 损失函数上的可调参数,这些损失一般可分成三类:

    • 第一类辅助损失结合常见的损失函数,起到辅助优化特征表达的作用。

      • 例如度量学习中的Center loss,通常结合交叉熵损失伴随一个权重完成一些特定的任务。
      • 这种情况下一般建议辅助损失值不高于或者不低于交叉熵损失值的两个数量级;

    • 第二类,多任务模型的多个损失函数,每个损失函数之间或独立或相关,用于各自任务,这种情况取决于任务之间本身的相关性
    • 第三类,独立损失函数

  • 批样本数量

    • 过小的批数量,极端情况下,例如batch size为1,即每个样本都去修正一次梯度方向,样本之间的差异越大越难以收敛。
    • 而过大的batch size,会使得梯度方向基本稳定,容易陷入局部最优解,降低精度。
    • 一般参考范围会取在[1:1024]之间

  • 动量优化器(Gradient Descent with Momentum)的动量参数β。

    • 动量衰减参数β是计算梯度的指数加权平均数,并利用该值来更新参数,设置为 0.9 是一个常见且效果不错的选择;

  • Adam优化器的超参数、权重衰减系数、丢弃法比率(dropout)

    • Adam优化器中的β1,β2,,常设为 0.9、0.999、108就会有不错的表现
    • 权重衰减系数通常会有个建议值,例如0.0005
    • dropout通常会在全连接层之间使用防止过拟合,建议比率控制在[0.2,0.5]之间

  • dropout的位置

    • 一、在RNN中,一般会建议放在输入和输出层;
    • 二、不建议dropout后直接跟上batchnorm;

  • 网络参数通常也属于超参数的范围内,通常情况下增加网络层数能增加模型的容限能力,但模型真正有效的容限能力还和样本数量和质量、层之间的关系等有关
  • 模型深度
  • 卷积核尺寸
大数据视频推荐:
碧茂课堂腾讯课堂官网
CSDN学院
大数据免费语音推荐:
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-6-27 04:15 , Processed in 0.108099 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表