模型压缩综述 您所在的位置:网站首页 轻量化网络的方法 模型压缩综述

模型压缩综述

2023-10-23 06:32| 来源: 网络整理| 查看: 265

一 卷积神经网络压缩中的知识蒸馏技术综述

        1.目前卷积神经网络压缩和加速的方法主要有以下五种:

                网络剪枝、参数量化、低秩分解、轻量化网络设计、知识蒸馏。

        2.知识蒸馏技术与其他压缩方法的对比

                设计思想:知识蒸馏从充分发掘神经网络的性能潜力出发进行研究。

                作用位置:旨在实现使用层级浅、结构简单的神经网络发挥良好的性能。

                是否改动网络架构: 相比于其他方法压缩出来的杂乱的结构,知识蒸馏可以选择任何一种网络结构整 齐简洁的小型网络作为目标网络,并且不会改变小 型网络的结构。

                实现方法:知识蒸馏通过大型网络(即教师网 络)辅助小型网络(即学生网络)训练的方式,提高学 生网络性能,达到学生网络性能接近教师网络的效 果,实现将教师网络压缩为学生网络的目的。

                意义:通过知识蒸馏获得了层数更浅性能更好的小模型,小模 型更适合部署因为它就是为了快而设计的,并且小模型并不需要花很多时间去调参,不需要特定的硬件就能直接实现模型加速。因此知识蒸馏逐渐发展为网络轻量化方法的一个热点分支。

        3.网络压缩方法对比 

        4.根据蒸馏位置的不同,把知识蒸馏划分为:(1)基于softmax输出层的知识蒸馏 (2)基于中间层的知识蒸馏

           其他代表性的方法:(1)基于相关性知识的知识蒸馏 (2)结合生成对抗网络(generative adversarial networks,GAN)的知识蒸馏

二 紧凑的神经网络模型设计研究综述

        1.根据运算方式的不同,将模型设计分为:(1)基于空间卷积运算的模型设计 (2)基于移位卷积运算的模型设计        

        2.常用的空间卷积运算主要有:标准卷积、分组卷 积(group convolution)、逐点卷积(pointwise convolution)和膨胀卷积(dilated convolution)。

        3.移位卷积运算主要有:标准移位、分组移位(grouped shift)、主动移位(active shift)和稀疏移位(sparse shift)。

        4.标准移位:(91条消息) shift论文翻译_YueYuenum的博客-CSDN博客

        5.意义:移位运算是将通道向一个方向进行移位,移位 内核中存储移位方向信息。逐点卷积运算主要是对 移位运算后的信息进行“混合”。与深度卷积不同, 移位运算本身不需要参数或浮点运算,它仅是一系 列内存方面操作,而逐点卷积运算占用了大部分的 参数和浮点运算操作。

        1.基于空间卷积的模型设计 MobileNetV2

        1.卷积计算量近似等于卷积核的高 x 卷积核的宽 x 卷积核的channel x 输入特征矩阵的高 x 输入特征矩阵的宽(这里假设stride等于1) 

        2.图来自(91条消息) MobileNet(v1、v2)网络详解与模型的搭建_霹雳吧啦Wz-CSDN博客

 

         MobileNetV2创新点在于采用MobileNetV1的深度可分离卷积作为基础运算单元,降低了模型的大小,引入了线性瓶颈和反向残差结构,保证了信息的完整性,有效地解决了梯度消失等问题。但在应用中存在一定局限性,网络尺寸大小应高于一定数值, 即网络通道数量不应设置过少,否则会导致信息传 递过程中丢失过多信息,进而大幅度降低精确度。

ShuffleNetV2

 

        1.ShuffleNetV2的创新点在于采用了 Channel Shuffle操作,来提高组间的信息交换。此外,提出了轻量级网络结构设计的四项实用准则:一是输入通道数 与输出通道数保持相等可以最小化内存访问成本; 二是分组卷积中使用过多的分组会增加内存访问成 本;三是网络结构太复杂(分支和基本单元过多)会降低网络的并行程度;四是元素级别的操作消耗不 能够忽视。但 ShuffleNetV2 模型对内存访问效率提出了更高的需求,内存访问效率直接影响 Channel Shuffle的运行速度,进而改变网络预测快慢。

        2.感受野计算公式:Kr =(K - 1)× r + 1。

ESPNetV2 (efficient spatial pyramid)

        1.gridding artifacts(网格伪影)

         2.ESPNetV2创新点在于提出了深度可膨胀可分离 卷积代替深度可分离卷积的方法,并采用层次特征融 合(hierarchical feature fusion,HFF),消除 gridding artifacts问题,降低了网络计算复杂度,提高了网络的感 受野。但在应用中,膨胀率r不会随着输入图像分辨率 的大小而改变,需要根据经验设置膨胀率数值大小。 

       2. 基于移位卷积的模型设计 ShiftNet解读模型压缩4:你一定从未见过如此通俗易懂的模型压缩Shift操作解读 - 知乎 (zhihu.com)

 

 

        ShiftNet 创新点在于提出了使用移位运算和逐 点卷积代替空间卷积完成聚合空间信息的方法,利用移位运算本身不需要参数和计算的优势,有效地减少了计算复杂度和参数量。同时,为了提高网络的训练效率,采用了分组移位的方法,减少了状态空 间的大小。此外,网络的基础模块引入扩展因子 ε, 用于均衡网络大小和准确度。但 ShiftNet 在实际应用中仍有限制,模型训练时间相对较长,而且训练结果未必为最优值。

