摘要

卷积神经网络(Convolutional Neural network, CNNs)既需要大量的计算,又需要大量的内存,这阻碍了它在移动设备上的应用。受到神经科学文献中相关概念的启发,我们提出了突触修剪:一种数据驱动的方法,用一种新提出的参数类突触强度来修剪输入和输出特征图之间的连接。突触强度的设计是基于它传输的信息量来捕捉连接的重要性。实验结果表明了该方法的有效性。在CIFAR-10上,我们对各种CNN模型的连接进行了修剪,高达96%,这大大减少了尺寸,节省了计算量。对ImageNet的进一步评估表明,突触剪枝能够发现有效的模型,这是有竞争力的最先进的紧凑CNNs,如MobileNet-V2和NasNet-Mobile。我们的贡献总结如下:(1)我们引入了突触强度,这是一种新的CNNs参数,用来表明每个连接的重要性。(2)我们的方法可以在不影响精度的前提下,对各种CNNs进行剪枝。(3)进一步调查表明,无论从实证结果还是从理论分析上看,本文提出的突触强度是一种较好的核修剪指标。

1. introduction

近年来,卷积神经网络逐渐成为计算机视觉领域的主流。尽管CNNs性能良好,但其参数数量庞大,对存储和计算的资源需求较大。现代CNNs可以达到数亿个参数和数十亿个操作,这使得部署非常困难。为了缓解上述问题,人们提出了各种方法来提高CNNs的效率。这些方法包括知识蒸馏、低秩分解、网络量化/二值化和权值剪枝。最近的研究表明,CNNs中存在大量的冗余。因此,我们可以通过适当的方案在不影响精度的前提下减小模型的尺寸。
同时,在神经科学文献中,认为人脑存在着大量的冗余。从出生到青春期,突触清除的过程称为突触修剪,去除不必要的神经元结构。修剪过程被认为是至关重要的灵活性所需的适应能力的发展。突触强度是大脑修剪过程中的关键因素。大脑中的突触修剪遵循“用它或失去它”的原则,如果使用突触,则通过增加突触强度来实现,如果不使用突触,则相反。突触强度的主要概念是表示连接将提供多少信息到最终结果(连接将向最终结果提供多少信息)。这是通过对权重和输入数据进行标准化来实现的。生物神经网络与CNNs之间的类比是将中间卷积层产生的特征图的单通道看作一个神经元。假设一个过滤器生成的特征通道包含C个内核和前一层的特征映射(也包含C个通道)。核可以看作是与前C个神经元连接的C突触。因此,去除生物神经网络中的突触相当于断开输入通道及其相应的内核。“zero out”内核很容易实现“断开连接”。因此,我们的突触剪枝产生了内核级的稀疏CNNs

我们在CIFAR-10和ImageNet上对所提出的方法进行了评价。实验表明,与现有的剪枝方法相比,该方法可以获得更高的压缩率,但对性能的影响较小。在CIFAR-10上,我们可以移除高达96%的突触连接而不会降低准确性。在ImageNet上,我们修剪后的ResNet-50在精度和参数方面与最先进的紧凑型模型相比具有竞争力甚至更好的效率。为了获得紧凑性,我们讨论了利用内核级稀疏性进行加速的可行性。特别地,我们指出winograd卷积是加速内核级稀疏模型的理想方法。我们还将我们的方法与最近提出的winograd本地剪枝方法进行了比较。

2 Related works

