zoukankan      html  css  js  c++  java
  • torch.optim.Adam优化器参数学习

    1.参数

    https://blog.csdn.net/ibelievesunshine/article/details/99624645

    class torch.optim.Adam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0)[source]

    • params (iterable) – 待优化参数的iterable或者是定义了参数组的dict
    • lr (float, 可选) – 学习率(默认:1e-3)
    • betas (Tuple[floatfloat], 可选) – 用于计算梯度以及梯度平方的运行平均值的系数(默认:0.9,0.999)
    • eps (float, 可选) – 为了增加数值计算的稳定性而加到分母里的项(默认:1e-8)
    • weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认: 0)

    2.算法

    https://arxiv.org/pdf/1412.6980.pdf

     可以看到,beta参数是用来更新m、v这两个动量向量和梯度的,梯度经过动量估计之后代替了SDG中的直接用梯度来更新参数。

    α也就是lr学习率,用来更新参数,作为一个步长吧。

    weight_decay 是针对最后更新参数的时候,给参数加的一个惩罚参数,

     总结:lr是在更新梯度的时候用到的,weight_decay权重衰减是在损失函数中的模型参数的权重,更新参数时用到的。

     总的loss中加入了一个对权重的限制,防止过大产生过拟合现象,

     在参数更新时反映出来,正则化参数λ决定了你如何权衡原始损失E和较大的权重惩罚。

  • 相关阅读:
    【原】文本图片自适应高度小bug以及解决办法
    【原】iOS学习39网络之数据请求
    【原】iOS学习38网络之数据解析
    iOS数据持久化文件读写之偏好设置
    SQLite错误码
    iOS开发代码规范(通用)
    iOS学习37数据处理之CoreData
    iOS中的单例
    iOS学习36数据处理之SQLite数据库
    UIImage两种初始化的区别
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/14269033.html
Copyright © 2011-2022 走看看