Adagrad其实是对学习率进行了一个约束。即:

$$nt=n{t-1}+g_t^2$$

$$\Delta{\thetat}=-\frac{\eta}{\sqrt{n_t+\epsilon}}*g_t$$ 此处,对$$g_t$$从1到t进行一个递推形成一个约束项regularizer:$$-\frac{1}{\sqrt{\sum{r=1}^t(g_r)^2+\epsilon}}$$,$$\epsilon$$ 用来保证分母非0

特点:

  • 前期$$g_t$$ 较小的时候, regularizer较大,能够放大梯度
  • 后期$$g_t$$ 较大的时候,regularizer较小,能够约束梯度
  • 适合处理稀疏梯度

缺点:

  • 由公式可以看出,仍依赖于人工设置一个全局学习率
  • $$\eta$$ 设置过大的话,会使regularizer过于敏感,对梯度的调节太大
  • 中后期,分母上梯度平方的累加将会越来越大,使$$gradient\to0$$,使得训练提前结束

results matching ""

    No results matching ""