Network Pruning 网络修剪的思想起源于Yann LeCun和Solla。Han等人在深度学习开始蓬勃发展后,提出对模型中绝对值较小的无用权值进行剪枝,并通过l2正则化和迭代剪枝、细化过程进行训练。他们的模型在权重水平上实现了高稀疏率。它们可以大幅度地减小模型的尺寸,而运行时的加速则需要专门设计的硬件。最近的工作集中在修剪整个过滤器的想法。提出了不同的滤波器重要性指标。Anwar和Sung首先提出在内核级别上对参数进行修剪。它们在MRI任务中实现了存储的节省和加速。Mao等人在不同粒度上应用提出的方法,探索规律性与准确性之间的权衡。Wen等人建议学习结构化稀疏。他们使用组lasso正则化来修剪整个行或列的权矩阵.
Liu等人在批量归一化层中利用L1归一化比例因子来学习信道修剪的重要性指标。 Huang和Wang在训练阶段在比例因子上添加了稀疏性正则化和修改后的加速近端梯度。 它们根据比例因子值删除CNN的不重要部分。 我们的突触修剪也以端对端的方式进行,这与这些想法密切相关。 除了L1和L2范数,还提出了一种实用的CNN L0范数正则化方法。 为了实现这一点,它们包括非负随机门的集合。
Neural architecture learning 文献中对优化网络架构进行了深入研究。 Stanley和Miikkulainen提出通过从最小神经网络开始的进化策略同时优化网络类型和参数权重。 最近,钟等人。 Zoph和Le则采用强化学习进行神经体系结构搜索,每一种都训练大量不同的神经网络并将测试准确性作为奖励。与这些方法不同的是,我们的突触修剪从现有的人工设计的CNN开始并学习紧凑的结构 通过“使用它或失去它”的原则。 因此,所提出的方法可以看作是一种架构学习方法。
Irregular connection pattern 最近提出的有效的CNN架构旨在减少两者计算和大小。 这些架构通常在输入和输出特征通道之间进行特殊的连接模式。 非密集连接模式包括深度方向,组卷积,交错组连接。 这些预定义的架构以更高的效率实现了竞争准确性。 黄等。 在训练阶段尝试学习用于小组卷积的输入层。他们对小组人数施加了限制。 相反.突触修剪对连接模式完全没有限制。我们认为这将为模型提供更大的灵活性。

3. Method

3.1 Biological Analogy for CNN

在生物学中,突触强度是轴突和树突之间连通性的量度。 突触强度是一个变化的属性,代表连接的活动性。 如果整个处理过程几乎不使用连接,则突触强度会降低,这最终会导致断开连接。 为了在现代CNN中采用相同的机制,应该回答两个问题:(1)如何在CNN中模拟相同的机制。 (2)如何定义某些连接的有用性。为了回答第一个问题,我们在图2(左)中演示了卷积层。 该卷积层占用3个输入要素通道(绿色)。 它包含2个过滤器,每个过滤器产生一个单个输出特征通道(蓝色),方法是将过滤器中每个内核与内核相应的输入特征通道产生的2D卷积结果相加。 在这里,我们将单个输出特征通道模拟为具有3个树突的生物神经元,每个树突通过2D卷积与自身的轴突(输入特征通道)相关连。 2D卷积的内核决定树突如何处理输入。 图1是特写版本。 “轴突”(左)将作为输入要素通道的信息传递到(右)接收的“树突”。 “树突”利用内核进行卷积。 对于第二个问题,我们引入了一类新的参数来实现突触强度的功能。

3.2 Defifine Synaptic Strength for CNNs

假设输入要素图包含C个通道。 卷积层具有K个滤波器,每个滤镜它由一对一分配给其输入要素通道的C内核组成。 这种卷积操作生成K个输出特征通道。 一般来说,我们有

其中f表示激活函数,xinj中的x表示输入特征图中的第j个通道。 kkc表示第k个过滤器中的第c个内核。 bk是偏差。 批处理归一化(BN)已被大多数现代CNN用作快速收敛和更好的泛化的标准方法。 我们假设目标模型在卷积层之后,非线性之前执行批归一化。 特别是,在训练阶段,BN层使用小批量统计信息对激活分布进行标准化。 假设xin和xout是BN层的输入和输出,B表示小批量数据样本。 BN执行归一化

其中µB和σB是B上方xin中每个元素上计算的平均值和标准偏差值。归一化的激活N(x)通过以γ和β(比例和位移)为参数的可学习仿射变换进行线性变换。我们还假设非线性f是齐次的,这表明对于任何标量a,f(a·x)= a·f(x)。突触强度的定义可以通过对原始模型进行两次修改来得出。首先,我们从BN层中丢弃信道缩放因子γ。其次,我们重新参数化每个单独的内核k。我们将内核分解为k = r·k0,其中r = || k ||表示核的Frobenius范数,k0 = k / || k ||是归一化(单位)核。利用方程式1和2,我们表明修改后的模型具有相同的表示能力。不失一般性,我们认为一个子模块包括与“ BN-f-Conv”。由于BN层中的标准化,卷积层中的偏差项是多余的,因此已从模型中将其丢弃:

我们将突触强度定义为BNs比例因子的产生和内核的Frobenius范数:

公式3至5表示修改后的模型的功能与原始模型相同

3.3 Intuition and Analysis

