端上智能——深度学习模型压缩与加速

摘要:随着深度学习网络规模的增大,计算复杂度随之增高,严重限制了其在手机等智能设备上的应用。如何使用深度学习来对模型进行压缩和加速,并且保持几乎一样的精度?本文将为大家详细介绍两种模型压缩算法,并展示了阿里巴巴模型压缩平台和前向推理工具。

本次直播视频精彩回顾,戳这里!
本次直播PDF下载,戳这里!

演讲嘉宾简介:
李昊(花名:辽玥),阿里巴巴机器智能技术实验室高级算法专家,毕业于中科院,拥有工学博士学位,致力于深度学习基础技术研究以及在各个行业的应用。

以下内容根据演讲嘉宾视频分享以及PPT整理而成。

本文将围绕一下几个方面进行介绍:
1. 深度学习模型压缩与加速
  • Extremely Low Bit Neural Networks
  • Extremely Sparse Network
2. 训练平台
3. 高效前向推理工具

一. 深度学习模型压缩与加速

随着深度学习网络规模的增大,计算复杂度随之增高,严重限制了其在手机等智能设备上的应用。例如下图一展示的VGGNet和图二的残差网络,如此大规模的复杂网络模型在端设备上使用并不现实。

因此需要采用深度学习模型来进行压缩和加速,下面介绍两种压缩算法。

1. Extremely Low Bit Neural Networks

Low Bit模型是指将连续的权重压缩成离散的低精度权重。如下图所示,原始深度学习的网络参数为float型,需要32bit存储空间,将其转化成只有三值(0,+1,-1)的状态,存储只需要2bit,极大地压缩存储空间,同时也可以避免乘法运算,只是符号位的变化和加减操作,从而提升计算速度。

这里为大家提供一篇对Low Bit模型详细介绍的参考文章Extremely Low Bit Neural Networks: Squeeze the Last Bit Out with ADMM。

接下来以二值网络为例讲解上述的压缩过程。首先假设原始神经网络的优化目标函数为f(w),限制条件为深度学习网络的参数包含在C内,如果C为{-1,1},则该网络便为二值网络,如下所示:

这里引入了一种解决分布式优化和约束优化的常用方法ADMM(Alternating Direction Method of Multipliers),来求解以上离散非凸约束优化问题,其形式如下:

ADMM用于解决当目标函数为f(x)+g(z),其中限制条件是Ax+Bz=c的优化。首先写出增广拉格朗日函数,然后将上述问题转化成求解如下所示的xyz:

即先求解xz的极小值,然后得到y的更新。上述即为ADMM标准解法,接下来,如何将Low Bit Neural Networks问题转化成ADMM问题呢?

首先需要引入指示函数,形式如下所示:

此时二值神经网络的目标函数等价于优化目标函数和指示函数之和:

这意味着,当指示函数属于C时,优化目标即为初始目标,没有变化;当指示函数不属于C时,指示函数为正无穷,此时会首先优化指示函数。

然后需要引入一致性约束,这里引入辅助变量G,并约束W=G,则目标函数等价于:

加入辅助变量后,就可以将二值神经网络的优化问题转化为ADMM标准问题。接下来,写出上式增广拉格朗日公式,使用ADMM算法求解完成优化目标,如下所示:

除上述二值网络外,还有以下几种常用的参数空间:

参数空间中加入2、4、8等值后,仍然不需要乘法运算,只需进行移位操作。因此,通过这种方法将神经网络中的乘法操作全部替换为移位和加操作。

将上述Low Bit模型应用至ImageNet进行分类,最终的优化结果如下表所示:

表一展示了该算法在AlexNet和VGG-16的应用结果,可以发现该算法在二值和三值网络中的效果明显优于原始范围的应用,并且三值网络中的分类结果与全精度的分类结果相比,几乎是无损的。表二是该算法在ResNet-18和ResNet-50中的应用,结果也与表一中类似。

在检测方面,该算法仍具有较高的可用性。如下表所示:

本次实验的数据集为Pascal VOC 2007。根据上表中数据可知,三值空间内的检测结果精度与全精度参数空间相比,误差几乎可以忽略不计。

2. Extremely Sparse Networks

稀疏神经网络适用于网络中大部分参数为零的情况,存储参数可以通过简单的压缩算法,例如游程编码,极大的减小参数存储空间,并且由于0可不参与计算,从而节约大量的计算空间,提升计算速度。稀疏网络中,优化目标仍然和上述相同,限制条件改为如下所示:

对f(W)求梯度下降值(Gradient Descent),将其进行迭代,每迭代一次,就进行一次连接剪枝(Connection Pruning),裁剪的标准是,W的参数越小,重要性越低,将比较小的参数置零,从而保证稀疏度。