As-ResNet?Constructing Fast Network through Deconstruction of Convolution (neurips.cc)

        As-ResNet 的创新点在于使用主动移位替代空 间卷积,并以此设计了主动移位层(ASL),将移位运算量化为具有参数的函数,而且可以通过反向传播来学习移位量,能够模仿各类型卷积运算。但 As-ResNet 中移位运算依靠于内存操作,其直接影响网络运行效率,选用合适的硬件设备十分重要。

FE-Net

 

        FE-Net的创新点在于引入了SSL,能够快速准确 地建立神经网络,减少了无意义的移位操作;随后采 用量化感知的移位学习方法,保证移位卷积的可学 习性,同时避免了推理过程中的插值;最后根据 SSL 的特点,设计了一个紧凑的神经网络。FE-Net 尺寸不能设置过小,该方式不仅导致稀疏层无效化,而且 影响信息传递的完整性。

ps: FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。

        FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。

注意在深度学习中,我们用的是FLOPs,也就是说计算量,即用来衡量算法/模型的复杂度。

 提高:

1.SE模块(squeeze and-excitation)(91条消息) SE模块详解_Mounsey的博客-CSDN博客_se模块         

        一般放置于基本构建块的输出位 置,利用通道间的相关性,强化重要通道的特征,提升准确度。虽然SE模块可以提高原有网络的准预测 准确度,但会降低一定运行速度。因而,这一方法仅 适用于提高网络准确性,具体使用还需权衡。

2.神经网络架构搜索(neural architecture search, NAS)

        是近年来提出的自动化设计神经网络的方法, 可自动设计网络结构。在网络架构搜寻前,需要对卷积层、卷积单位和卷积核的大小等参数进行预先设定,随后使用预设定的参数在一个巨大的网络空间上搜寻。其中文献对 MobileNetV2 进行了改进,并取得了良好的效果,但对资源消耗量较 大,有一定的局限性。对于资源较为充沛设计人员, 不失为一种设计轻量化模型的好方法。

三 深度学习的轻量化神经网络结构研究综述

 深度压缩:使用修剪、训练量化和霍夫曼编码压缩深度神经网络:(以后看)[1510.00149v4] 深度压缩:使用修剪、训练量化和霍夫曼编码压缩深度神经网络 (arxiv.org)

介绍: 神经网络既是计算密集型的,也是内存密集型的,这使得它们难以部署在硬件资源有限的嵌入式系统上。为了解决这一限制,我们引入了"深度压缩",这是一个三阶段的管道:修剪,训练有素的量化和霍夫曼编码,它们共同作用,将神经网络的存储需求降低35倍到49倍,而不会影响它们的准确性。我们的方法首先通过仅学习重要的连接来修剪网络。接下来,我们量化权重以强制权重共享,最后,我们应用霍夫曼编码。在前两个步骤之后,我们重新训练网络以微调剩余的连接和量化的质心。修剪,将连接数减少9倍至13倍;然后,量化将表示每个连接的位数从 32 减少到 5。在 ImageNet 数据集上,我们的方法将 AlexNet 所需的存储空间减少了 35 倍,从 240MB 减少到 6.9MB,而不会降低准确性。我们的方法将VGG-16的大小从552MB减小了49倍到11.3MB,同样没有损失准确性。这允许将模型安装到片上SRAM缓存中,而不是片外DRAM存储器中。我们的压缩方法还有助于在应用程序大小和下载带宽受到限制的移动应用程序中使用复杂的神经网络。在 CPU、GPU 和移动 GPU 上进行基准测试,压缩网络的分层加速速度提高了 3 到 4 倍,能效提高了 3 到 7 倍。

CHENG 等[16-17] 对近年来提出的模型压缩方法进行了 综述:[16] CHENG Y,WANG D,ZHOU P,et al. A survey of model compression and acceleration for deep neural networks[EB/OL]. [2021-01-12]. https://arxiv. org/abs/1710. 09282. [17] DENG L,LI G,HAN S,et al. Model compression and hardware acceleration for neural networks:a comprehensive survey[J]. Proceedings of the IEEE,2020,108(4):485-532.

        分组卷积仅需原有 1/G 的参数。

        1 人工设计的轻量化方法

