Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >深度学习模型压缩方法的特点总结和对比

深度学习模型压缩方法的特点总结和对比

作者头像
deephub
发布于 2020-07-21 01:55:06
发布于 2020-07-21 01:55:06
7420
举报
文章被收录于专栏:DeepHub IMBADeepHub IMBA

了解用于深入学习的不同模型压缩技术的需求和特点

不管你是计算机视觉新手还是专家,你可能听说过 AlexNet 于2012年赢得了ImageNet挑战赛。这是计算机视觉发展史上的转折点,因为它表明,深度学习模型能够以前所未有的精度完成非常困难的任务。

但是你是否知道 AlexNet有6.2千万训练参数?

另一个广为人知的模型 VGGNet 则有1.38亿训练参数,是AlexNet 的两倍之多。

我们知道,模型层数越多,那么表现的性能越好,那么是否需要关注和强调参数的数量呢?

知名CNN模型的复杂度和准确度

上述模型在机器视觉领域已经是基准了。但是在现实生产场景中,是否会被人们选择部署呢?你是否在实际应用中使用这些模型?

在回答上述问题之前,我们先了解如下背景知识。物联网装备预测在2030年将达到1.25-5千亿台套的规模,并且其中20%都带有摄像头,这是一个130亿的市场。

物联网摄像头设备包括家庭安全摄像头(如Amazon Ring和Google Nest),当您到家时会打开门或在看到未知的人时通知您,智能车辆上的摄像头可帮助您驾驶,停车场的摄像头在您进出时打开大门,物联网摄像头设备的应用场景十分广泛!其中一些物联网设备已经在某种程度上使用人工智能,而其他设备正在慢慢赶上。

许多现实场景的应用程序需要实时的设备处理能力。自动驾驶汽车就是一个很好的例子。为了使汽车在任何道路上安全行驶,它们必须实时观察道路,如果有人走在汽车前面,必须停车。在这种情况下,需要在设备上实时地处理视觉信息和做出决策。

那么,现在回到之前的问题:我们能否使用前述模型部署到生活场景中?

如果你从事的是计算机视觉领域应用和研究,你的应用程序很可能需要物联网设备。主要的挑战是物联网设备资源受限;它们的内存有限,计算能力低。而模型中可训练的参数越多,其规模就越大。深度学习模型的计算时间随着可训练参数个数的增加而增加。此外,与较少参数的模型相比,所消耗的能量和占用的空间也越大。最终的结果是,当模型很大时,深度学习模型很难在资源受限的设备上部署。虽然这些模型已经成功地在实验室中取得了巨大的成果,但它们在许多实际应用中并不可用。

在实验室,通过昂贵的GPU可以实现模型的高效计算,但是在生产场景中,资金、能源、温度等问题使得GPU的计算方式行不通。尽管将这些模型部署在云端能够提供高计算性能和存储使用性,但是却存在高时延的问题,因此不能满足现实应用的需求。

简而言之,人工智能需要在靠近数据源的地方进行处理,最好是在物联网设备本身进行处理!因此,我们可供选择之一就是:减少模型的规模。

在不影响准确性的前提下,制作一个能在边缘设备约束下运行的更小的模型是一个关键的挑战。因为仅仅拥有一个可以在资源受限的设备上运行的小模型是不够的,它应该无论是在准确性和计算速度方面都具有很好的性能。

接下来将介绍几种降低模型规模的方法。

剪枝(Pruning)

修剪通过删除对性能不敏感的冗余、不重要的连接来减少参数的数量。这不仅有助于减小整个模型的大小,而且节省了计算时间和能耗。

剪枝

好处

  • 可以在训练时和训练后执行该操作
  • 可以改善给定模型的计算时间/模型规模
  • 既可以用于卷积网络,也可以用于全连接层

不足

  • 相较于直接修改模型结构,剪枝的效果稍逊一筹
  • 对于 TensorFlow模型,往往只能减小模型规模,但是不能降低计算时间

原始模型和修剪模型的计算速度、规模差异

量化权值(Quantization)

在DNN中,权重存储为32位浮点数字。量化是通过减少比特数来表示这些权重的思想。权重可以量化为16位、8位、4位甚至1位。通过减少使用的比特数,深度神经网络的规模可以显著减小。

二进制量化

好处

  • 可以在训练时和训练后执行该操作
  • 既可以用于卷积网络,也可以用于全连接层

不足

  • 量化权值使得神经网络更难收敛。为了保证网络具有良好的性能,需要较小的学习速率
  • 量化权重使得反向传播不可行,因为梯度不能通过离散神经元反向传播。需要使用近似方法来估计损失函数相对于离散神经元输入的梯度
  • TensorFlow的量化感知训练在训练过程中不做任何量化。训练期间只收集统计数据,用于量化训练后的数据。

