2023-分布式学习记录2

一、数据划分

就数据划分而言,一般有两个维度,一个是对训练样本进行划分,另一个是对每个特征的维度进行划分;

训练样本的划分一般有两种方式:1)第一种是基于随机采样的方法,即有放回的随机采样(有放回才能等价于采样的数据和整体是独立同分布的),对每一个worker采样足够的训练数据;2)第二种是基于置乱切分的方式,先对所有数据shuffle,再按照工作节点的个数,将打乱后的数据顺序分给每个worker;相比第一种,这种方式实际操作更方便,有研究证明这种方式的采样等价于有放回的采样,不能满足采样样本和整体数据满足独立同分布的假设;

二、模型划分

模型划分通常有三种方式:

1)横向划分,即每一个layer划分到一个worker;

2)纵向划分,即按照模型的维度进行划分;

3)随机划分。

三、通信模块

分布式算法涉及信息共享,所以需要各个worker之间的通信;

当我们说道通信的时候,一般指的是通信的内容(即需要传输的数据)、通信的拓扑结构(基于mapreduce结构的、基于ps结构的还是基于数据流的)、通信的步调(同步通信、还是异步通信还是混合通信)、通信的频率(时间频率和空间频率)。每个模块的具体内容后面会详细介绍。

数据和模型聚合模块

无论哪种通信方式,总会涉及到如何将不同worker的计算结果进行聚合的工程。具体来说一般会划分成基于模型加和的聚合、基于模型集成的聚合。

四、单机优化算法

单机优化算法本不属于分布式的范畴,但是只有对单机优化算法良好的掌握,才能更好的理解分布式的优化算法。

1)针对高纬非凸优化的问题,很多研究已经证明局部极小值即为全局最优点;所以,好的优化算法主要是研究如何逃离鞍点,主要的解决方式是扰动梯度下降算法、以及使用二阶梯度进行判断。

2)优化算法的效率不仅与单次迭代的计算量有关,还与算法的收敛速率有关。凸优化问题一般是能通过lips散度分析其确定的收敛速率。

3)由于神经网络是高度非凸函数,像二阶优化算法、对偶优化算法都不太适合,针对神经网络的优化,ada系列算法是目前实践效果最好的。包括adagrad、RMSProp、AdaDelta、Adam。

posted @ 2023-02-27 01:34  kuaiquxie  阅读(7)  评论(0编辑  收藏  举报