Xception

 

        Xception 模 块 与 深 度 可 分 离 卷 积 的 不 同 之 处 在于:

        1)深度可分离卷积先进行同一平面卷积得到 空间相关性,再在不同通道之间进行卷积得到通道 相 关 性 ,而 Xception 模 块 采 用 相 反 的 方 法 ,先 得 到 通 道 之 间 的 相 关 性 ,再 学 习 空 间 相 关 性 ;

         2)Xception 在 空 间 相 关 性 和 通 道 相 关 性 的 学 习 过 程中未使用激活函数,实验证明这一改进有效地加快了收敛速度,提升了网络性能。Xception 网络基于残差网络进行构建 ,但 将 其中的卷积层换成了 Xception模块 。 

        如 图 9 所 示 ,Xception 网 络被分为输入流部分、中间流部分和输出流部分,其中 , ReLU 表示激活函数,SeparableConv 表示深度可分离卷积 ,Maxpool 表示最 大值池化操作 。 Xception 相比 Inception V3 提升了网络运算量并降低了参数量。输入流部分通过下采样模块来降低特征图的空间维度;中间流部分通过优化网络特征提取来学习关联关系;输出流部分将特征进行汇总输出,最终由全连接层进行表达。

基于 Octave 卷积的改进基线网络

        Octave 卷积 是针对这一问题提出的新型卷积方式,将特征图根据不同的频率进行因式分 解,对不同频率的信息进行不同的存储和操作,再在不同频率的信息之间进行信息交换。

        根 据 实 验 效 果 ,Octave 卷 积 可 用 于 ResNet、 GoogLeNet等 基 线 网 络 及 MobileNet、MobileNet V2、ShuffleNet、ShuffleNet V2 等常规轻量化网络进 行网络优化,实现轻量化处理。虽然 Octave 卷积对于存储空间优化效果较好,但是在提高运算速度及效率方面有待进一步提高。

基于 Ghost特征的 GhostNet

        GhostNet 为了使用更低的成本完 成更多的特征映射,采用线性变化得到 Ghost 特征。GhostNet 模块如图 15 所示,其中 Φk表示对初次卷积之后的特征图进行线性变换。首先使用较少的卷积核对输入进行常规卷积,获得通道较少的输出特征并将其作为内在特征图,然后对内在特征图的每个通道进行线性变换,得到其对应的 Ghost 特征图, 最后将内在特征图与 Ghost特征图进行通道连接,取得最终的 GhostNet卷积输出特征。

 

        2 基于神经网络结构搜索的轻量化方法 

 MnasNet:采用分解式层次搜索空间,使用强化学习。

基于混合深度可分离卷积的 MixNet

MixNet 重点研究了卷积核尺寸对网络轻量化 效果的影响,基于此提出混合深度可分离卷积,通过 在同一卷积层中使用不同大小的卷积核,学习不同分辨率的特征,从而提升网络性能。

3 基于自动模型压缩的轻量化方法

        在人工设计的轻量化神经网络结构部分,使用的 轻量化方法多数依赖组卷积、深度可分离卷积等基本 单元组成的块,再通过堆叠这些块来构建网络,由此导 致的局限性就是其中存在极大的偶然性,有很大概率 搜索不到空间的最优解。模型压缩主要分为细粒度修 剪和粗粒度修剪两部分,细粒度修剪针对权重中的冗 余部分进行修改,粗粒度修剪则是针对通道、行列、块 等整个区域按照一定的稀疏率进行压缩。

        剪枝:本质是剪去深度神经网络中不必要的冗余权值和分支,仅保留对于神经网络的目标任务有效用的权值参数。

        权值共享:是使用同一组参数来避免过多参数导致的训练和模型冗余。

        权值量化:旨在用较小的比 特值来表示权值,以达到减少存储量的目的。

        哈夫曼编码: 是将两个权值最低的节点作为左右子树形成新的节点,再选取两个权值最低的节点作为左右子树形成新的节点,以此类推,达到根据使用频率来最大化节省存储空间的目的。

自动机器学习

        为减少在传统机器学习中特征提取、模型选择、 参数调试等方面的人工干预[42-44],YAO 等提出自动机器学习(AutoML)技术。AutoML 的通用计算公 式如下:

        max(配置学习目标的性能 )

        s.t. 无人工干预及有限的计算资源 

        自动特征工程的目的是自动发掘并构造相关特征 来优化模型性能,包括自动选择最优参数、自动选择最优方法。除此之外,还包含特征选择、特征降维 、 特征生成 、特征编码 等特定的特征增强方法。 这些方法在自动机器学习领域有很大的发展空间。

基于 AutoML 的模型压缩

         AMC 利用增强学习方法自动搜索设计空间,对于模型压缩的质量相较人工压缩有了质的飞跃。除 此之外,AMC 包含两种不同的奖励方案,在实现模 型 压 缩 的 同 时 ,又 能 保 证 模 型 精 度 ,在 ImageNet、 MobileNet、MobileNet V2、ResNet 和 VGG 上都展现 出了优异的性能。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有