【AAAI Oral】阿里提出新神经网络算法,压缩掉最后一个比特

简介: 在利用深度网络解决问题的时候人们常常倾向于设计更为复杂的网络收集更多的数据以期获得更高的性能。但是,随之而来的是模型的复杂度急剧提升,参数越来越多,给深度学习在设备上的应用带来挑战。阿里iDST团队最新提出的ADMM神经网络压缩和加速算法,可以无损地压缩掉最后一个比特。

近年来,深度学习在人工智能领域取得了重大的突破。在计算机视觉、语音识别等诸多领域,深度神经网络(DNN, Deep Neural Network)均被证明是一种极具成效的问题解决方式。如卷积神经网络(CNN, Convolutional neural network)在计算机视觉诸多传统问题(分类、检测、分割)都超越了传统方法,循环神经网络(RNN, Recurrent Neural Networks)则在时序信号处理,如机器翻译,语音识别等超过传统方法。

在利用深度网络解决问题的时候人们常常倾向于设计更为复杂的网络收集更多的数据以期获得更高的性能。但是,随之而来的是模型的复杂度急剧提升,直观的表现是模型的层数越来越深,参数越来越多。这会给深度学习带来两个严重的问题:

  1. 随着模型参数的增多,模型的大小越来越大,给嵌入式端模型的存储带来了很大的挑战。
  2. 随着模型的增大,模型inference的时间越来越长,latency越来越大。

以上两个问题给深度学习在终端智能设备上的推广带来了很大的挑战。比如,经典的深度卷积网络VGG-16的模型大小达到528M,用户很难接受下载一个如此大的模型到手机或者其他终端设备上。同时,在一般的智能手机上,VGG-16识别一张图像的时间高达3000+ms,这个latency对于大多数用户来说也是难以接受的。此外,由于深度网络的计算量很大,运行深度网络的能耗很高,这对于手机等终端设备也是一个巨大的挑战。

基于低比特表示技术的神经网络压缩和加速算法

在这个工作中,我们提出一种基于低比特表示技术的神经网络压缩和加速算法。我们将神经网络的权重表示成离散值,并且离散值的形式为2的幂次方的形式,比如{-4,-2,-1,0,1,2,4}。这样原始32比特的浮点型权重可以被压缩成1-3比特的整形权重,同时,原始的浮点数乘法操作可以被定点数的移位操作所替代。在现代处理器中,定点移位操作的速度和能耗是远远优于浮点数乘法操作的。

首先,我们将离散值权重的神经网络训练定义成一个离散约束优化问题。以三值网络为例,其目标函数可以表示为:

9736b3098539f9fef50ffe70f4f77d31f2451e41

更进一步,我们在约束条件中引入一个scale参数。对于三值网络,我们将约束条件写成{-a, 0, a}, a>0. 这样做并不会增加计算代价,因为在卷积或者全连接层的计算过程中可以先和三值权重{-1, 0, 1}进行矩阵操作,然后对结果进行一个标量scale。从优化的角度看,增加这个scale参数可以大大增加约束空间的大小,这有利于算法的收敛。如下图所示,

45ce666ffcf4cb0012f5531c901920d5db35cd78

对于三值网络而言,scale参数可以将约束空间从离散的9个点扩增到4条直线。

为了求解上述约束优化问题,我们引入ADMM算法。在此之前,我们需要对目标函数的形式做一个等价变换

b08a63f92f463af2f8fe4e10c00d49a75a6f8fbb

其中Ic为指示函数,如果G符合约束条件,则Ic(G)=0,否则Ic(G)为无穷大。该目标函数的增广拉格朗日形式为:

81bc29b4d395f7b4c75d8a7c818ef88ec6273b2281bc29b4d395f7b4c75d8a7c818ef88ec6273b22

ADMM算法将上述问题分成三个子问题进行求解,即

5c331c8d78fd026f6c03e9b465301876dc05e54d

与其它算法不同的是,我们在实数空间和离散空间分别求解,然后通过拉格朗日乘子的更新将两组解联系起来。

第一个子问题需要找到一个网络权重最小化:

8ff31d6eb224bf8cf44e2afddef662852044ac8e

在实验中我们发现使用常规的梯度下降算法求解这个问题收敛速度很慢。在这里我们使用Extra-gradient算法来对这个问题进行求解。Extra-gradient算法包含两个基本步骤,分别是:

c080cb61b5ad87fbbfe07553972338c31db5dbbf

第二个子问题在离散空间中进行优化。通过简单的数学变换第二个子问题可以写成:

d327f04861e51c28d84711865e89a95d6bfa9411

该问题可以通过迭代优化的方法进行求解。当a或Q固定时,很容易就可以获得Q和a的解析解。

实验结果

ImageNet图像识别:我们分别在Alexnet、VGG16、Resnet18、Resnet50、GoogleNet等五个主流的CNN框架上验证了所提出的算法。实验中我们分别尝试了Binary网络、Ternary网络、{-2, -1, 0, 1, 2}、{-4, -2, -1, 0, 1, 2, 4}四种形式。在Imagenet上Top-1和Top-5准确度结果如下:

Alexnet和VGG16:

67a1071ef61674932a94a63c5d6e73e434b01cad

Resnet:

ce0c6e1ccd5d602a7be0e34df5c254261ed999a8

GoogleNet:

e1e73b9464c923b0d0ddddc421e0b97fcd6171bd

其中BWN[1]和TWN[2]为我们对比的两种Binary网络和Ternary网络量化方法。从这些结果可以看出,在各个网络框架下,我们的算法都显著超过对比算法。同时,当比特数达到3时,量化之后的网络精度相比于原始网络几乎可以达到无损。在Alexnet和VGG16这两个冗余度比较高的网络上,量化之后的网络甚至可以取得超过原始网络的精度,这是因为量化操作可以起到一个正则的作用,从而提高这类网络的泛化性能。

Pascal VOC目标检测:我们在SSD检测框架下对算法进行验证,分别采用了VGG16+SSD和Darknet+SSD两种网络结构。对于检测任务,尝试了Ternary网络和{-4, -2, -1, 0, 1, 2, 4}两种量化形式。实验结果如下:

97ec121dcf1327d2ef2cef0cbec7f8f8b7009eaf

对于Darknet我们使用了两种设置,第一种设置中所有的权重进行相同的量化;第二种设置中,1x1的卷积核使用INT8量化,即括号中的结果。和识别中的结果类似,在VGG+SSD结构中,我们的算法几乎可以做到无损压缩。


原文发布时间为:2018-01-18

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

原文链接:【AAAI Oral】阿里提出新神经网络算法,压缩掉最后一个比特

相关文章
|
28天前
|
机器学习/深度学习 存储 算法
6 种 卷积神经网络压缩方法
6 种 卷积神经网络压缩方法
27 0
|
1月前
|
存储 算法
【数据结构与算法】【腾讯阿里链表面试题】算法题--链表易懂版讲解
【数据结构与算法】【腾讯阿里链表面试题】算法题--链表易懂版讲解
|
2月前
|
机器学习/深度学习 编解码 算法
中科大提出PE-YOLO | 让YOLO家族算法直击黑夜目标检测
中科大提出PE-YOLO | 让YOLO家族算法直击黑夜目标检测
44 0
|
6月前
|
缓存 算法 架构师
阿里P9架构师终于把毕生心血而成的分布式高可用算法笔记开源了
说在前面的话 分布式系统无处不在。 一台计算机内部多个互联的处理器组成了一个分布式系统,它们通过“一致性缓存”算法使每个处理器核心看到相同的数据。近三十年来,随着互联网的发展,越来越多的互联网后台系统采用计算机集群的方式来应对海量请求和数据的需求,这个计算机集群也是分布式系统。 为了简化分布式系统的开发,出现了很多为开发者提供分布式框架的开源项目,例如Apache基金会旗下的ZooKeeper项目就是一个应用广泛的分布式框架。 同时,国内也有很多关于如何使用这些分布式框架来搭建应用的书籍,它们极大地推动了分布式系统在国内的应用。我们不仅要知道如何使用这些现成的分布式框架来搭建应用,而且应
|
2月前
|
人工智能 运维 Cloud Native
重磅解读阿里云云网络领域关键技术创新
2023年10月31日,杭州·云栖大会,阿里云技术主论坛带来了一场关于阿里云主力产品与技术创新的深度解读,阿里云网络产品线负责人祝顺民带来《云智创新,网络随行》的主题发言,针对阿里云飞天洛神云网络(下文简称洛神网络)领域产品服务创新以及背后的技术积累进行了深度解读,不少背后的创新技术系首次重磅披露。
127894 3
|
3月前
|
算法 搜索推荐 Java
太实用了!阿里内部强推的超全Java算法学习指南,已被彻底征服
算法和数据结构一直以来都是程序员的基本内功。 数据结构可以看作是算法实现的容器,通过一系列特殊结构的数据集合,能够将算法更为高效而可靠地执行起来。
|
3月前
|
算法
电子好书发您分享《阿里技术参考图册——算法篇》
电子好书发您分享《阿里技术参考图册——算法篇》
46 9
|
4月前
|
算法 NoSQL Java
2023年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
5月前
|
算法 网络协议 Java
48W字?GitHub上下载量破百万的阿里:图解Java、网络、算法笔记
Java基础这个东西,无论在哪个公司都被看得尤为重要,而面试中关于基础的问题也是层出不穷。所以基础可以说是重中之重,当你的基础打牢了,其他的也就没有那么重要了。
|
5月前
|
网络协议 程序员 云计算
Alibaba永远滴神!阿里顶级技术官500页网络协议手记,限时开源
网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。 例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。当然,对于不相容终端,除了需变换字符集字符外还需转换其他特性,如显示格式、行长、行数、屏幕滚动方式等也需作相应的变换。