大数据文摘出品

来源:timdettmers

编译:张秋玥、Luciana、钱天培

深度学习的重要推动力是计算力的进步。

从2010年到2018年,GPU性能提高了97倍。但是,由于我们几乎已达到了半导体技术的物理极限,可以预计,在未来5-8年内GPU性能的提升仅会略高于80%。

在无法进一步提高计算能力的情况下,我们还能进行什么样的研究呢?

一种可行的研究方向是,从人脑中寻找灵感。

人类大脑消耗的能量是GPU的十分之一,但强度要高出10 ^ 9倍。是什么让大脑如此高效?

原因有很多,而其中一个就是是稀疏性

研究已经发现,灵长类生物大脑中的神经元越多,平均下来每个神经元与其他神经元的连接就越少(来自Herculano-Houzel等人的研究,2010)。这与我们设计深度神经网络的方式恰恰相反。深度神经网络更倾向于将每一层中的每个新神经元都与前一层中的所有神经元连接起来。

我们已经知道如何将一个完全训练好的稠密网络压缩到稀疏网络,但是,让一个网络在训练期间始终保持稀疏却很少被研究。

我们如何才能做到这一点的呢?今天,我们就要介绍ELMo作者Luke Zettlemoyer的最新研究,稀疏动量——一种训练稀疏网络的有效方法

优秀的稀疏学习算法长什么样?

在稀疏学习中,最重要的是尽可能有效地使用神经网络中的每一个权重。如果将“有效性”定义为“减少误差”,那么我们的下一步就很明确了。我们需要找到能够一个指标——它应当能够衡量一个权重减少误差的效果,并删除所有并不能减少误差的权重。一旦移除了权重,就可以在我们认为有望减少未来误差的位置重新生成新的权重。

如果只是关注关于权重的误差梯度,那我们确实有这样的指标。然而,如果我们观察连续梯度,就发现梯度的变化可能会非常的大。例如,加入你有一个神经网络对手写数字0到9进行分类,那么某一权重可能能够很好地检测到顶部的直线——这可能有助于减少数字5和7的错误,但是它可能并无法辨认数字0,1,2,3,6,8,9(或者甚至只会帮倒忙!)。相反,检测右上方曲线图案的重量可能有助于辨认0,2,3,8,9。因此我们可以认为,随着时间的推移,这一权重将比“顶部直线”权重能够能更加一致地减少误差。那么,我们如何自动检测神经网络中这种有用的权重呢?

动量:找到能够始终如一地减少误差的权重

打个比方,如果将北极作为局部最小值并使用罗盘针向局部最小值的渐变,那么您可以通过摇动指南针来旋转罗盘针来模拟随机梯度下降更新。每次针经过正北时,它会逐渐减速,然而,由于旋转,它仍会“超过”该方向。但是,如果你取平均指示 - 一次指针位于北极左侧,另一次指向右侧 - 这些偏差抵消了,你会立即得到一个非常接近的方向真正的北极。

这是动量优化技术背后的主要思想:我们对连续梯度取平均值以更好地估计局部最小值的方向。与罗盘指针在慢下来的时候会逐渐变得越来越准确这一特性类似,我们希望在随机梯度下降中更加高度地加权最近的梯度方向。一种方法是指定一个加权平均值,我们为当前梯度分配一个更大的权重,为前一个梯度分配一个小权重——这称为指数平滑。通过指数平滑权重的梯度,我们得到一个加权梯度矩阵——这个矩阵是动量矩阵(这就是动量优化这一名字的由来)。通过这一指标,我们可以确定哪些权重能够一致地减少误差。

重新分布权重:层平均动量大小

如果一个权重的动量表明它一致地减少了多少误差,那么一个层中所有权重的平均动量大小应该表明每个层平均减少了多少误差。通过获取层的平均动量大小,我们可以轻松地比较每层中平均重量的有效性。这就使我们可以有底气地说,例如,卷积层A中的权重平均只有完全连接层B的1/3,反之亦然。这种方法使我们能够有效地重新分配权重:如果我们发现“无用”权重,现在我们就能够很精确地知道到底把它放在哪一层了。可是这下问题又来了——在这一层中,我们把它具体放哪儿呢?

该删除哪些权重,在何处重新分配权重?

我们可以从以下两个问题着手:哪些是最无用的权重因素?我们应该在哪一层特征中增加权重?第一个问题在神经网络压缩研究中十分常见,我们采取修剪小量级权重的方式,这种方式意义重大。假设所有权重具有相似量级的平均输入,并使用批量归一化方法,那么小量级权重会使神经元产生激活差异最小,因此,删除这些小量级权重对神经网络法预测性能的改变最小。

一旦我们移除了小量级权重,重新分配剩余权重到有效层(由平均动量确定),就需要确定此权重在相应有效层的发展位置。首先思考一个问题:“连接哪些神经元可以协同减少误差?”答案很明显,取决于动量的大小。但无论如何,我们需要先找到缺失或零值权重的动量值(之前我们从训练中排除的那些),在这些缺失权重的位置增加动量值大的权重,这样就完成了稀疏动量算法,此过程如下图所示。

