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

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

更多深度文章,请关注: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维张量,\(Win R^{Ntimes Ctimes Htimes W}\))对输入数据(3维张量,\(Xin R^{Ctimes Ytimes X}\))进行卷积运算,以提取不同的数据特征,输出结果为一个3维张量(\(Yin R^{Ntimes Y'times X'}\)),其中\(N\)表示卷积核的数量,\(C\)、\(H\)和\(W\)分别表示卷积核的通道数、高度与宽度,\(Y\)、\(X\)与\(Y'\)、\(X'\)分别表示模型输入数据与输出数据的尺度。

稀疏度定义

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

$$ M_{l}=\frac{\sum_{n,c,w,h}\mid k_{l,ncwh}\mid}{N\times C\times W\times H}\tag{1} $$

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

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

$$ S_{l}(n)=\frac{\sum_{c,w,h}\sigma(k_{l,ncwh})}{C\times W\times H}\tag{2} $$

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

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

逐层优化算法

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

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


bd3c9f654c90a5fa703eadeaa7a9eda52e59fa08.png

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

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

$$ weights\ remained(r')=\left[1,\left(r_{1:(L-1)}'\right)^T\right]Dr'\tag{4} $$

其中,向量\(r'=1-r\)表示每个卷积层中剩余卷积核的比例,\(Din R^{Ltimes L}\)为对角矩阵,\(D_{ii}=W_{i}H_{i}C_{i}N_{i}\)表示卷积层\(i\)中所有卷积核的权重数量,向量\(left[1,left(r_{1:(L-1)}'right)^Tright]in R^{1times L}\),其具体形式为\([1,1-r_{1},1-r_{2},dots,1-r_{L-1}]^T\)。

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

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

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

梯度优化算法

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

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


f257d82f9bc231cbcb67a246d89c37b728e8e1fc.png

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

$$ r^{i+1}=r^i-\alpha\frac{\partial D(R(r^i),P)}{\partial r^i}\tag{5} $$


实验结果

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


7bcc56dc7008d362777137bae2a696b3e7b18c1f.png

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


31ec4b50768421091fdf7a51b5d7440831c86a37.png

将测试网络以6、7、7层的方式划分为前、中、后三个部分,逐部分地调整对应的约减因子,实验结果如表2所示。可以看出,在CNN模型剩余参数数量几乎相同的情况下,若将当前6层卷积层对应的约减因子\(r_{front}\)调整为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

相关文章
|
19小时前
|
监控 安全 网络安全
云端防御策略:在云计算时代维护网络安全与信息完整性
【5月更文挑战第14天】 随着企业逐渐将数据和服务迁移至云平台,云计算的便捷性和成本效益显著提升。然而,这种转变也带来了新的安全挑战。本文深入探讨了云服务中的网络安全威胁、信息安全的重要性以及相应的防御机制。我们将分析当前的安全漏洞,提出创新的安全框架,并讨论如何通过综合措施确保数据的保密性、完整性和可用性。我们的目标是为读者提供一套实用的策略,以保护他们在云端的资产不受日益复杂的网络攻击。
|
19小时前
|
存储 安全 网络安全
云端防御战线:云计算环境下的网络安全策略
【5月更文挑战第14天】 在数字化浪潮中,云计算以其灵活性、可扩展性和成本效益成为企业数字化转型的核心。然而,随之而来的是日益复杂的网络安全威胁,这些威胁不仅挑战着传统的安全机制,也对云服务用户的数据隐私和完整性构成了严峻考验。本文旨在探讨云计算环境中网络安全的现状与挑战,并提出一系列针对性的策略来增强云服务的安全性。通过深入分析云计算服务的架构特点,结合最新的安全技术和实践,我们旨在为读者提供一套全面的网络安全解决方案,以确保在享受云计算便利的同时,最大限度地降低安全风险。
|
19小时前
|
云安全 安全 网络安全
云端守卫:云计算中的网络安全与信息保护策略
【5月更文挑战第14天】 在数字化时代,云计算已成为企业获取、存储和处理数据的中枢。随着其应用的普及,网络安全和信息安全问题亦成为亟待解决的挑战。本文将深入探讨云计算环境中面临的安全威胁,并分析现代企业在维护数据完整性、保密性和可用性方面的策略和技术实践。通过案例分析和最新技术动态的探讨,揭示如何在云服务中构建一个坚固的防御体系来对抗日益繁复的安全风险。
|
19小时前
|
机器学习/深度学习 算法 PyTorch
卷积神经网络的结构组成与解释(详细介绍)
卷积神经网络的结构组成与解释(详细介绍)
5 0
|
19小时前
|
安全 物联网 网络安全
网络安全与信息安全:保护数据的关键策略
【5月更文挑战第14天】 在数字化时代,网络安全和信息安全已成为维护个人隐私、企业资产和国家安全的基石。面对日益增长的网络威胁,理解并应对安全漏洞、掌握加密技术以及提升安全意识显得尤为重要。本文将深入探讨当前的网络安全隐患,解析加密技术的工作原理及其重要性,并提出提高个人和组织安全意识的有效方法。我们的目标是通过知识分享,为读者提供一套全面的网络安全自保策略。
|
19小时前
|
安全 算法 网络安全
网络安全与信息安全:防护之道与实战策略
【5月更文挑战第14天】在数字化时代,网络安全与信息安全的重要性不断上升。本文深入探讨了网络安全漏洞的概念、加密技术的应用以及提升安全意识的必要性。文章首先分析了常见的网络威胁和漏洞,然后介绍了现代加密技术的基本原理和实践应用。接着,文中强调了培养安全意识的重要性,并提供了一系列实用的防御措施。最后,文章总结了如何通过综合手段构建坚固的网络安全防线,为个人和企业提供指导性建议。
|
19小时前
|
SQL 安全 网络安全
构建安全防线:云计算环境中的网络安全策略与实践
【5月更文挑战第14天】 随着企业逐渐将关键业务流程迁移到云端,云计算服务的安全性成为不容忽视的重要议题。本文深入探讨了在动态且复杂的云环境中实施有效的网络安全措施的策略和技术。通过分析当前云计算模型中的安全挑战,我们提出了一系列创新的安全框架和防御机制,旨在保护数据完整性、确保业务连续性并抵御不断演变的网络威胁。文中不仅涵盖了理论分析和案例研究,还对未来云计算安全技术的发展趋势进行了预测。
|
19小时前
|
机器学习/深度学习 算法 数据挖掘
深度学习500问——Chapter05: 卷积神经网络(CNN)(4)
深度学习500问——Chapter05: 卷积神经网络(CNN)(4)
8 1
|
19小时前
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习500问——Chapter05: 卷积神经网络(CNN)(3)
深度学习500问——Chapter05: 卷积神经网络(CNN)(3)
8 1
|
19小时前
|
机器学习/深度学习 存储 算法
卷积神经网络(CNN)的数学原理解析
卷积神经网络(CNN)的数学原理解析
31 1
卷积神经网络(CNN)的数学原理解析

热门文章

最新文章