[解读] Why Adam Beats SGD for Attention Models

探讨了Adam优化器相较于SGD的优势,并提出了一种新的自适应梯度裁剪算法ACClip,该算法能有效解决梯度噪声问题,进一步提升模型优化效率。

链接: https://arxiv.org/abs/1912.03194v1

本文解释了为什么 Adam 优化方法比 SGD 要更有效, 简单说是因为 SGD 中的梯度范数的偏差太大导致的, 也就是说梯度向量的范数或者某些分量过大. 基于这个分析提出一个新的梯度裁剪方法, 效果比 Adam 还要好.

相关的工作

随机梯度下降 (SGD) 是用于训练神经网络的规范算法 (Robbins & Monro, 1951). 然而 SGD 算法存在的很多缺点, 例如容易产生病态曲率问题. Adam (Kingma & Ba, 2014) 是一种自适应算法, 目前非常常用, 在许多重要的机器学习任务中表现非常好.

本文的改进

假设一个模型为
f ( x ) = E ξ [ f ( x , ξ ) ] f(x)=\mathbb{E}_{\xi}[f(x, \xi)] f(x)=Eξ[f(x,ξ)]
其中 f f f 可以看成一个神经网络的损失函数, x x x 是网络权重, ξ \xi ξ 是样本, 目标是通过调整网络权重 x x x 来使得期望误差最小. 注意到 f ( x ) f(x) f(x) 很有可能是一个非凸的函数. 更多理论分析部分请参考原文.

由于梯度的某个分量可能非常大, 这对优化产生不利的影响, 一个常用的方法是梯度裁剪, 它通用的框架如下:

在这里插入图片描述

其中 g k g_k gk 代表当前迭代中权重的梯度, 总共迭代次数为 T T T , m k m_k mk 为加权后的梯度. 关于第四行梯度裁剪, 自然地有两个方案, 分别是对梯度的范数进行裁剪 (Global CLIPping, GClip) 和按照梯度分量进行裁剪 (Coordinate-wise CLIPping, CClip), 二者的具体定义如下:
GClip ⁡ ( τ k , m k ) = min ⁡ { τ k ∥ m k ∥ , 1 } m k ,  for  τ k ∈ R ≥ 0  or  CClip ⁡ ( τ k , m k ) = min ⁡ { τ k ∣ m k ∣ , 1 } m k ,  for  τ k ∈ R ≥ 0 d . \begin{aligned} &\operatorname{GClip}\left(\tau_{k}, m_{k}\right)=\min \left\{\frac{\tau_{k}}{\left\|m_{k}\right\|}, 1\right\} m_{k}, \text { for } \tau_{k} \in \mathbb{R}_{\geq 0} \text { or }\\ &\operatorname{CClip}\left(\tau_{k}, m_{k}\right)=\min \left\{\frac{\tau_{k}}{\left|m_{k}\right|}, 1\right\} m_{k}, \text { for } \tau_{k} \in \mathbb{R}_{\geq 0}^{d}. \end{aligned}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值