稀疏动量通过查看临近梯度(动量)的加权平均值来确定在稀疏网络中增加新权重的位置,以找到能够一致减少误差的权重和层。(1)我们根据平均动量大小确定每层的重要性。(2)我们删除每一层较小50%的权重。(3)然后,我们根据层的重要性在层之间重新分配权重。在每一层中,我们增加大动量之处的权重。

结果

结果令人振奋!稀疏动量法得出的结果表明,它胜于基于MNIST手写数据集的其他压缩算法。首先,它提供了一种实现方式:从密集网络开始,重复重新训练稀疏网络;其次,可以通过使用20%密集权重(即80%稀疏权重)匹配密集网络的性能。为便于理解此结论,我们同时将稀疏动量法与基于CIFAR-10数据集的单发网络修剪法进行比较,毫无疑问,对比得出稀疏动量法更胜一筹。在基于CIFAR-10数据集的单发网络修剪法中,VGG16-D和WRN16-10模型可以通过使用5%密集权重匹配密集网络的性能,其他模型的密集权重水平与稀疏动量法的密集权重水平近似。此外,通过优化的稀疏卷积算法,使用WRN 16-10模型可以保证在实现相同性能情况下使训练速度提升12倍。

在ImageNet图像识别数据库中,我们无法达到密集性能水平,这表明需要改善稀疏动量的指标。但无论如何,稀疏动量法与其他方法相比,在训练样本过程中实现保持稀疏权重方面,具有明显优势。

加速效果

稀疏学习预示了我们需要加速样本的训练,我们是否已经做到了?似是而非。如果权衡稀疏卷积的加速效果,稀疏动量可以有效地加速训练,但由于稀疏神经网络法近期才用于训练,对于GPU来说尚未建立优化的稀疏卷积算法,目前,至少对于稀疏动量法,细粒度稀疏模式的权重表现如此。

因此,我们将加速效果分为两组:一组假设存在某种稀疏卷积算法来实现加速,另一组使用标准密集卷积算法来实现加速。究竟密集卷积法如何帮助稀疏网络实现加速呢?

当看到神经网络稀疏模式出现卷积通道完全为空的情况,即出现一个全零的卷积滤波器时,我们便可以从计算中删除此通道,同时不改变卷积的结果,从而获得加速效果。

应用最佳稀疏卷积法和朴素密集卷积法所获得加速效果

但是,我们从加速效果中发现,最佳稀疏卷积法和朴素密集卷积法大相径庭,这正好清楚地表明了GPU对的优化稀疏卷积算法的需求。

为什么稀疏学习有效?

我们使用稀疏动量法训练的样本与使用仅有5%权重的密集卷积法的性能水平相当。是什么原因让这5%的权重如此高效,可以与稀疏动量法权重的20倍相匹配呢?

为了研究这个问题,我们对比了稀疏网络法与密集网络法的不同特征,其中低层特征例如边缘检测器,中层特征例如轮子、鼻子、眼睛、爪子,高层特征例如汽车表面,猫脸,冰箱门等。

边缘检测器可以有效减少卷积通道中特征的数量即神经元数量,同时可以确定卷积通道对数据集中数据分类的决定程度。边缘检测器对数据集中所有类型数据都适用,也就是说它的类特化水平较低,像眼睛这样的中级特征对例如猫,狗和人类的数据比较适用,高级特征类特化水平较高,常用来选取特定的类别。

AlexNet模型,VGG16模型和WRN 28-2模型的稀疏动量法和密集网络法的类特化直方图

我们发现,平均而言,稀疏网络学习法的特征可供学习的范围更广,这可以解释为什么稀疏网络法可以与只用5%的权重的密集网络法的性能相匹配。

稀疏学习法的未来

我认为稀疏学习法的前景非常光明,一方面,未来几年内GPU的性能不会有大的变化,另一方面,用于负载稀疏学习法的专用处理器Graphcore(核图形处理器)即将面世: 核图形处理器将整个神经网络存储在300 MB缓存空间中,同时将速度提升约100倍。这意味着如果训练样本时我们将神经网络数据压缩到300 MB,训练速度整体将提高100倍。那么使用一个核图形处理器在ImageNet图像识别数据库上训练50个残差样本只需要大约15分钟,当然,通过稀疏学习法,数据可以毫无疑问的地控制在300 MB大小以内。

由此可以预测,第一个能够在核图形处理器上成功训练稀疏神经网络的研究团队,将开启人工智能领域的新世界的大门。除此之外,稀疏学习算法的另一个挑战是将其应用于自然语言处理(NLP)。基于我的实验,毫无疑问,与计算机可视化相比,在使用自然语言进行稀疏学习方面,还需要加强。

相关报道:

https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/

