摘要
随着深度学习快速发展,目前普遍使用大数据训练庞大神经网络。因为效率高,ASGD广泛使用,但是有梯度延迟的缺陷。这是因为当一个本地worker将梯度push到全局模型中时,可能这个全局模型已经被其他worker将梯度更新过了,这样本地worker push的梯度就是延迟的。因此本文提出补偿延迟的一个新技术,为了使ASGD更接近于SGD的优化效果。这是利用梯度函数的泰勒展开来有效逼近损耗函数的Hessian矩阵来实现的。通过在cifar和imagenet数据集上验证,实验结果显示,DC-ASGD性能优于同步SGD和异步SGD,几乎接近序列SGD的性能。
算法引入
本章节介绍dnn和其对应的通过ASGD进行并行训练。
给定一个多分类问题,X是输入空间,Y是输出空间,P是X,Y的联合分布。d代表X输入空间的维度,K指代输出空间的类别数。
根据分布P采样得到训练集{(x1,y1),…(xs,ys)},目标是通过训练集学习神经网络的参数w。具体来说,神经网络模型具有分层结构,其中每个节点在下层的连接节点上进行线性组合和非线性激活。参数是两层网络之间边上的权重。最后通过最小化经验损失函数得到参数。
当一个本地worker将梯度push到全局模型中时,可能这个全局模型已经被其他worker将梯度更新过了,这样本地worker push的梯度就是延迟的。如下图: