ASGD-异步随机梯度下降
(论文:一种 Yarn 框架下的异步双随机梯度下降算法)
论文中对原有的ASGD进行了改进,减少了在并行系统中无效通信的次数,提高了通信效率,减小了通信开销。
随机梯度下降在模型迭代过程中利用随机选取的某个训练样本去计算梯度并完成模型参数更新,具有计算量小、收敛速度快以及模型效果好。
但难以直接实现并行环,采用并行化技术,算法执行效率不高。
异步随机梯度下降(ASGD)
将模型参数迭代更新过程分割成三个原子操作:模型参数读取、模型参数更新、梯度计算,利用梯度延迟实现在在多核系统和分布式系统中并行。
在多核系统中,异步随机梯度下降算法利用多线程和共享内存技术加以实现;在分布式集群环境中,利用Master/Slave架构设计和消息通信技术进行实现。
ADSGD双随机梯度下降
为解决Master和Slave通信冲突问题,ADSGD引入随机因子;采用双随机策略从将训练子集生成样本批量。
样本批量的大小与学习率存在正相关,即样本批量大时,学习率也可以适当增大,ADSGD算法按照进行模型参数更新。加入随机数是因为梯度计算的训练样本批量大小不同。
训练样本批量大小