稀疏学习:从人脑得到灵感,让深度学习突破算力限制相关推荐

  1. 深度学习之路---从历史认识深度学习

    学习任一门知识都应该先从其历史开始,把握了历史,也就抓住了现在与未来 ---by BryantLJ¶ 学习深度学习也需要了解深度学习的经历过程,能够更好的帮助我们理解深度学习的变更和趋势. 深度学习经 ...

  2. 深度学习backbone是什么意思_一场突如其来的讨论:到底什么是深度学习?SVM其实也是深度学习吗?...

    雷锋网 AI 科技评论按:2019 年底.2020 年初,许多机器学习界活跃的教授.研究员们投身参与了一场的突如其来的讨论:深度学习是什么? 在过去十年汹涌而来的深度学习浪潮中,大家对深度学习在应用中 ...

  3. Python深度学习篇一《什么是深度学习》

    在过去的几年里,人工智能(AI)一直是媒体大肆炒作的热点话题.机器学习.深度学习 和人工智能都出现在不计其数的文章中,而这些文章通常都发表于非技术出版物.我们的未来被描绘成拥有智能聊天机器人.自动驾驶 ...

  4. 吴恩达深度学习ppt_【深度学习】吴恩达谈深度学习:数据科学家需要知道这些...

    数据科学家需要什么深度学习知识?吴恩达 (Andrew Ng)用机器看图说话,机器问答等实例告诉大家.本文是吴恩达在2015年12月在ExtractConf上的演讲摘录,含20分钟视频与ppt. An ...

  5. 华南理工深度学习与神经网络期末考试_深度学习基础:单层神经网络之线性回归...

    3.1 线性回归 线性回归输出是一个连续值,因此适用于回归问题.回归问题在实际中很常见,如预测房屋价格.气温.销售额等连续值的问题.与回归问题不同,分类问题中模型的最终输出是一个离散值.我们所说的图像 ...

  6. 深度学习巨头Yoshua Bengio清华演讲: 深度学习通往人类水平人工智能的挑战

    来源:专知 摘要:2018年11月7日晚,被称为"深度学习三巨头"之一的蒙特利尔大学计算机科学与运算研究系教授Yoshua Bengio在清华大学做了<深度学习抵达人类水平人 ...

  7. 0.0 目录-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授

    文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...

  8. 基于深度学习的病理_组织病理学的深度学习(第二部分)

    基于深度学习的病理 计算机视觉/深度学习/医学影像 (COMPUTER VISION/ DEEP LEARNING/ MEDICAL IMAGING) In the last part, we sta ...

  9. 百度要召集 600 名深度学习开发者搞事情? 首届深度学习开发者峰会等你来

    深度学习,是近年来人工智能发展最迅猛的领域之一,正在为我们揭开一个令人神往的智能时代.前不久计算机最高荣誉图灵奖,授予了深度学习三巨头,Yoshua Bengio.Geoffrey Hinton.Ya ...

  10. 深度学习还没入门?看看深度学习三巨头的Deep Learning综述(4)

    深度学习还没入门?看看深度学习三巨头的Deep Learning综述(1) 深度学习还没入门?看看深度学习三巨头的Deep Learning综述(2) 深度学习还没入门?看看深度学习三巨头的Deep ...

最新文章

  1. 解释@Component @Controller @Service @Repository
  2. 分式的二阶导数怎么求_为何二阶微分要记为 d²y/dx²?
  3. 如何攻克目标检测?百度全球顶级会议双料冠军团队有话说!
  4. 学习笔记(11):Python网络编程并发编程-粘包底层原理分析
  5. 市面上有哪几种门_选择 low-e门窗玻璃,你想知道的都在这了
  6. python实现逐步回归分析_Python实现逐步回归(stepwise regression)
  7. 【计算机科学基础】计算机不需要整数减法器的原因
  8. 域对抗网络Domain adversarial neural network及其应用相关论文
  9. 手机自动阅读挣钱,这次用脚本写
  10. IAR开发环境的搭建以及CC2530单片机程序编程实验
  11. MySQL 中 delete where in 语句的子查询限制
  12. 计算机函数sumif求平均值,用sumif函数如何求平均值
  13. 10分钟学会 Qt 扁平化界面(qss 使用)
  14. pem crt key文件区别
  15. 年轻人应不应该买房 如何买
  16. 若依框架(Ruoyi-vue)上传视频且回显
  17. Java提供的进制转换
  18. 六个防止SQL注入式攻击的建议
  19. 财务自由人(Financial free man)
  20. miix4linux双系统,情理之中,意料之外:Lenovo 联想 MIIX4 平板电脑 低配版

热门文章

  1. oracle dg 删除归档,简单DG归档日志删除脚本
  2. H - 敌兵布阵 (cugb2023-s)
  3. 更优雅的字符串print——pprint库的使用
  4. 爱奇艺世界大会|影视行业如何“挤水分” ? 我们跟业内人士聊了聊
  5. 四足机器人跳跃轨迹优化
  6. ENSP ipsec isakmp(自动)
  7. Git仓库建立与连接远程仓库
  8. 关于透视投影的深入理解
  9. python raise的用法
  10. android service白名单,Android 后台运行白名单实现保活