连接的重要性应通过其提供的信息量来衡量。但是,估计每个枝晶的信息熵效率不高。方差也是不确定性的度量,可以被认为是可以接受的折衷方案。突触强度经过明确设计,可以很好地指示单个内核产生的中间特征的方差,并通过跨C个输入通道的求和立即将其减小。如公式3至5所示,没有比例因子的BN数据分布被内核卷积。在推论时,BN使用批处理均值和方差的平滑版本对每个数据示例进行归一化,这应该接近数据分布的整体统计数据。通过将比例因子整合到突触强度中,我们强制BN输出的方差层保持接近1。因此,突触强度控制数据的方差。另一方面,与内核的卷积无疑会影响特征的方差。我们将内核限制在单位球上。因此,突触强度参数被迫代表数据方差和内核范数的乘积,这使其成为信息的良好指标。

3.4 Optimization

除了分类损失外,我们还对突触施加了稀疏诱导的正则化实力 训练后,我们修剪强度小于阈值τ的突触。最后,我们对修剪后的网络进行微调。 精确地,训练目标函数由

其中xi,yi表示第i个训练数据和标签,W表示模型中所有可训练的权重,l是分类损失,第二和项是引起稀疏的正则化,而s是突触强度。 λ是控制稀疏性约束尺度的标量因子。 我们选择g(s)= | s | 在我们的实验中,由于非平滑点为0,因此使用了次梯度下降

4 Experiments

Dataset 为了评估突触修剪的有效性,我们使用CIFAR-10和ImageNet进行了实验。 CIFAR-10数据集包含50,000个训练示例和10,000个测试示例。 每个示例包含一个10个分辨率为32×32的类的对象绘制。在每个实验中,我们执行标准数据增强,包括随机翻转和随机裁剪。 ImageNet数据集是一个大规模的图像识别基准,其中包含120万张用于训练的图像和50,000张用于验证的图像,每张图像均属于1,000个类别中的一个。 top1和top5的准确性.

4.1 Training Detail

Baseline 我们将要从头开始修剪的所有模型都训练为基准模型。 所有网络均使用动量0.9和重量衰减108 4的随机梯度下降(SGD)进行了优化。 对于CIFAR-10模型,我们以batch size=128训练它们,总共240个epoch。 初始学习率设置为0.1,然后在120和180。 对于ImageNet模型,我们以256batch size大小训练它们,总共100个epoch。 初始学习率设置为0.1,并在30、60和90个epoch开始.
Guidelines for Picking λ 对于CIFAR-10模型,我们选择不同的稀疏正则化率λ如第3.4节中针对不同架构所定义。 对于VGGNet,我们选择λ等于108 4,对于ResNet-18和DenseNet-40,我们选择108 5和5×108 6。 其他设置与CIFAR-10基准模型相同。 对于ImageNet模型,拟合训练数据需要更大的灵活性。 因此,稀疏约束率设置为106。其余设置与基准例程相同。我们的经验经验表明,较高的正则化率将导致修剪更多的内核,而修剪过程没有任何成本。 但是,如果正则化过强,则会降低修剪前的准确性。 一种基本策略是从一个小的λ开始并扩大它,直到模型的性能开始下降.。
Pruning and fifinetune 由于突触强度可以表示其所有者内核从相应输入通道提取的信息,因此我们应用了一种简单的修剪策略,即删除阈值t以下的所有突触连接。修剪的阈值由所需的稀疏度k%决定。网络中至少k%突触强度的值将成为阈值。


根据经验,我们使用不同的k%修剪网络,并考虑其大小和准确性来选择最佳模型。 为了简单起见,我们创建一个掩码,指示剩余的内核。 对于部署,阻止压缩行存储可用于节省内存空间。 如果修剪后发现精度下降,则应进行微调,这需要50个epoch,而CIFAR-10和20则需要20个epoch

4.2 Results on CIFAR

Compared to baseline 我们对突触进行修剪的动机是最大程度地减少CNN的计算和存储成本。以2D内核为单位,我们每个修剪的模型均可实现高达95%的稀疏度,同时与基线相比仍保持相似的准确性。显示了卷积层中参数的节省和FLOP的减少。对于VGGNet和ResNet-18,我们修剪了总突触的96%和90%,而测试精度略有提高。我们将此归因于L1损失提供的正则化效应。即使对于DenseNet-40(一个相对紧凑的模型,它在各层之间进行功能重用),突触修剪仍然可以删除大多数突触(大约80%),而精度损失0.34%。为了减少计算量,突触修剪可以减少多达80%的FLOP。值得注意的是,由于不同的内核和输入大小,FLOP减少的比例小于内核减少。可以基于每层的计算量来调整λ,以缓解该问题。表1显示了修剪后与CIFAR-10上的基线相比得到的模型。图3(左)显示了我们相对于基准模型修剪的连接量。


