mlx.optimizers.AdaDelta

目录

mlx.optimizers.AdaDelta#

class AdaDelta(learning_rate: float | Callable[[array], array], rho: float = 0.9, eps: float = 1e-06)#

具有学习率的 AdaDelta 优化器 [1]。

我们的 AdaDelta 实现遵循原始论文。具体来说,

[1]: Zeiler, M.D., 2012. ADADELTA: 一种自适应学习率方法。arXiv 预印本 arXiv:1212.5701。

\[\begin{split}v_{t+1} &= \rho v_t + (1 - \rho) g_t^2 \\ \Delta w_{t+1} &= \frac{\sqrt{u_t + \epsilon}}{\sqrt{v_{t+1} + \epsilon}} g_t \\ u_{t+1} &= \rho u_t + (1 - \rho) \Delta w_{t+1}^2 \\ w_{t+1} &= w_t - \lambda \Delta w_{t+1}\end{split}\]
参数:
  • learning_rate (floatcallable) – 学习率 \(\lambda\)

  • rho (float, 可选) – 用于计算平方梯度移动平均的系数 \(\rho\)。默认值: 0.9

  • eps (float, 可选) – 添加到分母中以提高数值稳定性的项 \(\epsilon\)。默认值: 1e-8

方法

__init__(learning_rate[, rho, eps])

apply_single(gradient, parameter, state)

执行 AdaDelta 参数更新并将 \(v\)\(u\) 存储在优化器状态中。

init_single(parameter, state)

初始化优化器状态