Gossip training for deep learning

Gossip training for deep learning

https://arxiv.org/pdf/1611.09726.pdf

Abstract

我们解决了加速卷积网络培训的问题。 在这里我们研究一种适用于随机梯度下降(SGD)的分布式方法。并行优化设置使用多个线程,每个线程在局部变量上应用单独的梯度下降。 我们提出了一种新的方式来分享由gossip 算法启发的不同线程之间的信息,并显示出良好的一致收敛属性。我们称为GoSGD的方法具有完全异步和分散的优点。 我们将我们的方法与[17]中关于CIFAR-10的近期EASGD进行了比较,结果令人鼓舞。

Introduction

随着深度卷积神经网络(CNN)由[8]和[13]介绍,计算机视觉任务,更具体地说,图像分类已经取得了巨大的改善,最近几年[12]。 CNN的性能可以从诸如[15]或[14]等注释图像的大型数据库中受益。 通过随机小批量计算梯度下降来优化损失函数,从而对它们进行训练。这种称为随机梯度下降[SGD]的方法已被证明对于训练神经网络是非常有效的。
然而,目前的CNN结构像[9]的200层网络ResNet一样非常深,并且包含大量参数(alexnet [12]大约60M),使得对大数据集的训练非常缓慢。 GPU上的计算加速了培训,但仍然很难测试许多架构。
尽管如此,小批量优化似乎适用于分发培训。 已经提出了许多方法,如[17]或[6]。 他们在不同的线程上并行处理SGD以优化局部神经网络。 不同的线程称为工作者。 此外,工作人员定期与中央网络交换信息。 这个中心变量的作用对于分享传播信息至关重要,并确保所有工作人员网络都趋于相同的本地最小值。 事实上,由于[3]中很好研究的神经网络的对称性,不同的工作人员可以给出非常不同的优化。 达成共识对于从并行性和信息共享中充分受益非常重要。 不幸的是,所提出的方法不是分散式的,导致同步中央网络更新的时间浪费。 这可能导致分布式计算的次优使用。
分散式分布式算法的一个众所周知的例子是八卦平均。 正如文献[1]所研究的,这种方法通过以对等方式交换信息来使不同的代理商趋于一致达到非常快的速度。 八卦平均已经适用于其他机器学习算法,如核心方法[4]或PCA [7]。 该算法家族具有很多优点,如完全异步和完全分散,因为它们不需要中央变量。 我们在此建议将此方法与SGD联系起来,以便将其应用于深度学习,更具体地说是CNN。 我们将所得到的优化方法称为GoSGD for Gossip Stochastic Gradient Descent。
第一部分介绍了GoSGD算法。 然后一些实验说明了分散式GoSGD的良好收敛性。

Gossip Stochastic Gradient Descent

全是数学公式,不弄了

GoSGD algorithm

GoSGD算法考虑称为工人的M个独立代理。他们每个人都拥有同一架构的CNN,并为工作人员i指定了一组权重Xi。它们都以相同的值初始化。在培训期间,所有工作人员反复进行下述两个步骤。 一种是梯度下降的局部优化,另一种是交换信息以确保工人之间的一致:
步骤1:这一块讲的是梯度下降的过程,其实可以好好看看。
步骤2:在梯度下降之后,每个工人绘制一个随机的伯努利变量,记为S,预期值为p。这个变量决定了工作人员是否与其他工作人员共享信息,这些工作人员将在其他工作人员中统一选择。为了在更新过程之间共享信息,我们使用sum-weight gossip协议[10]。总和权重协议使用与每个工作人员相关的共享变量(对于代理人i标记为αi并初始化为1 / M),每当交换信息并且定义信息混合的比率时更新该变量。由于其唯一的性质,工人之间不需要同步。在算法2中描述了成功的S和工作者j之间的交换。
在每次迭代中,工人最多一次发送其权重,但可以接收来自其他几个人的权重。 在这种情况下,工作人员在执行任何梯度更新之前,先按接收顺序更新其权重。 由于代理程序i可以在不等待来自j的答案的情况下执行更新,并且j以延迟的方式执行其更新,所以代理程序永远不会闲置,并且始终正在使用所有计算资源(执行梯度更新或混合更新)。
注意这些更新规则相当于常见的总和权重八卦规则,主要区别在于我们选择不对xi进行缩放,这会导致更复杂的xj更新规则。 因此,总和协议的几个关键特性得以保留:见论文:property 1和property 2(当不存在梯度更新时,相对于混合更新的数量以指数速度获得共识。)
备注:p是算法的唯一可调参数。 显然,越大的线程间交换越多,最终工人的权重越接近。 在我们的实验中,0.01的低p值已经确保了非常好的共识。

Test model

在测试集上评估的模型称为测试模型。 在GoSGD方法中,它仅仅是所有工人模型权重的平均值:见论文。后面还有些内容值得一看

Experiments

我们比较GoSGD(八卦)和EASGD(弹性)的收敛速度。 EASGD的版本是动量(= 0.99)的版本,即作者建议的参数α= 0.887的MEASGD。 参数τ相当于我们参数p的倒数,并控制一名工人的交换频率。 这些实验已经在CIFAR-10上完成,详细介绍请参见[11]。 该网络与[17]中使用的相同,并且在[16]中用对数损失来描述。
对于数据采样(加载和扩充),我们使用与[17]中相同的协议。 在训练过程中,学习率恒定为0.01,体重衰减到10-4。 所有批次都包含128个图像。 我们使用八名工人。 唯一可调节的参数是控制交换频率的概率p。 我们在torch框架[5]中实现了这两种方法,并且我们使用了4个Titan x GPU。
我们报告图1不同方法训练损失的演变。 作为基准,我们展示了一种与工人之间没有任何交流的培训相对应的“天真”计划。 描述的培训损失是对最后50批次的培训损失的平均值,无论工人如何。
图1左侧的第一条曲线显示了每个工作人员处理的图像数量的损失。 为了清楚起见,我们放大了收敛的结束。 为了研究交换信息而不管通信时间的好处,我们通过将p设置为1来最大化交换次数。我们可以看到GoSGD比EASGD更好地使用交换。 它可以表明,八卦战略意味着在训练期间达成更好的共识。
第二幅图表示损失与时间的时间演变。 我们使用小的p(0.02),因为它似乎在通信成本和GoSGD和EASGD的共识之间做出了很好的折中。 我们可以看到GoSGD比EASGD快很多。 当EASGD需要7个多小时才能达到相同的训练损失评分时,我们的策略在大约4个小时内就会收敛。 这表明分布式SGD可以从异步策略中获益很多。

Discussion

在本文中,我们为基于Gossip的深层体系结构引入了一个名为GoSGD的新学习方案。 我们通过实验验证了我们的方法。 与其他方法相比,我们的算法具有几个优点。 首先,它是完全异步和分散的,避免了所有类型的空闲,然后交换是成对的,并且更快的通信信道CPI的好处。 其次,讨论的理论方面很有趣:可以为许多八卦算法推导出一致的收敛速度。 将这项研究扩展到GoSGD以便衡量八卦平均对附加梯度的敏感性可能是有用的。 这将提供一些见解来优化交换频率并尽可能控制交换频率,而不会影响线程之间的共识。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值