Compared with other methods 如图3(右)所示,与最新的滤波器级别权重修剪方法相比,对于所有三个模型,突触修剪都具有大约1/3的参数和最多1/2触发器的相似精度。 与最近提出的紧凑型模型CondenseNet相比,我们的模型可以节省30%的参数和50%的计算,而精度下降0.58%。 Condensenet还利用特殊的索引层以及组卷积来利用不规则的连接模式,与分组级修剪相比,这也带来了额外的计算负担

4.3 Results on ImageNet

为了进一步评估较大数据集上突触修剪的性能,我们使用ResNet-50在ImageNet数据集上执行了我们的方法。 与之相比,我们的修剪模型删除了约87%的连接基本模型的准确率仅下降0.6%。 如表2所示,与现有方法相比,我们使用较少的参数获得了更好的精度,同时保持了最低的错误率。 此外,我们在参数编号方面将修剪的模型与最新的紧凑型模型进行了比较,如表3所示。

4.4 Analysis

在本节中,我们首先比较所提出的方法和SSL [32]之间的鲁棒性。 此外,消融研究是通过(1)从突触强度中排除γ和(2)省略内核重新参数化。 最后,我们分析了超参数λ(即稀疏正则化率)的影响(请参见公式7)。 所有实验均使用ResIF-18-18在CIFAR-10上进行。
Sensitivity Wen等。采用group-LASSO正则化将预定义组中的权重推向零,这适用于内核修剪。 内核修剪基于所有层上的全局阈值。 对平均绝对值小于阈值的内核进行修剪。本实验的目的是比较两种方法在不同修剪速率下的鲁棒性。 为了减轻训练中随机性产生的性能差距,而不是准确性,我们通过针对稀疏性的绘图精度下降(由修剪导致)来显示结果。 在每个修剪过程之后执行微调。 结果总结在图4(a)中。 我们绘制的连接的稀疏度为70%,80%,90%,95%,97.5%。 我们的方法从90%的稀疏性开始优于SSL。 从90%到97.5%,两种方法之间的差距变得更大。 要是我们在精度下降不小于1%的情况下,提出的方法可以产生一个内核少2倍的模型。
Ablation 为了执行突触修剪,对原始模型进行了两种修改:(1)丢弃先前批处理规范层γ中的比例因子,(2)将归一化应用于内核并显式参数化内核的L2规范。 我们训练突触修剪的两个变体,每个变体都省略了上述修改之一,以显示其必要性。 我们将训练后的模型(不舍弃比例因子)称为“非固定γ”,将另一个称为“非核范数”。 连接的图稀疏度选择为60%,70%,80%,90%。 从图4(b)所示的精度-稀疏度曲线来看,当修剪率大于80%时,所提方法的完整版本可获得最高的精度。 忽略这些修改中的任何一个都会降低性能。 为了突出差异,不执行微调。

5 Practicability

CNN中的卷积运算通常通过通用矩阵乘积(GEneral Matrix Multiplication,GEMM)进行计算.GEMM的计算例程需要降低权重张量并将输入张量降低到2D矩阵。使用此方法,将内核稀疏层的权重张量转换为“条带”稀疏度量,可以使用gpu上的块稀疏矩阵乘法算法来加速该稀疏度量.
在另一条轨道上,最近在卷积计算中采用的Winograd卷积通过Winograd分解优化2D卷积,并对多个2D卷积求和。 由于在应用Winograd变换后无法保留细粒度的稀疏性,因此已经提出了一些直接在Winograd域中修剪单个权重的工作。 但是,内核级稀疏性在转换为“ winograd域”后仍保持不变。 因此,我们将我们的方法与表4中提出的Winograd直接修剪方法进行了比较。我们的方法可以实现显着更高的稀疏率(大约8倍),几乎准确性没有下降。

6 Conclusion

