论文导读:面向卷积神经网络的卷积核冗余消除策略

简介: 本篇论文针对卷积神经网络在训练阶段所需的大量存储与计算资源,提出了一种改进的冗余卷积核消除策略,精简每个卷积层中冗余的卷积核,进而降低模型训练开销,使模型训练过程从云端转移至本地成为可能。

更多深度文章,请关注:https://yq.aliyun.com/cloud

研究背景

近几年来,卷积神经网络(Convolutional Neutral Network, CNN)在计算机视觉、自然语言处理以及语音识别等众多领域得到了广泛的应用。然而CNN强大的性能依赖于海量的存储与计算资源。一般来说,CNN通常在离线环境下,使用高性能CPU/GPU集群进行模型训练。然而,出于隐私性、网络延迟以及资源消耗等方面的考虑,我们更倾向于在本地而非远程完成CNN模型的训练。为此,减少CNN网络结构中的参数数量,避免巨大的存储与计算开销就显得尤为重要。

本篇论文对文献《Deep convolutional neural network on ios mobile devices》中提出的卷积核冗余消除思想提出了进一步的优化。深层卷积网络通常使用过参数化的卷积核来提取特征,而这种方式使得不同卷积核间存在不同的稀疏度(Sparsity),部分卷积核的权重参数可能过于稀疏,对模型性能提升的效果有限。我们可以根据一定的阈值来过滤稀疏度较高的卷积核,进而精简CNN网络结构,提高模型运行效率。


研究内容

在CNN的前向传播过程中,卷积核(4维张量,WinRNtimesCtimesHtimesW)对输入数据(3维张量,XinRCtimesYtimesX)进行卷积运算,以提取不同的数据特征,输出结果为一个3维张量(YinRNtimesYtimesX),其中N表示卷积核的数量,CHW分别表示卷积核的通道数、高度与宽度,YXYX分别表示模型输入数据与输出数据的尺度。

稀疏度定义

卷积核的稀疏度根据所处卷积层的权重参数来定义。对于卷积层lMl表示l层中所有卷积核权重参数绝对值的均值,如式(1)所示:

Ml=n,c,w,hkl,ncwhN×C×W×H

其中,n,c,w,h分别表示卷积核在各个维度的下标,l表示卷积核权重k所在的卷积层。

进而,卷积层l中第n个卷积核的稀疏度Sl(n)定义如下:

Sl(n)=c,w,hσ(kl,ncwh)C×W×H