知识蒸馏(Knowledge distillation)

在知识蒸馏中,一个大型的、复杂的模型是在一个大型数据集上训练的。当这个大的模型能够对看不见的数据进行泛化并表现良好时,它就被传输到一个较小的网络中。较大的网络模型也称为教师模型,较小的网络也称为学生网络。

知识蒸馏

好处

  • 如果你有一个预先训练好的教师网络,训练较小的(学生)网络所需的训练数据较少。
  • 如果你有一个预先训练好的教师网络,训练较小的(学生)网络所需的时间很短。
  • 可以缩小一个网络而不管教师和学生网络之间的结构差异。

不足

  • 如果没有预先选练好的教师模型,那么训练学生模型将需要大规模的数据集和较长时间。

选择性注意(Selective Attention)

选择性注意是指把注意力集中在感兴趣的对象或元素上,而抛弃其他对象(通常是背景或其他与任务无关的对象)。它的灵感来自人眼生物学机制。当我们看东西的时候,我们一次只关注一个或几个物体,其他的区域就会模糊。

选择性注意

这就需要在你现有的人工智能系统上添加一个选择性的注意力网络。

好处

  • 更短的计算时间
  • 规模更小的模型(通过这一方法生成的人脸识别器只有44KB大小)
  • 精度保障

不足

  • 只支持从头开始的训练

低秩分解

利用矩阵/张量分解来估计信息参数。一个(m,n)维且秩为r的权矩阵A被更小维的矩阵代替。这种技术有助于将大矩阵分解成更小的矩阵。

低秩分解

好处

  • 可被用于训练阶段和训练后
  • 可被用于卷积网络,也可用于全连接层
  • 用于训练阶段时,可以降低训练时间

最棒的是,所有这些技术是相辅相成的。它们可以按原样应用,也可以与一种或多种技术相结合。通过使用剪枝、量化和Huffman编码三级流水线来减小预训练模型的大小,在ImageNet数据集上训练的VGG16模型从550MB降到了11.3MB。

上面讨论的大多数技术都可以应用于预先训练的模型,作为后处理步骤,可以减小模型大小并提高计算速度。但它们也可以在训练期间使用。量化越来越受欢迎,现在已经被引入机器学习框架。我们可以预期修剪很快也会被引入流行的框架中。

在本文中,我们研究了将基于深度学习的模型部署到资源受限设备(如物联网设备)的动机,以及减小模型大小以使其适应物联网设备而不影响准确性的需求。我们还讨论了一些现代技术压缩深度学习模型的利弊。最后,我们谈到了每一种技术可以单独应用,也可以组合使用。

引用

  1. https://towardsdatascience.com/machine-learning-models-compression-and-quantization-simplified-a302ddf326f2
  2. Buciluǎ, C., Caruana, R., & Niculescu-Mizil, A. (2006, August). Model compression. In Proceedings of the 12th ACM SIGKDD international conference on Knowledge discovery and data mining (pp. 535–541).
  3. Cheng, Y., Wang, D., Zhou, P., & Zhang, T. (2017). A survey of model compression and acceleration for deep neural networks. arXiv preprint arXiv:1710.09282.
  4. http://mitchgordon.me/machine/learning/2020/01/13/do-we-really-need-model-compression.html
  5. https://software.intel.com/content/www/us/en/develop/articles/compression-and-acceleration-of-high-dimensional-neural-networks.html
  6. https://towardsdatascience.com/the-w3h-of-alexnet-vggnet-resnet-and-inception-7baaaecccc96
  7. https://www.learnopencv.com/number-of-parameters-and-tensor-sizes-in-convolutional-neural-network/
  8. Véstias, M. P. (2019). A survey of convolutional neural networks on edge with reconfigurable computing. Algorithms, 12(8), 154.
  9. https://technology.informa.com/596542/number-of-connected-iot-devices-will-surge-to-125-billion-by-2030-ihs-markit-says
  10. https://www.cisco.com/c/dam/en/us/products/collateral/se/internet-of-things/at-a-glance-c45-731471.pdf
  11. Mohan, A., Gauen, K., Lu, Y. H., Li, W. W., & Chen, X. (2017, May). Internet of video things in 2030: A world with many cameras. In 2017 IEEE International Symposium on Circuits and Systems (ISCAS) (pp. 1–4). IEEE.
  12. Blalock, D., Ortiz, J. J. G., Frankle, J., & Guttag, J. (2020). What is the state of neural network pruning?. arXiv preprint arXiv:2003.03033.
  13. Guo, Y. (2018). A survey on methods and theories of quantized neural networks. arXiv preprint arXiv:1808.04752.