受人脑内部的突触修剪机制启发,我们引入了称为“突触强度”的一类新参数。 我们证明了使用Synaptic Strength可以在几乎没有成本的情况下实现高修剪。 进一步的分析证明,与现有方法相比,突触修剪是更好的重要指标。 我们将通过探索内核稀疏CNN的有效推理方法来继续研究我们的方法。

Synaptic Strength For Convolutional Neural Network相关推荐

  1. PRN(20200816):A Hierarchical Deep Convolutional Neural Network for Incremental Learning [Tree-CNN]

    Roy D , Panda P , Roy K . Tree-CNN: A Hierarchical Deep Convolutional Neural Network for Incremental ...

  2. 卷积神经网络(Convolutional Neural Network, CNN)

    卷积神经网络(Convolutional Neural Network, CNN) 目录 卷积神经网络(Convolutional Neural Network, CNN) 概述: 结构: 卷积层:

  3. 论文笔记 Inter-sentence Relation Extraction with Document-level Graph Convolutional Neural Network

    一.动机 为了抽取文档级别的关系,许多方法使用远程监督(distant supervision )自动地生成文档级别的语料,从而用来训练关系抽取模型.最近也有很多多实例学习(multi-instanc ...

  4. 二值网络--Optimize Deep Convolutional Neural Network with Ternarized Weights and High Accuracy

    Optimize Deep Convolutional Neural Network with Ternarized Weights and High Accuracy IEEE Winter Con ...

  5. 二值网络--TBN: Convolutional Neural Network with Ternary Inputs and Binary Weights

    TBN: Convolutional Neural Network with Ternary Inputs and Binary Weights ECCV2018 本文的思路就是: 对 weight ...

  6. 模型加速--LCNN: Lookup-based Convolutional Neural Network

    LCNN: Lookup-based Convolutional Neural Network CVPR2017 https://github.com/ildoonet/tf-lcnn https:/ ...

  7. 模型量化--TBN:Convolutional Neural Network with Ternary Inputs and Binary Weights

    TBN:Convolutional Neural Network with Ternary Inputs and Binary Weights ECCV_2018 paper TBN 用 高效的 XO ...

  8. 目标检测--A Unified Multi-scale Deep Convolutional Neural Network for Fast Object Detection

    A Unified Multi-scale Deep Convolutional Neural Network for Fast Object Detection ECCV2016 https://g ...

  9. 快速去阴影--Fast Shadow Detection from a Single Image Using a Patched Convolutional Neural Network

    Fast Shadow Detection from a Single Image Using a Patched Convolutional Neural Network https://arxiv ...

最新文章

  1. Gut:粪便病毒组移植减轻2型糖尿病和肥胖症模型小鼠的相关症状
  2. 抓包概念大比较:数据报、数据包、分组
  3. Mongodb 集群加keyFile认证
  4. bzoj3533 [Sdoi2014]向量集 可持久化凸包+二分
  5. google服务框架
  6. yolov5深度剖析+源码debug级讲解系列(二)backbone构建
  7. 雷达的工作原理示意图_雷达基本理论与基本原理
  8. 在python中查询excel内容
  9. vtk实现一个简易的RubberBand 并求矩形内部hu平均值和最值
  10. 向量的数量积,向量积,混合积及应用
  11. 【2017NOIP普及组】T4:跳房子 试题解析
  12. html页面div的显示/隐藏
  13. OSChina 周日乱弹 —— 阿里爸爸辞职了
  14. 计算机excel怎么添加实线边框,excel中单元格输入内容怎么设置自动加上实线边框...
  15. oracle数据库dba_hist等视图中的Delta相关字段介绍
  16. uniapp调用上一页的方法
  17. 记账后,如何避免误删除账目
  18. 漂亮的PHP网店系统源码(2011年1月更新)
  19. 拿下我人生中第7个Offer,我先收藏为敬
  20. Servlet入门到精通-任亮-专题视频课程

热门文章

  1. 2021年,用更现代的方法使用PGP(下)
  2. cae分析_CAE有限元分析软件的比较
  3. Nginx 配置示例
  4. qt获取本机全部ipv4_QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址...
  5. Spring官方文档解读(五)之自定义 bean 的性质
  6. 《进化心理学》《伊斯坦布尔假期》
  7. C#语言入门、xamarin基础、.NET MAUI全栈开发技术综合笔记
  8. 乐MAX 乐视X900_官方线刷包_救砖包_解账户锁
  9. word 文档标题样式相同、行距效果不同的解决办法
  10. 橄榄油可以用来炒菜吗