【压缩率3000%】上交大ICCV:精度保证下的新型深度网络压缩框架

简介:


image

上海交通大学人工智能实验室的研究人员提出了一种新的方法,能够在保证网络模型精度的前提下对深度网络进行压缩。相关论文已被ICCV 2017接收,由上海交通大学人工智能实验室李泽凡博士实现,倪冰冰教授,张文军教授,杨小康教授,高文院士指导。

随着人工智能在各个领域的应用中大放异彩,深度学习已经成为街头巷尾都能听到的词汇。然而,网络越来越深,数据越来越大,训练越来越久,如何在保证准确率的情况下加速网络,甚至让网络在CPU或者移动设备上进行训练与测试,就变成了迫在眉睫的问题。

上海交通大学人工智能实验室的研究人员发表了论文《基于高阶残差量化的高精度网络加速》(Performance Guaranteed Network Acceleration via High-Order Residual Quantization),提出一种新的方法,能够在保证网络模型精度的前提下对深度网络进行压缩。实验结果,他们将网络的大小降低了约32倍,速度上有30倍的提升。虽然以往的方法在体积和速度上也曾经取得类似的效果,但本论文提出的方法在精度保证上更胜一筹。

image

新的压缩方法HORQ:加快网络计算的同时保证准确率

除了网络pruning,网络稀疏近似等等,网络二值化也是常见的网络加速方式。通常情况下,我们用 +1 和 -1 来代替原来的浮点数数值,使得卷积中的乘法操作变成加减操作,而如果输入和权重同时二值化,乘法操作就会变成异或操作。

这看似是一种合理的网络压缩方式,然而如果单纯的运用阈值二值化方法对网络输入进行二值化处理,那么模型最后的精度将无法得到保证。但如果不运用二值化方法对网络进行加速,那么就又无法利用二值化所带来的在计算和存储方面的优势。

这篇文章提出的HORQ(High Order Residual Quantization)方法,提出了一种针对输入的高阶残差二值量化的方法,既能够利用二值化计算来加快网络的计算,又能够保证训练所得的二值化网络模型拥有较高的准确率。

图一展示了如何用HORQ方法将一个普通的卷积层进行残差量化。


image
图一 HORQ结构

之前的二值化方法,例如XNOR,对输入简单地采用了阈值量化的操作。这样的方法可以看成是对浮点数的一阶二值近似方法。在此之上,本文运用递归阈值量化的方法,提出了HORQ的框架。具体来讲,如图一所示,在第一次阈值量化操作后,我们可以定义并计算改阶近似对应的残差,然后对该阶残差进行新一轮的二值近似。通过对高阶残差的近似,我们可以得到对应于不同尺度下的二值feature map。将这些feature map相加,便可得到最终的输出。

实验结果

这篇文章的实验部分在MNIST和CIFAR-10数据集上进行测试,发现HORQ-net对比之前对输入简单采取一阶阈值二值化的方法有喜人的优势:

image
图二 MNIST实验


image
图三 Cifar-10实验

我们发现,对于二阶残差量化方法,该方法将网络的大小降低了约32倍,同时速度上有30倍的提升,相比XNOR-net在两个MNIST和CIFAR-10上测试准确率均有提升,并且展现出了可在CPU上进行网络训练的潜能。

image
图四 HORQ方法加速比性能分析


image
图五 HORQ方法加速比与量化阶数分析

HORQ方法对卷积层计算的的加速比跟卷积核大小,feature map数量,以及残差量化的阶数都有较大关系。这些关系体现在图四和图五中。而且,如图六所示,基于二值化的模型存储空间可以得到大幅度的降低。

结语

该论文提出的HORQ方法可以作为一个基础的二值量化的方法,用于网络的输入二值化中,能够在保证网络模型精度的前提下,利用二值量化的技术提升网络的计算速度,而且同时可以根据实际的硬件需要来调整残差阶数以适应需求。

