2014《1-Bit SGD and its Application to Data_Parallel Distributed Training of Speech DNNs》

作者:Frank Seide 、 Dong Yu

摘要:

1.主要思想:只要量化损失(quantization error)被带到下一个minibatch,就可以实现1-bit的无损压缩。

2.方法:和Adagrad、自动minibatch大小调节、双缓冲、模型并行结合。

3.压缩率:没有提及。只是说了提速多少。

Introduction

4.R-prop方法好像可以直接丢弃上一个minibatch的信息(这个不确定,后续调研一下R-prop方法)

5.介绍其他加速训练的方法:低阶近似(low-rank approximations)、二阶方法(Hessian Free)、模型平均、ADMM。(这些方法都不了解,后续可以看一下,但是都好像和梯度压缩无关,所以暂时略过)。

6.第六段和DNN的关系比较大,后续问问wamingchen。
和Hogwild/ASGD不同,该方法是确定性不改变收敛性能的方法。(比较怀疑这个说辞)

2

2.1数据并行分布式SGD

讨论了通信时间和计算时间的关系,并由两者确定最佳的节点数量K。(其中的公式没有看懂,后续一定要再看一下!)

2.2利用双缓存对minibatch进行切分

将minibatch分成前一半和后一半。push前一半梯度的同时,计算后一半的梯度。(文献19、8应该是介绍了这个技术)

3. 1-bitSGD with Error Feedback

1.量化误差不应该被抛弃,否则会导致不收敛。

2.通过公式可以看出来,就是计算出量化误差,然后累加到下一个minibatch当中。(下标表示什么没有看明白)

3.将0作为量化阈值(如何量化得????)

3.1集成梯度

每一个minibatch需要经历两次quantization。(这里也没想明白,回头再看看!)

4系统描述

1.增加minibatch大小可以增加数据并行度,但是太大容易导致模型不收敛(这个还不理解为什么?)。因此这个系统前期先在小数据上确定可以最大的minibatch size。

2.训练过程中使用交叉验证动态调整学习率的衰减系数。

3.使用了Adagrad,它可以收敛得更快,并且允许更大的minibatch size。

4.可以在三个地方使用Adagrad:

4.1 量化之前
4.2 量化之后:先集成子梯度,然后进行Adagrad
4.3 进行动量平滑之后

目前看,4.2效果最好。(文章也不知道为什么这样效果最好)

5实验

5.2 1-bit量化的影响

1.前期阶段没有使用梯度量化和并行化(冷启动:冷启动和热启动的区别是啥?)

2.error feedback很关键,一定要加上。

6结论