$$ \sigma(x) = \begin{cases} 1, & \text{if $|x|

如果卷积核n的一些权重小于l层中权重的均值,那么Sl(n)会接近于1,这也意味着当前卷积核相比其他卷积核更加冗余。针对这种情况,本篇论文提出了以下两种方法,利用稀疏度对冗余的卷积核进行剪枝。

逐层优化算法

对同一卷积层中的所有卷积核按照稀疏度降序排列,可得有序列表[Sl(1),Sl(2),dots,Sl(N)]。此时,待删除的卷积核数量由约减因子rin[0,1)L决定,其中L表示CNN网络结构中卷积层的数量,ri表示第i层中待删除卷积核的数量比例。

以卷积层l为例,冗余卷积核的精简过程如下图所示。令N=10rl=0.3,此时卷积层l中待删除的卷积核数量为rlN=3,因此,删除l中稀疏度最高的3个卷积核k1k2k3,并使用剩余卷积核生成卷积层l的输出。随后,使用精简后的卷积层训练模型,强化卷积层中剩余的冗余度较低的卷积核,以保证模型能够取得更好的效果。


bd3c9f654c90a5fa703eadeaa7a9eda52e59fa08.png

通过对卷积层中剩余权重参数数量的估计,逐层优化算法能够在满足指定计算开销的前提下,灵活地确定约减因子r

模型的计算开销可通过卷积层中权重参数的数量来粗略估计,经过精简后的卷积层的权重参数可通过如下方式计算:

weights remained(r)=[1,(r1:(L1))T]Dr

其中,向量r=1r表示每个卷积层中剩余卷积核的比例,DinRLtimesL为对角矩阵,Dii=WiHiCiNi表示卷积层i中所有卷积核的权重数量,向量left[1,left(r1:(L1)right)Tright]inR1timesL,其具体形式为[1,1r1,1r2,dots,1rL1]T

灵活确定约减因子r的过程可拆分为两步:首先,在满足指定计算开销的前提下,使用不同的约减因子r精简CNN网络结构,例如rin[0.1,0.6],训练模型并评估模型性能,从结果中挑选出性能最优模型所对应的约减因子rfix

随后,将模型划分为前、中、后三个部分,并针对模型的不同部分各自调整rfixrfix的调整需确保模型整体的计算开销保持不变,评估方式如式(4)所示。通过提高模型某一部分的约减因子并降低其他部分的约减比例,我们可以探究CNN模型中不同部分对模型最终效果的影响。

实验表明,在模型计算开销保持不变的前提下,步骤二相较于步骤一能够带来进一步的性能提升。

梯度优化算法

此外,作者还提出了一种梯度优化算法,基于神经网络构建了一个回归模型,学习约减因子r与CNN网络性能P之间的关系。对于初始值r0,回归模型计算使用r0精简CNN结构后的模型性能,并以此计算模型残差与梯度,以一定的步长alpha更新r0,得到r1,反复迭代这一过程,最终即可获得符合性能要求的最优约减因子roptimized。此时,roptimized能够确保CNN在保持一定性能的前提下,尽可能多地精简其网络结构中冗余的卷积核,提高运行效率。

梯度优化算法的工作流程如下图所示。


f257d82f9bc231cbcb67a246d89c37b728e8e1fc.png

其中,ri表示第i次迭代时约减因子的取值,P表示需满足的性能指标,R(ri)表示约减因子ri对应的CNN网络性能,约减因子r根据式(5)更新:

ri+1=riαD(R(ri),P)ri


实验结果

在实验环节,作者将文献《Accurate image super-resolution using very deep convolutional networks》中使用的残差卷积网络作为测试网络,并以卷积网络输出在峰值信噪比(Peak Signal to Noise Ratio, PSNR)上的损耗作为模型性能的评估标准。测试数据集使用SR Set5times2与Set14times2两种数据集。测试网络结构如下图所示。


7bcc56dc7008d362777137bae2a696b3e7b18c1f.png

表1展示了逐层优化算法在所有卷积层使用相同约减因子情况下的实验结果,可以发现当r取值为0.25时,CNN输出结果的PSNR损耗最低,仅为0.24/0.27,此时CNN网络仅保留了完整结构中56.3%的参数。


31ec4b50768421091fdf7a51b5d7440831c86a37.png

将测试网络以6、7、7层的方式划分为前、中、后三个部分,逐部分地调整对应的约减因子,实验结果如表2所示。可以看出,在CNN模型剩余参数数量几乎相同的情况下,若将当前6层卷积层对应的约减因子rfront调整为0.44,CNN模型的性能能够进一步提升,PSNR损耗从0.24降至0.20。此时,模型三部分的约减比例分别为0.44、0.06、0.25,这也表明在测试网络中,前几层卷积层相对比较冗余,模型后半部分的卷积层在预测过程中发挥着更加关键的作用。


3fd033d4c06dbefcbcd173c9429d5783664ab7ac.png

将PSNR损耗限制在0.25,梯度优化算法的优化过程与结果如表3所示。


a415a61e552be87a80ee69939a7d8653b9e38f7a.png

总结

在本篇论文中,作者就深层卷积网络的卷积核冗余消除策略展开了讨论,提出了两种能够有效约减CNN模型参数的算法:逐层优化算法以及梯度优化算法。前者在移除50%CNN模型参数的同时,仅带来了不足1%的性能损耗;而后者能够根据具体的模型性能指标,自动获得冗余消除策略对应的约减因子。相比于其他卷积核精简领域的研究工作,本篇论文采取的做法更为灵活,更适合应用于结构复杂的卷积网络模型之中。


本文由北邮@爱可可-爱生活老师推荐,阿里云云栖社区组织翻译。

文章原标题《A Kernel Redundancy Removing Policy for Convolutional Neural Network》,作者:Chih-Ting Liu,Yi-Heng Wu,Yu-Sheng Lin与Shao-Yi Chien,译者:6816816151,审阅:爱小乖

文章为简译,更为详细的内容,请查看原文,附件为原文pdf

目录
打赏
0
0
0
2
1807
分享
相关文章
基于GA遗传优化TCN时间卷积神经网络时间序列预测算法matlab仿真
本内容介绍了一种基于遗传算法优化的时间卷积神经网络(TCN)用于时间序列预测的方法。算法运行于 Matlab2022a,完整程序无水印,附带核心代码、中文注释及操作视频。TCN通过因果卷积层与残差连接学习时间序列复杂特征,但其性能依赖超参数设置。遗传算法通过对种群迭代优化,确定最佳超参数组合,提升预测精度。此方法适用于金融、气象等领域,实现更准确可靠的未来趋势预测。
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
93 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
129 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
RT-DETR改进策略【Neck】| ECCV-2024 RCM 矩形自校准模块 优化颈部网络
RT-DETR改进策略【Neck】| ECCV-2024 RCM 矩形自校准模块 优化颈部网络
85 10
RT-DETR改进策略【Neck】| ECCV-2024 RCM 矩形自校准模块 优化颈部网络
基于GA遗传优化TCN-LSTM时间卷积神经网络时间序列预测算法matlab仿真
本项目基于MATLAB 2022a实现了一种结合遗传算法(GA)优化的时间卷积神经网络(TCN)时间序列预测算法。通过GA全局搜索能力优化TCN超参数(如卷积核大小、层数等),显著提升模型性能,优于传统GA遗传优化TCN方法。项目提供完整代码(含详细中文注释)及操作视频,运行后无水印效果预览。 核心内容包括:1) 时间序列预测理论概述;2) TCN结构(因果卷积层与残差连接);3) GA优化流程(染色体编码、适应度评估等)。最终模型在金融、气象等领域具备广泛应用价值,可实现更精准可靠的预测结果。
RT-DETR改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
RT-DETR改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
82 11
PyTorch代码实现神经网络
这段代码示例展示了如何在PyTorch中构建一个基础的卷积神经网络(CNN)。该网络包括两个卷积层,分别用于提取图像特征,每个卷积层后跟一个池化层以降低空间维度;之后是三个全连接层,用于分类输出。此结构适用于图像识别任务,并可根据具体应用调整参数与层数。
123 9

热门文章

最新文章