这个方法有着很大的发展和使用前景。对于一般的深度学习网络,HORQ方法能能够很大程度上加速深度网络的计算速度。由于网络的每层输入的输入和权值都被二值化,模型的前向传播时间得到大大降低,同时存储模型所需的空间得到大大压缩,使得在资源受限的小运算平台,例如手机和笔记本上运行大规模深度网络模型成为可能。另外,高阶残差量化的方法能够使得网络精度的得到保证,使得网络不再会因为简单二值化方法而出现精度大幅下降。

该论文已经被ICCV2017接收,由上海交通大学人工智能实验室李泽凡博士实现,倪冰冰教授,张文军教授,杨小康教授,高文院士指导。

来源:新智元
原文链接

相关文章
|
2月前
|
监控 安全
从 Racket 语言出发,创新员工网络监控软件的框架
在数字化企业环境中,员工网络监控软件对于保障信息安全和提升效率至关重要。Racket 语言凭借其独特特性和强大功能,为开发创新的监控软件提供了新可能。通过捕获和分析网络数据包、记录员工网络活动日志,甚至构建复杂的监控框架,Racket 能够满足企业的定制化需求,为企业信息安全和管理提供强有力支持。未来,基于 Racket 的创新解决方案将不断涌现。
41 6
|
27天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
77 6
|
2月前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
61 3
|
2月前
|
安全 网络安全 区块链
网络安全与信息安全:构建数字世界的防线在当今数字化时代,网络安全已成为维护个人隐私、企业机密和国家安全的重要屏障。随着网络攻击手段的不断升级,从社交工程到先进的持续性威胁(APT),我们必须采取更加严密的防护措施。本文将深入探讨网络安全漏洞的形成原因、加密技术的应用以及提高公众安全意识的重要性,旨在为读者提供一个全面的网络安全知识框架。
在这个数字信息日益膨胀的时代,网络安全问题成为了每一个网民不可忽视的重大议题。从个人信息泄露到企业数据被盗,再到国家安全受到威胁,网络安全漏洞如同隐藏在暗处的“黑洞”,时刻准备吞噬掉我们的信息安全。而加密技术作为守护网络安全的重要工具之一,其重要性不言而喻。同时,提高公众的安全意识,也是防范网络风险的关键所在。本文将从网络安全漏洞的定义及成因出发,解析当前主流的加密技术,并强调提升安全意识的必要性,为读者提供一份详尽的网络安全指南。
|
3月前
|
存储 SQL 安全
网络安全与信息安全:守护数字世界的坚盾在这个高度数字化的时代,网络安全和信息安全已经成为个人、企业乃至国家安全的重要组成部分。本文将深入探讨网络安全漏洞、加密技术以及安全意识的重要性,旨在为读者提供一个全面的网络安全知识框架。
随着互联网技术的飞速发展,网络安全问题日益凸显。从个人信息泄露到企业数据被盗,再到国家安全受到威胁,网络安全事件层出不穷。本文将从网络安全漏洞的定义与分类入手,探讨常见的网络攻击手段;随后深入解析加密技术的原理及其在保护信息安全中的作用;最后强调提升公众与企业的安全意识的重要性,并提出具体的建议。通过综合运用这些知识点,我们可以更好地构建起一道道坚固的防线,守护我们的数字世界。
|
3月前
|
编解码 分布式计算 网络协议
Netty高性能网络框架(一)
Netty高性能网络框架(一)
|
20天前
|
存储 安全 网络安全
网络安全法律框架:全球视角下的合规性分析
网络安全法律框架:全球视角下的合规性分析
33 1
|
28天前
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
57 4
|
28天前
|
网络协议 物联网 API
Python网络编程:Twisted框架的异步IO处理与实战
【10月更文挑战第26天】Python 是一门功能强大且易于学习的编程语言,Twisted 框架以其事件驱动和异步IO处理能力,在网络编程领域独树一帜。本文深入探讨 Twisted 的异步IO机制,并通过实战示例展示其强大功能。示例包括创建简单HTTP服务器,展示如何高效处理大量并发连接。
44 1
|
16天前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架