AdaDelta算法

本文介绍了AdaDelta算法,一种解决AdaGrad学习率逐渐下降问题的优化算法。AdaDelta包括两个改进方法:Accumulate Over Window,通过指数衰减平均平方梯度来更新学习率;Correct Units with Hessian Approximation,利用二阶导数近似实现自动调整学习率。文章详细解析了这两个方法的更新公式,并提到 AdaDelta 虽然改善了学习率问题,但仍需要手动设置初始学习率。
摘要由CSDN通过智能技术生成

记录一下自己的学习过程~也能让自己的印象更深吧
AdaDelta算法主要是为了解决AdaGrad算法中存在的缺陷,下面先介绍一下AdaGrad算法优点和以及存在的问题:

AdaGrad的迭代公式如下所示:
Δ x t = η ∑ i = 1 t g i 2 ∗ g t \Delta{x_{t}}=\frac{\eta}{\sqrt{\sum_{i=1}^{t}{g_i^2}}}*g_t Δxt=i=1tgi2 ηgt
x t = x t − 1 − Δ x t x_t=x_{t-1}-\Delta{x_t} xt=xt1Δxt
其中 g t g_t gt表示当前迭代次数的梯度值。

  • 优点
    学习率将随着梯度的倒数增长,也就是说较大梯度具有较小的学习率,而较小的梯度具有较大的学习率,可以解决普通的sgd方法中学习率一直不变的问题
  • 缺点
    还是需要自己手动指定初始学习率,而且由于分母中对历史梯度一直累加,学习率将逐渐下降至0,并且如果初始梯度很大的话,会导致整个训练过程的学习率一直很小,从而导致学习时间变长。

而AdaDelta算法的提出就是为了解决上述的问题,AdaDelta有两种解决方案:

改进方法一:Accumulate Over Window

  • 在一个窗口w中对梯度进行求和,而不是对梯度一直累加
  • 因为存放 w 之前的梯度是低效的,所以可以用对先前所有梯度均值(使用RMS即均方根值实现)的一个指数衰减作为代替的实现方法。

更新公式如下:
① 将累计梯度信息从全部历史梯度变为当前时间向前的一个窗口期内的累积:
E [ g 2 ] t = ρ ∗ E [ g 2 ] t − 1 + ( 1 − ρ ) ∗ g t 2 E[g^2]_t=\rho*E[g^2]_{t-1}+(1-\rho)*g_t^2 E[g2]t=ρE[g2]t1+

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值