作者:Sabina Pokhrel

deephub翻译组 Oliver Lee

DeepHub

微信号 : deephub-imba

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DeepHub IMBA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AI综述专栏 | 深度神经网络加速与压缩
在科学研究中,从方法论上来讲,都应先见森林,再见树木。当前,人工智能科技迅猛发展,万木争荣,更应系统梳理脉络。为此,我们特别精选国内外优秀的综述论文,开辟“综述”专栏,敬请关注。
马上科普尚尚
2020/05/14
1.7K0
AI综述专栏 | 深度神经网络加速与压缩
模型压缩:量化、剪枝和蒸馏
👆关注“博文视点Broadview”,获取更多书讯 近年来,BERT 系列模型成了应用最广的预训练语言模型,随着模型性能的提升,其参数规模不断增大,推理速度也急剧提升,导致原始模型必须部署在高端的GPU 显卡上,甚至部分模型需要多块显卡才能正常运行。 在移动智能终端品类越发多样的时代,为了让预训练语言模型可以顺利部署在算力和存储空间都受限的移动终端,对预训练语言模型的压缩是必不可少的。本文将介绍针对BERT(以Transformer Block 堆叠而成的深度模型)的压缩方法。 01 BERT模型分析
博文视点Broadview
2023/05/06
1.6K0
模型压缩:量化、剪枝和蒸馏
AI模型的效率优化
随着人工智能(AI)技术的快速发展,AI模型的应用范围不断扩大,尤其是在计算资源有限的设备上,如移动设备、物联网(IoT)设备以及边缘计算环境中,AI模型的计算效率和存储需求变得至关重要。为了确保这些模型能够在资源受限的环境中高效运行,模型的效率优化成为了研究和应用的关键问题。
LucianaiB
2025/02/04
2090
当前深度神经网络模型压缩和加速方法速览
导读: 本文全面概述了深度神经网络的压缩方法,主要可分为参数修剪与共享、低秩分解、迁移/压缩卷积滤波器和知识精炼,本论文对每一类方法的性能、相关应用、优势和缺陷等进行独到的分析。机器之心简要介绍了该论文,更详细的内容请查看原论文。 大型神经网络具有大量的层级与结点,因此考虑如何减少它们所需要的内存与计算量就显得极为重要,特别是对于在线学习和增量学习等实时应用。此外,近来智能可穿戴设备的流行也为研究员提供了在资源(内存、CPU、能耗和带宽等)有限的便携式设备上部署深度学习应用提供了机会。高效的深度学习方法可以
企鹅号小编
2018/01/09
2K0
当前深度神经网络模型压缩和加速方法速览
模型压缩和优化板块上线
模型优化与压缩涉及到紧凑模型的设计,量化与剪枝以及相关的工业界使用技巧共3个大方向。最近会集中上线一些内容,已有内容欢迎大家预览。
用户1508658
2019/08/26
6980
模型压缩和优化板块上线
帮BERT瘦身!我们替你总结了BERT模型压缩的所有方法
2018年10月,Google AI团队推出了Bert,可以说Bert一出生就自带光环。
大数据文摘
2019/12/06
1.2K0
卷积神经网络的压缩和加速
我们先来看看当前深度学习平台中,卷积层的实现方式,其实当前所有的深度学习平台中,都是以矩阵乘法的方式实现卷积的(如图1左侧):
SIGAI学习与实践平台
2018/06/26
4K6
卷积神经网络的压缩和加速
如何让你的深度神经网络跑得更快
由于内存和计算能力有限,随着网络变得越来越深,对包括移动设备在内的有严格时延要求的有限资源平台而言,神经网络压缩就成为一个关键问题。就降低性能和加快深度网络之间达到平衡,引发了很多研究。本文将作为能够高效利用资源的深度网络的压缩、加速的引言介绍。
AI研习社
2018/10/24
1K0
如何让你的深度神经网络跑得更快
【科普】联邦知识蒸馏概述与思考
随着深度学习与大数据的进一步发展,效果好的模型往往有着较大的规模和复杂的结构,往往计算效率与资源使用方面开销很大,无法部署到一些边缘设备、移动终端或者嵌入式设备上。因此,如何在保证模型性能的前提下减少模型的参数量以及加快模型前向传播效率,这是一个重要的问题,总的来说不同的模型压缩与加速技术具体可以分为以下四类:
CV君
2022/03/30
1.4K0
【科普】联邦知识蒸馏概述与思考
使用Python实现深度学习模型:知识蒸馏与模型压缩
在深度学习领域,模型的大小和计算复杂度常常是一个挑战。知识蒸馏(Knowledge Distillation)和模型压缩(Model Compression)是两种有效的技术,可以在保持模型性能的同时减少模型的大小和计算需求。本文将详细介绍如何使用Python实现这两种技术。
Echo_Wish
2024/07/05
1880
模型压缩
深度学习让计算机视觉任务的性能到达了一个前所未有的高度。但,复杂模型的同时,带来了高额的存储空间、计算资源消耗,使其很难落实到各个硬件平台。
机器学习AI算法工程
2021/09/02
1.2K0
模型压缩
边缘计算 | 在移动设备上部署深度学习模型的思路与注意点 ⛵
本文介绍AI模型适用于小型本地设备上的方法技术:压缩模型参数量,设计更小的模型结构,知识蒸馏,调整数据格式,数据复用等,并介绍移动小处理设备的类型、适用移动设备的模型框架等。
ShowMeAI
2022/08/26
1.6K0
边缘计算 | 在移动设备上部署深度学习模型的思路与注意点 ⛵
初探大模型压缩
【引】感谢大家对联想AIPC的关注!大模型在智能终端上应用使AI更方便地服务于我们的工作和生活,《从苹果智能看端上大模型应用》为我们提供了参考。
半吊子全栈工匠
2024/11/07
1690
初探大模型压缩
深度学习模型压缩与加速综述
http://www.tensorinfinity.com/paper_167.html
SIGAI学习与实践平台
2019/06/13
1.4K0
所有你要知道的 BERT 模型压缩方法,都在这里!
模型压缩可减少受训神经网络的冗余,由于几乎没有 BERT 或者 BERT-Large 模型可直接在 GPU 及智能手机上应用,因此模型压缩方法对于 BERT 的未来的应用前景而言,非常有价值。
AI科技评论
2020/03/04
9870
所有你要知道的 BERT 模型压缩方法,都在这里!
开源 | Intel发布神经网络压缩库Distiller:快速利用前沿算法压缩PyTorch模型
项目地址:https://github.com/NervanaSystems/distiller/
机器之心
2018/07/26
1.8K0
开源 | Intel发布神经网络压缩库Distiller:快速利用前沿算法压缩PyTorch模型
精品连载 | “深度学习与计算机视觉”学习笔记——发展篇
首先是图像生成,前面所讲的图像风格迁移也算一种图像生成,以往的模型都是输入图片,提取特征,输出类别等,而这类模型是输入(从卷积层得到的中间)特征,输出对于这种特征的图片。因此,广义上其是在无需任何图像的输入场景下,从零生成与目标相似而又不同的图像。
灯塔大数据
2020/07/16
5580
精品连载 | “深度学习与计算机视觉”学习笔记——发展篇
加速 BERT 模型有多少种方法?从架构优化、模型压缩到模型蒸馏最新进展详解!
原文链接:https://blog.inten.to/speeding-up-bert-5528e18bb4ea
AI科技评论
2019/10/31
1.3K0
加速 BERT 模型有多少种方法?从架构优化、模型压缩到模型蒸馏最新进展详解!
【AI系统】模型压缩基本介绍
随着神经网络模型的复杂性和规模不断增加,模型对存储空间和计算资源的需求越来越多,使得部署和运行成本显著上升。模型压缩的目标是通过减少模型的存储空间、减少计算量或提高模型的计算效率,从而在保持模型性能的同时,降低模型部署的成本。模型压缩的目标可以概括为以下几点:
用户11307734
2024/12/05
1390
深度学习模型压缩与加速综述
目前在深度学习领域分类两个派别,一派为学院派,研究强大、复杂的模型网络和实验方法,为了追求更高的性能;另一派为工程派,旨在将算法更稳定、高效的落地在硬件平台上,效率是其追求的目标。复杂的模型固然具有更好的性能,但是高额的存储空间、计算资源消耗是使其难以有效的应用在各硬件平台上的重要原因。所以,卷积神经网络日益增长的深度和尺寸为深度学习在移动端的部署带来了巨大的挑战,深度学习模型压缩与加速成为了学术界和工业界都重点关注的研究领域之一。本文主要介绍深度学习模型压缩和加速算法的三个方向,分别为加速网络结构设计、模型裁剪与稀疏化、量化加速。
OpenCV学堂
2019/06/14
8160
深度学习模型压缩与加速综述
相关推荐
AI综述专栏 | 深度神经网络加速与压缩
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档