每天3分钟,彻底弄懂神经网络的优化器(七)AdaDelta
AdaDelta算法是由Matthew D. Zeiler在2012年提出的。这一算法的详细描述和原理可以在论文《ADADELTA: An Adaptive Learning Rate Method》1中找到。AdaDelta算法旨在解决AdaGrad算法中学习率单调递减的问题,通过限制累积梯度的窗口大小来调整学习率,使得算法在训练过程中能够自适应地调整每个参数的学习率,而不需要手动设置。这种方法对噪声梯度信息、不同的模型结构、各种数据模式以及超参数选择都表现出了较强的鲁棒性。
Adadelta(AdaDelta)是一种自适应学习率的优化算法,它解决了Adagrad算法中学习率递减导致的问题。Adadelta算法通过限制累积梯度的窗口大小,并且不需要设置全局学习率,因为它会根据之前的参数更新量来自适应地调整学习率。
Adadelta的更新规则如下:
s
和累积更新量的指数加权平均变量 delta
。g
。s
:
$s = \rho \cdot s + (1 - \rho) \cdot g^2$delta_p
:
$\delta_p = -\frac{\sqrt{\delta + \epsilon}}{\sqrt{s + \epsilon}} \cdot g$w
:
$w = w + \delta_p$delta
:
$\delta = \rho \cdot \delta + (1 - \rho) \cdot \delta_p^2$其中,ρ
是用于计算平方梯度的指数加权平均的系数(通常设为0.9),ε
是一个很小的数(如 1e-6
),用于增加数值计算的稳定性。
Adadelta算法的优点包括:
缺点可能包括:
ρ
和 ε
敏感。[1] ADADELTA: An Adaptive Learning Rate Method
仓库上有原始的Markdown文件,完全开源,欢迎大家Star和Fork!