但上述解法存在一个明显的问题是,如下图所示:

w1与w2相比,w1与0更近,但若将w1置零,对函数的损失更大,因此在决定w的重要性时,必须同时考虑w本身大小和斜率。只有在w值和斜率都比较小时,才可以将其置零。基于上述标准,完成了对Alexnet和GoogleNet的稀少度实验,如下图所示:

由上图结果可知,无论是纯卷积网络,还是包含全连接层网络,都可以达到90%以上的稀疏度。

3. 实验结果对比

上文中介绍了稀疏和量化两种方法,实验一将这两种方法同时作用于Alexnet,结果如下所示:

由上图可以得知,在3Bits,稀疏度为90%以上时,精度损失几乎可以忽略不计,此时压缩率可以达到82倍以上。
实验二中,将两种方法作用于InageNet和Pascal VOC,其中P是稀疏,Q是量化,由图中结果可知,实验过程精度损失极小,并且InageNet中inference的速度有明显提升,Pascal VOC可以达到稀疏度88.7%,量化为3bits,40倍的压缩率下,相对于全精度网络mAP只有1点的下降幅度。

二. 训练平台

基于上述两种方法,建立起Gauss训练平台。目前Gauss训练平台支持多种常见训练任务(例如人脸、ocr、分类、监测等)和模型(例如CNN、LSTM等),并且支持多机训练,能够以尽可能少的参数设置,减少用户使用成本。

同时Gauss训练平台支持两种模型训练工具:Data-dependent和Data-independent。Data-dependent模型训练工具需要用户提供训练数据,训练时间较长,适合压缩和加速要求较高的场景。Data-independent模型训练工具无需用户提供任何训练数据,一键式处理,处理时间在秒级。

三. 高效前向推理工具

建立起训练平台之后,模型的真正运用还需要高效的前向推理工具。基于低精度矩阵计算工具AliNN&BNN,快速实现低比特矩阵乘法计算。实现后的推理工具在ARM平台上相比竞品提速2-5倍,Intel平台上提速3倍。



文章作者:聒小小噪

原文链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jvm调优 java_opt_Java-100天知识进阶-JVM调优工具-JDK自带工具-知识铺《八》

原标题:Java-100天知识进阶-JVM调优工具-JDK自带工具-知识铺《八》JVM 监控分析工具一、JDK 自带工具1. jconsoleJDK/bin 目录下, jconsole.exe 双击打开, 自动搜索本机运行的虚拟机进程。选择其中一个进程即可,开始进行JVM监控1.…

这帮吃货程序猿,给阿里食堂来了一波骚操作

我叫宋爽,在别人眼里,我是一个程序猿。 别的程序猿,喜欢摁键盘,我嘛,就喜欢吃。 有一次,去医院体检,拿到CT片的我,看着自己的脊椎骨,脑子中一直在想:啊&#…

linux 查看shell脚本执行了多长时间

步骤说明命令①写一个1.sh脚本vim1.sh,把脚本内容复制进去②赋予1.sh可执行权限chmod u_x 1.sh③把要执行的命令复制到第4行,保存退出esc :wq④执行脚本./1sh⑤查看执行脚本,共消耗多长时间基础脚本模板 #!/bin/bash starttimedate %Y-%m-%d…

任正非表示华为可以向美国企业转让5G技术;谷歌同意支付5亿欧元买断与法国纠纷;京东公布iPhone11系列预售战报……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 联想举办YOGA 2019秋季新品品…

Tensorflow快餐教程(1) - 30行代码搞定手写识别

摘要: Tensorflow入门教程1去年买了几本讲tensorflow的书,结果今年看的时候发现有些样例代码所用的API已经过时了。看来自己维护一个保持更新的Tensorflow的教程还是有意义的。这是写这一系列的初心。快餐教程系列希望能够尽可能降低门槛,少讲…

科普帖:什么是服务网格?

戳蓝字“CSDN云计算”关注我们哦!译| 风车云马文| Josh Fruhlinger来源| InfoWorld网站在数字化转型的背景下,IT行业正在将大型的应用程序集成到小的、离散的微服务容器中,这些容器包含所有的服务代码和依赖项,而这些依赖项彼此独…

年轻人,你为什么来阿里做技术?

摘要: 一个阿里IT男,成了母婴专家? 最近,阿里算法工程师拉普当上了爸爸。 两个月前他就开始为这件事忙活。自从老婆有喜之后,七大姑八大姨都来给他提供参考,生过孩子的朋友、同事都对他说什么该买,主管也时…

