TernGrad: Ternary Gradients to Reduce Communication in Distributed Deep Learning 论文阅读

问题描述及算法

考虑下图所示的分布式机器学习架构.
在这里插入图片描述
我们用 t t t表示迭代训练的次数, N N N代表节点的数量,工作节点 i i i计算得到的梯度向量为 g t ( i ) \mathbf{g}^{(i)}_t gt(i),输入的样本为 z t ( i ) \mathbf{z}^{(i)}_t zt(i).
为了能够进一步实现压缩,在训练过程中中央服务器并不保存模型,每个工作节点都保存一个模型副本,计算得到梯度后由中央服务器进行聚合,将得到的梯度也进行量化后发送到每个工作节点,由工作节点本地进行模型更新.
工作节点在进行梯度上传的时候对梯度向量进行量化,将其量化为一个三元向量(向量中每个元素的值为1或-1或0),其量化的具体公式为:
在这里插入图片描述
其中向量 b t \mathbf{b}_t bt的计算公式为:
在这里插入图片描述
考虑到每个工作节点计算出来的值 s t s_t st都是不同的,因此当在服务端进行聚合后可能并不能实现很好的压缩传输,因此我们进行参数共享
在这里插入图片描述
通过这样处理后,在服务端聚合后的梯度向量中最多只有 2 N + 1 2N+1 2N+1个值,因此每个梯度可以量化为 l o g   ( 2 N + 1 ) log\ (2N+1) log (2N+1).具体算法过程如下所示
在这里插入图片描述
为了分析该量化算法的收敛性,我们使用在线学习系统框架,定义 Q ( z , w ) Q(z,w) Q(z,w)为损失函数,其中的 w w w为模型参数, z z z为接受到的样本.在广义在线梯度算法中,梯度的更新过程为
在这里插入图片描述
经过量化压缩后,更新梯度的过程修改为:
在这里插入图片描述
我们的量化过程是无偏的,即:
在这里插入图片描述
为了分析该量化算法的收敛性,我们首先介绍在基本梯度更新过程中的收敛性证明.
在这里插入图片描述
同时定义当前计算得到的参数与最优参数的距离
在这里插入图片描述
除了以上两个假设外,在线学习算法还假设了梯度平方期望值的上界,即:
E { ∣ ∣ g ∣ ∣ 2 } ≤ A + B ∣ ∣ w − w ∗ ∣ ∣ \mathbf{E}\{||\mathbf{g}||^2\}\le A+B||w-w^*|| E{g2}A+Bww
由已有的关于在线学习算法的介绍中可以得到以下定理:
在这里插入图片描述
以上是在线学习算法收敛性的相关定理和假设,接下来利用这些来分析量化算法的收敛性,由于我们对梯度做了量化,因此除了上述的假设1和2外,我们对梯度的平方的上限做了更强的假设,即
在这里插入图片描述
根据 h t h_t ht的定义和量化后梯度的更新过程,我们可以得到
在这里插入图片描述
对上式进行期望值求解,即
在这里插入图片描述
由于我们已经介绍过了量化算法是无偏的,所以上式可以修改为
在这里插入图片描述
根据之前对于向量 b \mathbf{b} b的定义,可以得到 ∑ k E { b t k 2 } = ∣ ∣ g ∣ ∣ 1 s t \sum_k \textbf{E}\{b_{tk}^2\}=\frac{||\mathbf{g}||_1}{s_t} kE{btk2}=stg1,因此上式可以修改为
在这里插入图片描述
因此得到了关于定理1的不等式
在这里插入图片描述
故该量化算法会收敛.

在量化算法的收敛证明中,由于
在这里插入图片描述
因此我们的假设3的假设性更强,为了解决这个问题,我们提出了分层量化和梯度裁剪的方法.
分层量化是每一层网络的梯度范围都不同,因此不采取全部参数的最大值,而是对每一层的参数都利用公式1进行量化.
梯度裁剪则是对梯度的最大值进行限制
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值