视频 | 机器之心线上分享第三期:深度神经网络-随机三元化梯度下降和结构化稀疏

上周,机器之心 NIPS 2017 线上分享邀请到了杜克大学温伟。温伟博士分享了两种不同的方法 TernGrad 与 SSL。这篇文章对温伟博士的分享做了回顾,同时也编译介绍了这两篇相关论文。

视频内容

温伟博士线上分享视频回顾

TernGrad

TernGrad[1] 是一种梯度量化方法,将浮点梯度随机量化到 {-1,0,+1},在保证识别率的情况下,大大降低梯度通信量。这篇论文是 NIPS 2017 Deep Learning track 里的 4 篇 orals 之一。

目前,论文已经可以从 arXiv 下载,源代码也在温伟的个人 GitHub 上公开。

  • 论文链接:https://arxiv.org/pdf/1705.07878.pdf
  • 代码地址:https://github.com/wenwei202/terngrad

随着深度学习神经网络规模越来越大,训练一个深度神经网络(Deep Neural Networks, DNNs)往往需要几天甚至几周的时间。为了加快学习速度,经常需要分布式的 CPU/GPU 集群来完成整个训练。如图 1,在主流的基于数据并行(data parallelism)的分布式深度学习中,各个计算单元(worker)并发地训练同一个 DNN,只不过各个单元用到的训练数据不一样,每一次迭代结束后,各个计算单元里的 DNN 参数或梯度 会通过网络(如以太网,InfiniBand 等)发送到参数服务器(Parameter Server)进行同步再下发。训练时间主要包括计算时间(computation time)和通信时间(communication time)。计算时间可以通过增加 workers 减少,然而,通信时间却随着 workers 的增加而增加。因此,在大规模分布式训练中,通信时间成为了新的瓶颈,如何降低通信时间成为很重要的研究课题。理论上,TernGrad 可以把通信量至少减少到 1/20;实际应用中,即使对 0 和±1 采用简单的 2 比特编码(浪费掉一个可用值),相对于传统的 32 比特的浮点型梯度,通信量也可以减少到 1/16。这可以大大克服通信瓶颈的约束,提升分布式训练的可扩展性。

图 1. 基于数据并行的分布式训练

温伟介绍说,「大大降低梯度的精度,会严重影响 DNN 训练效果。在基于量化的深度模型压缩算法中,即使可以将网络权重量化到低精度,但是训练过程仍然需要浮点精度的梯度,以保证训练的收敛性。那么我们是怎么将梯度量化到只有三个值,却不影响最后识别率的呢?我们的方法其实很简单,在普遍采样的随机梯度下降(Stochastic Gradient Descent,SGD)训练方法中,梯度是随机的,而且这种随机性甚至可以有助于 DNNs 跳出很差的局部最小值。既然梯度本来就是随机的,那为什么我们不把它们进一步随机地量化到 0 和±1 呢?在随机量化时,我们只需要保证新梯度的均值还跟原来一样即可。

在训练过程中,因为学习率往往较小,在梯度形成的优化路径上,即使 TernGrad 偶尔偏离了原来的路径,由于均值是一样的,后续的随机过程能够将偏离弥补回来。我们基于伯努利分布,类似于扔硬币的形式,把梯度随机量化到 0 或±1。在合理假设下,我们理论上证明了 TernGrad 以趋近于 1 的概率收敛到最优点。相对于标准 SGD 对梯度的上界约束,TernGrad 对梯度有更强的上界约束,但是我们提出了逐层三元化(layer-wise ternarizing)和梯度修剪(gradient clipping)技术,使得 TernGrad 的梯度上界约束接近标准 SGD 的上界约束,从而大大改善了 TernGrad 的收敛性。实验结果表明,在分布式训练 AlexNet 时,TernGrad 有时甚至会提高最后的识别率;在 GoogleNet 上,识别率损失也小于 2%。(图 2 为分布式训练 AlexNet 的结果,相对于标准 SGD 基线,TernGrad 具有同样的收敛速度和最终识别率。)」

图 2:基于 TernGrad 训练 AlexNet 的收敛性

更多详细内容,请参见机器之心文章:学界 | 杜克大学 NIPS 2017 Oral 论文:分布式深度学习训练算法 TernGrad

SSL

本次分享的第二个主题是 SSL[2]。相对于连接剪枝 (Connection Pruning),SSL 可以直接控制稀疏模式,避免稀疏权重随机分布导致的计算效率低的问题。SSL 是一个通用方法:在 CNNs 中,SSL 可以去掉 filters,channels,neurons,ResNets 里的 layers,学到非矩形的 filter 形状,以及去掉权重矩阵里面的行和列。

该论文发表在 NIPS 2016,并与微软研究院-雷德蒙德合作,扩展到 LSTMs 并提交在某会议 [3]。在 LSTMs 中,SSL 可以有效地去掉 hidden states,cells,gates 和 outputs,从而直接学到一个 hidden size 更小的 LSTMs 并不改变 LSTMs 内部固有的结构。

以下是机器之心对该论文的编译介绍:

深度学习对计算资源的巨量需求严重阻碍了我们在有限计算力的设备中部署大规模深度神经网络(DNN)。在本研究中,我们提出了一种结构化稀疏学习(Structured Sparsity Learning /SSL)方法对 DNN 的结构(即卷积核、通道、卷积核尺寸和层级深度)进行正则化。SSL 可以:(1)从大的 DNN 学习到更紧凑的结构以减少计算开销;(2)获得有利于硬件加速的 DNN 结构化稀疏,以加快部署后的 DNN 的计算速度。实验结果表明,在 AlexNet 卷积网络上,即使采用现成的软件库,SSL 在 CPU 和 GPU 上分别实现了 5.1 倍和 3.1 倍加速。这些加速是非结构化稀疏的两倍。(3)正则化 DNN 的结构以提高分类准确度。结果表明在 CIFAR-10 中,SSL 对网络层级深度的正则化可以将 20 层的深度残差网络(ResNet)减少到 18 层,且准确度由原来的 91.25% 提高到 92.60%,这仍然比 32 层原版 ResNet 的准确度略高。对于 AlexNet 来说,SSL 提供的结构正则化可以提高约 1% 的分类精度。

我们的源代码地址为:https://github.com/wenwei202/caffe/tree/scnn

图 1:AlexNet 在 GPU 平台上的非结构化稀疏和加速。其中 conv1 为第一个卷积层,以此类推。基线是由 cuBLAS GEMM 的计算速度。非结构化稀疏加速通过 cuSPARSE 加速库实现,稀疏矩阵以 Compressed Sparse Row(CSR)的格式储存(可以看到非结构化稀疏要么没有加速要么加速很小)。

图 2:本论文提出的 DNN 结构化稀疏学习(SSL)。想学什么样的结构化稀疏,取决于怎么对权重分组。通过 Group Lasso 对每组权重正则化,我们可以由移除一些组以获得结构化稀疏的 DNN。上图展示了本研究中的 filter-wise、channel-wise、shape-wise 和 depth-wise 的结构化稀疏。

图 6:在使用 SSL 进行层级深度正则化后的误差 vs. 层级数量曲线图。ResNet-# 为 # 层的原版 ResNet[5],SSL-ResNet-# 为经 SSL 层级深度正则化后的 # 层 ResNet。32*32 表示输出特征图大小为 32×32 的卷积层,以此类推。

图 7:(a)2D-filter-wise 结构化稀疏(sparsity)和 FLOP 缩减(reduction)vs. top-1 误差的曲线图。垂直虚线表示原版 AlexNet 的误差。(b)权重降维重构误差 vs. 维数的曲线图。利用主成分分析(Principal Component Analysis,PCA)进行降维以充分削减卷积核冗余。选择了拥有最大特征值的特征向量作为低维空间的基。虚线表示基线结果,实线表示表 4 中的 AlexNet 5 中的卷积层。(c)L1-norm 和 SSL 在不同的 CPU 和 GPU 平台(由 x 轴上的标记表示,其中 T# 是 Xeon CPU 并采用了最大 # 个物理线程)上的加速。图为表 4 中 AlexNet 1 和 AlexNet 2 的比较结果。

表 4:AlexNet 在 ILSVRC 2012 上的结构化稀疏和加速

线上分享往期回顾

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2017-12-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

【学习】说说高斯过程回归

作者:冯牡丹 今天起会陆续写一些机器学习的notes,这次介绍一个很酷的idea,aka 高斯过程回归(Gaussian Process Regression)...

8135
来自专栏AI研习社

手把手教你从零起步构建自己的图像搜索模型

很多的产品是基于我们的感知来吸引我们的。比如在浏览服装网站上的服装,寻找 Airbnb 上的假期租房,或者领养宠物时,物品的颜值往往是我们做决定的重要因素。想要...

1343
来自专栏BestSDK

5年时间,目标跟踪算法的进化史

第一部分:目标跟踪速览 先跟几个SOTA的tracker混个脸熟,大概了解一下目标跟踪这个方向都有些什么。一切要从2013年的那个数据库说起。。如果你问别人近几...

7056
来自专栏PPV课数据科学社区

“小数据”的统计学

一、小数据来自哪里? 科技公司的数据科学、关联性分析以及机器学习等方面的活动大多围绕着”大数据”,这些大型数据集包含文档、 用户、 文件、 查询、 歌曲、 图片...

3556
来自专栏瓜大三哥

DeepID2+商汤科技

通过实证研究,文章发现了三深部神经激活的性质:稀疏性、选择性和鲁棒性。(1)可以观察到神经激活是中度稀疏的。适度的稀疏性最大化了深度网以及图像之间的距离。令人惊...

3345
来自专栏用户2442861的专栏

形象易懂讲解算法II——压缩感知

作者:咚懂咚懂咚 链接:https://zhuanlan.zhihu.com/p/22445302 来源:知乎 著作权归作者所有。商业转载请联系作者获得授...

1912
来自专栏数据派THU

20篇顶级深度学习论文(附链接)

本文讲述了深度学习正值快速发展进化阶段,新技术,新工具以及新的应用实现正在深刻改变着机器学习领域并不断获得累累硕果。

1393
来自专栏量化投资与机器学习

Python机器学习:数据拟合与广义线性回归

谢谢大家支持,可以让有兴趣的人关注这个公众号。让知识传播的更加富有活力,谢谢各位读者。 很多人问博主为什么每次的头像是奥黛丽赫本,因为她是博主女神,每天看看女神...

4167
来自专栏鸿的学习笔记

Understanding Convolution in Deep Learning(四)

我们将在下面看到为何卷积内核会被称为过滤器以及卷积操作通常被描述为过滤操作的原因。

1011
来自专栏人工智能头条

用深度学习做个艺术画家 ——模仿实现PRISMA

2034

扫码关注云+社区

领取腾讯云代金券