文章目录

  • Adadelta
    • 1 - Adadelta算法
    • 2 - 代码实现
    • 3 - 小结

Adadelta

Adadelta是AdaGrad的另一种变体,主要区别在于前者减少了学习率适应坐标的数量。此外,广义上Adadelta被称为没有学习率,因为它使用变化量作为未来变化的校准

1 - Adadelta算法

2 - 代码实现

Adadelta需要为每个变量维护两个状态变量,即st和Δxts_t和\Delta x_tst​和Δxt​

%matplotlib inline
import torch
from d2l import torch as d2l
def init_adadelta_states(feature_dim):s_w,s_b = torch.zeros((feature_dim,1)),torch.zeros(1)delta_w, delta_b = torch.zeros((feature_dim, 1)), torch.zeros(1)return ((s_w,delta_w),(s_b,delta_b))def adadelta(params,states,hyperparams):rho,eps = hyperparams['rho'],1e-5for p,(s,delta) in zip(params,states):with torch.no_grad():#  In-placeupdatesvia[:]s[:] = rho * s + (1 - rho) * torch.square(p.grad)g = (torch.sqrt(delta + eps) / torch.sqrt(s + eps)) * p.gradp[:] -= gdelta[:] = rho * delta + (1 - rho) * g * gp.grad.data.zero_()

对于每次参数更新,选择ρ = 0.9相当于10个半衰期,由此我们得到

data_iter,feature_dim = d2l.get_data_ch11(batch_size=10)
d2l.train_ch11(adadelta,init_adadelta_states(feature_dim),{'rho':0.9},data_iter,feature_dim);
loss: 0.243, 0.009 sec/epoch

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AFNLhqPW-1663327838192)(https://yingziimage.oss-cn-beijing.aliyuncs.com/img/202209161924784.svg)]

为了简洁实现,我们只需使用Trainer类中的adadelta算法

trainer = torch.optim.Adadelta
d2l.train_concise_ch11(trainer,{'rho':0.9},data_iter)
loss: 0.243, 0.007 sec/epoch

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s9E9EN42-1663327838192)(https://yingziimage.oss-cn-beijing.aliyuncs.com/img/202209161924785.svg)]

3 - 小结

  • Adadelta没有学习率参数。相反,它使用参数本身的学习率来调整学习率
  • Adadelta需要两个状态变量来存储梯度 的二阶导数和参数的变化
  • Adadelta使用泄露的平均值来保持对适当统计数据的运行估计

优化算法 - Adadelta相关推荐

  1. Dropout、梯度消失/爆炸、Adam优化算法,神经网络优化算法看这一篇就够了

    作者 | mantch 来源 | 知乎 1. 训练误差和泛化误差 对于机器学习模型在训练数据集和测试数据集上的表现.如果你改变过实验中的模型结构或者超参数,你也许发现了:当模型在训练数据集上更准确时, ...

  2. 从零开始学Pytorch(十四)之优化算法进阶

    动量 目标函数有关自变量的梯度代表了目标函数在自变量当前位置下降最快的方向.因此,梯度下降也叫作最陡下降(steepest descent).在每次迭代中,梯度下降根据自变量当前位置,沿着当前位置的梯 ...

  3. 深度学习中的优化算法之Adam

    之前在https://blog.csdn.net/fengbingchun/article/details/124909910 介绍过深度学习中的优化算法Adadelta,这里介绍下深度学习的另一种优 ...

  4. 深度学习中常用的优化算法

    参考<动手学深度学习> https://zh.d2l.ai/chapter_optimization/index.html 一维梯度下降 我们先以简单的一维梯度下降为例,解释梯度下降算法可 ...

  5. DL-Pytorch Task07:优化算法进阶;word2vec;词嵌入进阶

    目录 优化算法进阶 An ill-conditioned Problem Maximum Learning Rate Supp: Preconditioning Solution to ill-con ...

  6. adadelta算法_神经网络中常用的优化算法

    优化算法的目的:1. 跳出局部极值点或鞍点,寻找全局最小值:2.使训练过程更加稳定,更加容易收敛. 优化算法的改进无非两方面:1.方向--加动量,2.学习速率--加衰减 1.SGD 2.[Moment ...

  7. 优化算法SGD/ASGD/AdaGrad/Adadelta/RMSprop/Adam/Adamax/SparseAdam/L-BFGS/Rprop

    机器学习界有一群炼丹师,他们每天的日常是: 拿来药材(数据),架起八卦炉(模型),点着六味真火(优化算法),就摇着蒲扇等着丹药出炉了. 不过,当过厨子的都知道,同样的食材,同样的菜谱,但火候不一样了, ...

  8. 机器学习:优化算法Optimizer比较和总结(SGD/BGD/MBGD/Momentum/Adadelta/Adam/RMSprop)

    文章目录 梯度下降法(Gradient Descent) 批量梯度下降法BGD 随机梯度下降法SGD 小批量梯度下降法 动量优化法 Momentum NAG(Nesterov accelerated ...

  9. 深度学习梯度下降优化算法(AdaGrad、RMSProp、AdaDelta、Adam)(MXNet)

    在深度学习优化算法之动量法[公式推导](MXNet)中,动量法因为使用了指数加权移动平均,解决了自变量更新方向不一致的问题.动量法由于每个元素都使用了相同的学习率来做迭代,这也导致另外一个问题:如果x ...

  10. 优化算法optimization:AdaDelta

    AdaDelta算法 提出动机 除了RMSProp算法以外,AdaDelta算法的提出也是为了解决AdaGrad算法在迭代后期较难找到有用解的问题. 算法 AdaDelta算法也像RMSProp算法一 ...

最新文章

  1. Android 异常: failed to connect to localhost/127.0.0.1
  2. VTK:Procrustes 对齐过滤器用法实战
  3. 当你感到学习困难的时候,你在走上坡路!
  4. TextView之一:子类的常用属性
  5. java selenium用js点击_Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?...
  6. pbs 支持 java_Linux下Java安装与配置
  7. 我的内核学习笔记3:我的platform驱动模板文件
  8. [Offer收割]编程练习赛42
  9. 计算机完成双系统无法启动怎么办,电脑双系统引导修复教程
  10. 如何理解冲突域和广播域?(转)
  11. Deepfacelab 新手教程(转载)
  12. 应用程序正常初始化失败0xc0150002 错误
  13. vue3里面app.config.globalProperties的使用
  14. 回调地狱[Callback Hell]
  15. 我的 2020 总结:Never Settle
  16. 统计综合指标有哪些?
  17. GIS的基本概念二:大地水准面、旋转椭球体(椭球体)、大地基准面
  18. 分部积分法的一些特殊方法
  19. linux xunsou_IT外包 网络综合布线 机房建设整改 弱电集成安防-_295
  20. selenium3.141 +IE浏览器环境搭建(含驱动下载链接)

热门文章

  1. Xshell5连接服务器
  2. Vue+Vant的组件自定义使用阿里图标库图标
  3. 卸载 Oracle 19c
  4. javashop7.15大型多店铺商城源码 java多店铺商 城系统b2b2c
  5. 计算机毕业设计python基于django租房系统-房屋租赁系统
  6. “汇乐缘”:甜蜜的阴谋?【zt】
  7. [MIT 6.S081] Lab 4: traps
  8. 小米平板4/4plus手机屏幕驱动板使用步骤说明
  9. 数控车计算机软件编程的重要性,数控车床有多少人软件编程?
  10. 在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具