赞
踩
刘铁岩老师出的新书《分布式机器学习:算法、理论与实践》中摘录了一些笔记,总体来说这本书偏向综述,给出了大量的参考文献,可供后续进一步学习
收敛速度衡量:$E|| w_T - w^*||^2 \leq \epsilon(T)$
学术界针对随机梯度优化算法的改进方向:
分布式机器学习算法 | 每个worker优化 | 划分 | 通信 | 聚合 |
---|---|---|---|---|
同步SGD | SGD | 数据样本划分 | 同步通信 | 全部模型梯度加和 |
模型平均(MA) | 不限 | 数据样本划分 | 同步通信 | 全部模型加和 |
BMUF | SGD | 数据样本划分 | 同步通信 | 全部模型加和 |
ADMM | 不限 | 数据样本划分 | 同步通信 | 全部模型加和 |
弹性平均SGD(EASGD) | SGD | 数据样本划分 | 同步/异步通信 | 全部模型加和 |
异步SGD(ASGD) | SGD | 数据样本划分 | 异步通信 | 部分模型加和 |
Hogwild! | SGD | 数据样本划分 | 异步无锁通信 | 部分模型加和 |
AdaDelay | SGD | 数据样本划分 | 异步通信 | 部分模型加和 |
。。。 |
一些研究表明:
数据划分:
通过全局随机采样或者shuffle来进行划分时,前者问题是全局采样代价比较高,并且低频的数据难以被选择出来,后者问题是置乱切割,把全局数据shuffle之后分配到各个节点上,但是问题是乱序操作等价于或者接近于无放回的操作对很多机器学习理论中中的IDD假设不能满足。
数据划分还可以通过对维度的切分来划分,但是这时候适用的优化方法有限,例如坐标下降法,其余的由于不同维度之间计算的依赖,有非常大的通讯代价。
模型划分:
线性模型根据维度划分,深层神经网络划分考虑模型的逐层划分与纵向划分。
逐层划分的依赖关系接口清晰,但是并行度可能不够,因为一层的参数就超出了一个节点的容量了。跨层的纵向划分的依赖关系复杂,实现起来难度很大。
模型划分的随机划分手段:规模更小的骨架网络,骨架网络存在于每个工作节点,传输非骨架结构的参数,探索全局的结构。骨架网络的选取可以是周期性更新的,对全局拓扑结构的探索也是动态/随机的,大大减小模型并行的通信代价,对模型并行的效果有一定保证。
2019-02-17 16:06:54 回应
数据并行的框架下,通讯内容可以是子模型,或者非常重要的的样本(SVM中可以使用SV)。
模型并行就是中间的计算结果,可以用计算图和数据流来表示,传输量比较大可以考虑对信息进行压缩。
MapReduce通信的拓扑结构:
1.二分图的MapReduce的想法导致的问题是完全依赖硬盘IO逻辑导致的数据互访会使得效率很低。
2.中间状态不能维持,无法高效衔接。
迭代式MapReduce的结构:
1.完全依赖于内存的实现,不需要依赖IO接口(问题是这时候运算节点和逻辑存储节点没有很好的逻辑隔离,所以需要同步通信,Mapper运算步骤结束之后才能开Reuduce过程)
2.perisistent store中间的结果
3.MapReduce的使用范围并不是很大
通过Parameter Server的星型拓扑结构:
1.逻辑隔离的实现,更加灵活地支持不同的通讯模式,不需要时刻保持同步
2.多个参数服务器存储较大的结构,访问一部分参数的时候能够进一步优化
通过局部连接的拓扑结构(之和少数邻居进行信息的交互):
1.去中心化,减少了瓶颈,不需要考虑全局通信的高昂代价
2019-02-17 18:34:04 1人喜欢 回应
1.同步
早期盛行是由于MapReduce并且同步的方式在逻辑上清晰明了,但是有短板效应和系统宕机的时候
2.异步
有锁:保证写入的完整性,但是影响了吞吐量
无锁:不能保证全局的完整性
步调差异会导致的问题,会导致更新较慢的节点对全局模型的收敛造成问题。
算法:异步SGD HogWild!Cyclades 对延迟不敏感:AdaptiveRevision AdaDelay 补偿延迟:延迟补偿的异步SGD
混合的方法:
SSP,设置一个最快的阈值,最快的节点的超过阈值就要等大。在延迟不太大的时候可以考虑。
或者分组,根据快慢分等级,组内同步,组间异步通讯。
2019-02-17 20:53:14 回应
通信的频率是一个大问题
1.通信频繁对模型收敛的效果有保障,但是代价很大。
是处理完mini-batch之后开始通信还是全部本地数据处理完之后通信?通信的收发频率是否需要一致?不同的频率对模型的收敛是否有影响?想要基于计算速度,带宽,数据大小,模型大小,计算出一个最优的通信频率,从而取得计算代价和通信代价的最优匹配。
不降低通讯频率想要减小带宽——空域滤波(压缩模型,降低模型精度或者低秩处理或者随机丢弃)
2019-02-17 21:01:22 回应
聚合的问题
1.简单平均
2.寻求一个一致的优化问题的解:ADMM或者BMUF
凸问题的保证,但是非凸的时候,局部凸函数使得聚合结果劣于局部的。
3.模型集成
通过保留参数来提高精度,但是会模型爆炸。
另外一个问题是是都选择接受所有的局部模型,抛弃速度较慢的是一个选择(带有备份工作节点的SGD以及异步ADMM)
PS给出的全局模型是否全部信任与接受(弹性SGD)
2019-02-17 21:14:51 回应
机器学习分布式理论的问题:
收敛性:不同方法的收敛速度和性质,每个模块对整体的收敛速度产生怎么样的影响,按照优化目标,本地优化算法,并行模式,通信和聚合方式进行归纳
加速比:除了与算法的收敛速度有关,还受通信-计算的时间比的影响。还有要实现收敛我们需要的最小通信量也是可以研究的方向。
泛化性质
2019-02-17 21:41:01 回应
1.平台灵活角度:MapReduce最低,需要遵循执行流程,PS最高,数据流由于DAG的形式居中
2.算法效率:同步逻辑的MapReduce最差,后两者因为异步较好
3.处理的任务:Spark MLlib浅层模型,TF提供了很多算子与优化器
2019-02-17 21:46:09 回应
常见的非随机优化算法罗列。
2019-02-18 15:26:59 回应
1.计算并行模式:所有工作节点共享一块内存,对数据有完全的访问权限。
2.数据并行模式:数据样本划分的全局有放回随机抽样或者置乱划分基于维度
3.模型并行模式:线性模型对应不同数据维度的模型参数划分到不同的工作节点上,只需要全局信息和自己参数的信息,就能运算
emmmmm内容与前面重复了
2019-02-18 21:54:46 1人喜欢 回应
对模型参数更新进行通信,往往有利于提高分布式机器学习的效率,因为在很多机器学习任务中,参数以及参数的更新任务往往是稀疏的。同时随着模型趋于收敛,参数的更新也会越来越小,另外可以使用量化或者过滤的方法进一步减少通信数据量。
节点的特性运用到机器学习里面的决策能力与泛化能力感觉可以用传统机器学习的大套路套进来
2019-02-19 23:20:10 回应
MPI特点是同步吗?把通讯抽象成图的边不合理,通讯的体量和计算的体量差别大小
暑假看的07年的通信拓扑的总结性理论paper要标星星了
2019-02-19 23:32:48 1人喜欢 回应
总结一下现在各大的使用到了的MPI模式的框架
Caffe2中的gloo通信库实现了自定制的AllReuce功能,百度的DeepSpeech系统采用了环状的AllReduce功能,Nvidia提供的集合通讯库NCCL中有AllReduce的原语
2019-02-19 23:38:27 回应
因为IMR和MPI同步通信中的短板效应
worker对server的访问有push与pull 非常灵活
CMU的Parameter Server和Petuum谷歌的DistBelief和微软的DMTK/Multiverso
2019-02-20 00:35:07 回应
并不把边设置成通讯而是数据依赖的表示很不错
这种通信拓扑是基于DAG。出现在图中的工作节点不仅包含计算本身,而是一个融合了解包,计算,打包,通信控制等多个功能的逻辑单元,这样各个工作节点才可以相互配合和衔接,从而合作完成整体的运算任务。每个节点需要两个通信通道:控制消息流和计算数据流。
2019-02-20 01:11:33 回应
同步SGD类
同步SGD相当于一个批量大小增大K倍的minibatch,批量增加K倍后,算法的收敛速度满了K开方,吞吐增加了K倍,所以增加了K倍的速度。但是这并没有包括通讯。
如果每个小批量训练的计算量很大,而模型规模又不大(CNN),通信开销可以忽略。反之,无法忽略。
通过前一章节的内容,可以实现提速。
关于精度的分析,参考SGD的minibatch size选择的论文
1.增大size导致方差变小,减少了跳出了局部最优的可能。实现了尖锐的局部最优,但是更加精确,所以可以增加学习率,逐步增大学习率。
2.减小,会导致收敛到平坦的局部最优,平坦区域泛化能力更强
3.
2019-02-20 23:01:14 回应
根据通信间隔的不同可以分成最终进行模型交换平均,中间多步以应对非凸问题
2019-02-20 23:06:37 回应
MA往往比较稳定,所以调高学习率。
在单机模型做SGD更新的时候,常常会加入冲量以有效地利用历史更新信息来减小随机梯度下降中的梯度噪音的影响。那么类似的,我们也可以考虑在MA中对每次全局变量的更新采用冲量的该概念。Block-wise Model Update Filtering,使得历史上小批量迭代对全局模型更新的影响有一定的延续性,也能够达到加速模型优化进程的作用。
2019-02-20 23:55:00 回应
ADMM引入一个辅助变量z来控制各个工作节点上模型的差异,使他们都比较接近。
每次计算复杂,实际收敛速度并不快,但是通信代价小,并行效率很高。
MA与ADMM,前者没有全局一致的拉格朗日正则项,因此,从本地优化的角度来看MA更加直接,计算量也更小泛化能力来看ADMM中的正则项使得模型聚合之后不容易出现过拟合。
2019-02-21 00:17:58 回应
2017
Convergence Analysis of Distributed Stochastic Gradient Descent with Shuffling
https://arxiv.org/pdf/1709.10432.pdf
引用次数
0 240 120 60 180 2016201720182019 关注
Qi Meng Microsoft Research Asia 在 microsoft.com 的电子邮件经过验证
文章 1–14 展开 |
Frank-Wolfe方法将线性约束最优化问题转化为一系列线性规划问题和一维搜索问题求解。可以证明,当f具有连续一阶偏导数,且可行域S有界,Frank-Wolfe方法是收敛的。
strong-convex 情形中的条件数和convex 情形中的光滑系数在一定程度上刻画了优化问题的难易程度;
可以证明:对strong -convex 并且光滑的目标函数,循环坐标耻降法具有线性和收敛速率[3];
对偶方法:
当原始问题的变量维度很高,但是约束条件个数不多时,对偶问题的复杂度(对偶变量的维度对应于约束条件的个数)会远小于原始问题的复杂度,因而更容易求解(这也是SVM方法高效的主要原因);
对于带有线性约束的convex 优化问题,对偶坐标上升法被证明至少具有线性收敛速率[46]。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。