分布式机器学习二

异步算法

MapReduce是不能实现异步算法的。异步算法比同步算法需要更多的迭代次数,但异步算法避免了同步造成的时间浪费,所示实际上异步更快一些。

server可以是多个

异步算法可以收敛

异步不需要等待,计算完成后立刻和server通信,然后立刻开始下一轮计算。

绿色部分都是通信,每次通信server都会更新参数,到t1时刻server端参数都更新8次了,三号计算出的梯度基于t0时刻计算出的,已经过时了,没用了。若server用work3的梯度来更新参数,只会让参数变得更差,所以异步算法要求work比较稳定。联邦学习就存在这种问题,work都是手机之类的设备,不稳定,所以异步不适用联邦学习。

前两两种并行梯度下降实现,一种同步用MapReduce实现,一种异步用Parameter Server实现,这两者相同点都是client, server架构,他们都有一个server来协调work的计算。

这种网络是去中心化的网络,叫Peer to Peer,点对点,这种架构没有server,所有节点都是work.

每个节点的w_i不太一样,直到最后他们才能收敛到同一个地方去。每个节点重复这四个步骤,第三步的加权平均保证了所有节点可以收敛到同一个地方。

去中心化的梯度下降,随机梯度下降,都是可以收敛的,最近几年不少论文做这方面的证明。可以看看2017年这篇文章和它的引用,以及在谷歌学术上引用它的文章。

图的连接越紧密,算法收敛越快,比如完全图,算法收敛非常快,图不是强连接,即图可以拆成两部分,则算法不会收敛。

一台机器可以多插处理器,但无法插太多,所以要用多个节点。

通信是重中之重,研究并行计算的人最关心的就是怎样通信,通信代价由多大。两种通信:共享内存、信息传递。

MapReduce用来做数据处理很好,但用来做机器学习效率并不高。异步的效率更高,更适合机器学习,现在并行训练,神经网络都是在用Parameter Server。Decentralized可以同步也可以异步,但现在理论分析基本都是同步的。去中心化的还不是太流行(不受server限制),但受到关注越来越多。

并行计算和分布式计算界限比较模糊,机器学习的人比较喜欢分布式计算这个词,只要数据或模型被划分到多个节点上,这几个节点用message passing通信,机器学习的人就认为是分布式计算了。

------------------------------

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhiaoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值