AdaDelta算法

提出动机

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

算法

AdaDelta算法也像RMSProp算法一样,使用了小批量随机梯度gtg_tgt​按元素平方的指数加权移动平均变量sts_tst​,这里的ρ\rhoρ类似RMSProp中的γ\gammaγ。但有意思的是,AdaDelta算法没有学习率这一超参数。另外,AdaDelta算法还维护一个额外的状态变量Δxt\Delta x_tΔxt​,其元素同样在时间步0时被初始化为0。

对每次迭代做如下改动
st=ρst−1+(1−ρ)gt∘gtgt′=Δxt−1+ϵst+ϵ∘gtxt=xt−1−gt′Δxt=ρΔxt−1+(1−ρ)gt′∘gt′s_t = \rho s_{t-1} + (1-\rho) g_t \circ g_t \\\\ g_t' = \sqrt{\frac{\Delta x_{t-1}+\epsilon}{s_t+\epsilon}} \circ g_t\\\\ x_t = x_{t-1} - g_t' \\\\ \Delta x_{t} = \rho \Delta x_{t-1} + (1-\rho) g_t' \circ g_t' st​=ρst−1​+(1−ρ)gt​∘gt​gt′​=st​+ϵΔxt−1​+ϵ​​∘gt​xt​=xt−1​−gt′​Δxt​=ρΔxt−1​+(1−ρ)gt′​∘gt′​
可以看到,如不考虑ϵ\epsilonϵ的影响,AdaDelta算法与RMSProp算法的不同之处在于使用Δxt−1\sqrt{\Delta x_{t−1}}Δxt−1​​来替代超参数η\etaη。ρ\rhoρ的取值一般在[0.9,0.99][0.9,0.99][0.9,0.99]。

代码实现

def init_adadelta_states(dim=2):s_w = np.zeros((dim, 1))s_b = np.zeros(1)delta_w = np.zeros((dim, 1))delta_b = np.zeros(1)return (s_w, delta_w), (s_b, delta_b)def adagrad(params, states, hyperparams, eps=1e-5):rho = hyperparams['rho']for p, (s,delta) in zip(params, states):s[:] += rho * s + (1 - rho) * p.grad * p.gradg = (math.sqrt(delta + eps) / (math.sqrt(s + eps)) * p.gradp[:] -= gdelta[:] = rho * delta + (1 - rho) * g * g

Reference

  • Dive Into Deep Learning,第7章

优化算法optimization:AdaDelta相关推荐

  1. 第二周:优化算法 (Optimization algorithms)

    第二周:优化算法 (Optimization algorithms) 文章目录 第二周:优化算法 (Optimization algorithms) 2.1 Mini-batch 梯度下降(Mini- ...

  2. 吴恩达deeplearning.ai系列课程笔记+编程作业(6)第二课 改善深层神经网络-第二周:优化算法 (Optimization algorithms)

    第二门课 改善深层神经网络:超参数调试.正则化以及优化(Improving Deep Neural Networks:Hyperparameter tuning, Regularization and ...

  3. 《DeepLearning.ai》第六课:优化算法(Optimization algorithms)

    第六课:优化算法(Optimization algorithms) 6.1 Mini-batch梯度下降 上图表示了整个Mini-batcha梯度下降的过程. 首先对 X { t } X^{\{t\} ...

  4. 优化算法optimization:AdaGrad

    AdaGrad算法 提出动机 在SGD的每次迭代中,目标函数自变量的每一个元素在相同时间步都使用同一个学习率来进行迭代.我们考虑一个二维输入向量x=[x1,x2]Tx = [x_1,x_2]^Tx=[ ...

  5. 优化算法optimization:Adam

    Adam算法 提出动机 Adam算法在RMSProp算法基础上对小批量随机梯度也做了指数加权移动平均. 算法 给定超参数0≤β1<10 \le \beta_1 < 10≤β1​<1( ...

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

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

  7. 机器学习算法优缺点_用于机器学习的优化算法的优缺点

    机器学习算法优缺点 A deep-dive into Gradient Descent and other optimization algorithms 深入研究梯度下降和其他优化算法 Optimi ...

  8. 【机器学习基础】优化算法详解

    本文来源于吴恩达老师的深度学习课程[1]和深度学习课程[2]笔记部分. 作者:黄海广[3] 备注:笔记和作业(含数据.原始作业文件).视频都在 github[4]中下载. 导语 在学习机器学习的过程中 ...

  9. 深度学习笔记第二门课 改善深层神经网络 第二周:优化算法

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

最新文章

  1. 2017河北单招计算机试题,2017河北单招英语试题练习题
  2. 异常处理汇总 ~ 修正果带着你的Code飞奔吧!
  3. pytorch attention 注意力
  4. 光纤收发器的详细选择方法
  5. php移动端url,什么是PC和移动端URL路径规范化
  6. HTML animate()动画更改多个元素背景颜色但不同时生效问题
  7. Jser 设计模式系列之面向对象 - 接口封装与继承
  8. Linux中的特殊权限——粘滞位(Stickybit)
  9. 蓝桥杯题目——平方回文数
  10. Windows、Linux、Mac OS下的锐捷认证的程序——mentohust
  11. C语言 将大写字母转换为小写字母
  12. stimulsoft mysql_StimulSoft——将炫酷的报表写入你的应用程序
  13. linux入门学习1之FastQC
  14. 自己制作icon图标
  15. P2P: Tuning Pre-trained Image Models for Point Cloud Analysis with Point-to-Pixel Prompting
  16. 乐视再次被外媒质疑,消息称FF首款汽车将无法按时出货
  17. android service什么时候销毁,阳光沙滩-android 通过AppWidgetProvider 启动的Service会自动销毁问题...
  18. 百度通用翻译api在微信小程序中的使用
  19. ssh framework
  20. 走进独自开,带你轻松干副业

热门文章

  1. 代码整洁之道(一)最佳实践小结
  2. (转载)keras使用入门及3D卷积神经网络资源
  3. Web性能压力测试工具——Siege详解
  4. spring in action 7.1 小结
  5. 异常详细信息: System.ArgumentException: 不支持关键字: “metadata”。
  6. 基础:open和fopen的区别
  7. inner join
  8. InnoDB行格式(compact,redundant)对照
  9. Linux 启动mysql
  10. 纠结的Python2.7编码与os.walk()函数的目录参数