查一个字段中字符集超过30的列_详细解读MySQL的30条军规

一、基础规范(1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高(2)必须使用UTF8字符集 解读:万国码,无需转码,无乱码风险&am…

ThinkPHP 5使用OSS

摘要: ThinkPHP 5使用OSS示例。准备工作登录阿里云官网,将鼠标移至产品找到并单击对象存储OSS打开OSS产品详情页面。在OSS产品详情页中的单击立即开通。开通服务后,在OSS产品详情页面单击管理控制台直接进入OSS管理控制台界面。您也可以单击位…

Linux环境_源码安装LibreOffice实现文件在线预览doc,doxc,xls,xlsx,ppt,pptx 文件

因业务需求需要,利用LibOffice可以打开的文档的转换。 服务器版本 环境系统版本LinuxRed Hat Enterprise Linux Server release 7.6 (Maipo)LinuxCentOS Linux release 7.6 需要准备软件包 软件及版本下载链接LibreOffice_6.3.2_Linux_x86-64_rpm.tar.gzhttps://w…

关于云原生需要了解什么

戳蓝字“CSDN云计算”关注我们哦!尽管随处可闻云原生,却鲜少有人告诉你到底什么是云原生,若是找资料来看,读完大多会感觉云缭雾绕,一知半解,总之虚得很,甚至会让你一度怀疑自己的智商&#xff0…

仅使用NumPy完成卷积神经网络CNN的搭建(附Python代码)

摘要: 现有的Caffe、TensorFlow等工具箱已经很好地实现CNN模型,但这些工具箱需要的硬件资源比较多,不利于初学者实践和理解。因此,本文教大家如何仅使用NumPy来构建卷积神经网络(Convolutional Neural Network , CNN&a…

SpringBoot 使用LibreOffice 在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件

接上一篇:linux环境源码安装unoconv Linux环境_源码安装Unoconv实现文件在线预览doc,doxc,xls,xlsx,ppt,pptx 文件 https://gblfy.blog.csdn.net/article/details/103540694 接上一篇:linux环境…

裸辞面11家python公司,拿到4个offer!网友:买了简历置顶会员吗?

我一直认为,敢裸辞的只有2种人:1、能力足够强,即使裸辞也不会被财务问题所困,更不愁找工作。2、年轻气盛,遇到傻X领导和傻X同事,绝对0容忍!但是最近我在刷某乎的时候,发现了第三种人…

万用表怎么测电池内阻_数字万用表和指针万用表,两者怎么选?

​万用表又称为复用表、多用表、三用表、繁用表等,一般以测量电压、电流和电阻为主要目的。是一种多功能、多量程的测量仪表,可测量直流电流、直流电压、交流电流、交流电压、电阻和音频电平等,有的还可以测交流电流、电容量、电感量及半导体…

在Linux系统上安装Git

Git是目前流行的非常好用的版本控制工具,这里介绍两种安装方式,1、yum安装,2、从github上下载最新的源码编译后安装 文章目录一、yum安装二、从GitHub上下载最新的源码编译后安装1、下载tar包2、上传tar包3、解压压缩包4、进入到解压后的文件…

Michael Jordan:当下的AI其实都是伪“AI”

摘要: Michael Jordan认真的解读当下的AI到底是什么?人工智能(AI)是未来的趋势,这句话是技术人员、学者、记者和风险投资家一致赞同的。如同从技术学术领域跨越到普遍行业的许多词语一样,在使用这些词语的时…

如何提升员工体验 助力企业业务增长?这个棘手的问题终于被解决了!

戳蓝字“CSDN云计算”关注我们哦!相信大部分人都经历过入职第一天的手忙脚乱与无所适从,一份新的工作本就是一项全新的挑战,各种设备的安装与链接、安装适应任何新任务的应用流程,以及令人头疼的各种密码,凡此种种都为…

vb 打印机 任意尺寸_创新小黑管“省心省力”惠普Laser NS 1020 智能闪充激光打印机...

对于小型公司、个人工作室或者有打印需求的家庭用户来说,一款优秀的轻巧、便携的打印机必不可少。前不久,惠普推出了全新一代惠普Laser NS 1020打印机,采用突破性的智能闪充碳粉技术,可实现15秒充粉,简便省时&#xff…

隐私与机器学习,二者可以兼得吗?

摘要: 隐私数据与机器学习看似矛盾,其实不然。如何有效保护机器学习训练中的隐私数据?谷歌专家给出了答案——PATE框架,就算你不太懂隐私保护的知识,也可以通过PATE框架来保护机器学习里的训练数据。最近关于互联网隐私…