Hil_C对《分布式机器学习:算法、理论与实践》的笔记(18)

分布式机器学习:算法、理论与实践
  • 书名: 分布式机器学习:算法、理论与实践
  • 作者: 刘铁岩/陈薇/王太峰/高飞
  • 页数: 276
  • 出版社: 机械工业出版社
  • 出版年: 2018-10-20
  • 第43页 分布式机器学习框架

    数据划分:

    通过全局随机采样或者shuffle来进行划分时,前者问题是全局采样代价比较高,并且低频的数据难以被选择出来,后者问题是置乱切割,把全局数据shuffle之后分配到各个节点上,但是问题是乱序操作等价于或者接近于无放回的操作对很多机器学习理论中中的IDD假设不能满足。

    数据划分还可以通过对维度的切分来划分,但是这时候适用的优化方法有限,例如坐标下降法,其余的由于不同维度之间计算的依赖,有非常大的通讯代价。

    模型划分:

    线性模型根据维度划分,深层神经网络划分考虑模型的逐层划分与纵向划分。

    逐层划分的依赖关系接口清晰,但是并行度可能不够,因为一层的参数就超出了一个节点的容量了。跨层的纵向划分的依赖关系复杂,实现起来难度很大。

    模型划分的随机划分手段:规模更小的骨架网络,骨架网络存在于每个工作节点,传输非骨架结构的参数,探索全局的结构。骨架网络的选取可以是周期性更新的,对全局拓扑结构的探索也是动态/随机的,大大减小模型并行的通信代价,对模型并行的效果有一定保证。
    引自 分布式机器学习框架

    2019-02-17 16:06:54 回应
  • 第47页 分布式机器学习框架

    数据并行的框架下,通讯内容可以是子模型,或者非常重要的的样本(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人喜欢 回应
  • 第49页 分布式机器学习框架

    1.同步

    早期盛行是由于MapReduce并且同步的方式在逻辑上清晰明了,但是有短板效应和系统宕机的时候

    2.异步

    有锁:保证写入的完整性,但是影响了吞吐量

    无锁:不能保证全局的完整性

    步调差异会导致的问题,会导致更新较慢的节点对全局模型的收敛造成问题。

    算法:异步SGD HogWild! Cyclades 对延迟不敏感:AdaptiveRevision AdaDelay 补偿延迟:延迟补偿的异步SGD

    混合的方法:

    SSP,设置一个最快的阈值,最快的节点的超过阈值就要等大。在延迟不太大的时候可以考虑。

    或者分组,根据快慢分等级,组内同步,组间异步通讯。

    2019-02-17 20:53:14 回应
  • 第51页 分布式机器学习框架

    通信的频率是一个大问题

    1.通信频繁对模型收敛的效果有保障,但是代价很大。

    是处理完mini-batch之后开始通信还是全部本地数据处理完之后通信?通信的收发频率是否需要一致?不同的频率对模型的收敛是否有影响?想要基于计算速度,带宽,数据大小,模型大小,计算出一个最优的通信频率,从而取得计算代价和通信代价的最优匹配。
    引自 分布式机器学习框架

    不降低通讯频率想要减小带宽——空域滤波(压缩模型,降低模型精度或者低秩处理或者随机丢弃)

    2019-02-17 21:01:22 回应
  • 第52页 分布式机器学习框架

    聚合的问题

    1.简单平均

    2.寻求一个一致的优化问题的解:ADMM或者BMUF

    凸问题的保证,但是非凸的时候,局部凸函数使得聚合结果劣于局部的。

    3.模型集成

    通过保留参数来提高精度,但是会模型爆炸。

    另外一个问题是是都选择接受所有的局部模型,抛弃速度较慢的是一个选择(带有备份工作节点的SGD以及异步ADMM)

    PS给出的全局模型是否全部信任与接受(弹性SGD)

    2019-02-17 21:14:51 回应
  • 第53页 分布式机器学习框架

    机器学习分布式理论的问题:

    收敛性:不同方法的收敛速度和性质,每个模块对整体的收敛速度产生怎么样的影响,按照优化目标,本地优化算法,并行模式,通信和聚合方式进行归纳
    引自 分布式机器学习框架
    加速比:除了与算法的收敛速度有关,还受通信-计算的时间比的影响。还有要实现收敛我们需要的最小通信量也是可以研究的方向。
    引自 分布式机器学习框架
    泛化性质
    引自 分布式机器学习框架
    2019-02-17 21:41:01 回应
  • 第54页 分布式机器学习框架

    1.平台灵活角度:MapReduce最低,需要遵循执行流程,PS最高,数据流由于DAG的形式居中

    2.算法效率:同步逻辑的MapReduce最差,后两者因为异步较好

    3.处理的任务:Spark MLlib浅层模型,TF提供了很多算子与优化器

    2019-02-17 21:46:09 回应
  • 单机优化之确定性算法

    常见的非随机优化算法罗列。

    2019-02-18 15:26:59 回应
  • 第108页 数据与模型并行

    1.计算并行模式:所有工作节点共享一块内存,对数据有完全的访问权限。

    2.数据并行模式:数据样本划分的全局有放回随机抽样或者置乱划分基于维度

    3.模型并行模式:线性模型对应不同数据维度的模型参数划分到不同的工作节点上,只需要全局信息和自己参数的信息,就能运算

    emmmmm内容与前面重复了

    2019-02-18 21:54:46 1人喜欢 回应
  • 第133页 通信内容
    对模型参数更新进行通信,往往有利于提高分布式机器学习的效率,因为在很多机器学习任务中,参数以及参数的更新任务往往是稀疏的。同时随着模型趋于收敛,参数的更新也会越来越小,另外可以使用量化或者过滤的方法进一步减少通信数据量。
    引自 通信内容

    节点的特性运用到机器学习里面的决策能力与泛化能力 感觉可以用传统机器学习的大套路套进来

    2019-02-19 23:20:10 回应
<前页 1 2 后页>

Hil_C的其他笔记  · · · · · ·  ( 全部19条 )