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

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

更多深度文章,请关注: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

相关文章
|
9天前
|
存储 安全 网络安全
网络安全与信息安全:防御前线的科学与策略
【4月更文挑战第10天】 在数字化时代,数据成为了新的货币,信息流成了掌控权的象征。然而,随着信息技术的迅猛发展,网络安全漏洞、加密技术以及用户的安全意识构成了维护网络空间安全的三大支柱。本文将深入探讨网络安全中存在的风险点,分析加密技术的演进及其在保护数据完整性、机密性方面的重要性,并强调提升个人和组织的安全意识的必要性。通过科学的分析与策略的制定,我们旨在为读者提供一幅全面的网络安全蓝图,以应对日益繁复的网络威胁。
|
10天前
|
安全 网络安全 数据安全/隐私保护
网络堡垒的构建者:洞悉网络安全与信息安全的深层策略
【4月更文挑战第9天】在数字化时代,数据成为了新的价值核心。然而,随之而来的是日益复杂的网络安全威胁。从漏洞利用到信息泄露,从服务中断到身份盗用,攻击手段不断演变。本文深入剖析了网络安全的关键组成部分:识别和防范安全漏洞、加密技术的应用以及提升个体和企业的安全意识。通过探讨这些领域的最佳实践和最新动态,旨在为读者提供一套全面的策略工具箱,以强化他们在数字世界的防御能力。
|
26天前
|
存储 安全 网络安全
云端防御策略:融合云服务与网络安全的未来之路
在数字化浪潮的推动下,企业纷纷转向云计算以获取灵活性、可扩展性和成本效益。然而,随之而来的是日益复杂的网络威胁,它们挑战着传统的安全边界。本文将探讨如何通过创新的云服务模型和先进的网络安全措施来构建一个既可靠又灵活的安全框架。我们将分析云计算环境中的关键安全挑战,并提出一系列针对性的策略来加强数据保护,确保业务连续性,并满足合规要求。
28 2
|
27天前
|
监控 安全 网络安全
云端防御战线:云计算中的网络安全与信息保护策略
在数字化时代,云计算为企业提供了弹性、可扩展的资源解决方案,但同时也带来了复杂的安全挑战。本文深入探讨了在云服务框架下,网络安全和信息保护的重要性,分析了当前云平台面临的主要安全威胁,并提出了一系列创新的防护机制。从数据加密到访问控制,再到持续监控与合规性管理,文章不仅阐述了各项技术的原理与实施策略,还讨论了如何构建一个多层次、动态的安全体系来保障云环境中的数据完整性和服务可靠性。
|
23天前
|
存储 安全 网络安全
云计算与网络安全:新时代的技术挑战与应对策略
随着云计算技术的快速发展,网络安全问题变得愈发突出。本文探讨了云服务、网络安全以及信息安全在当今技术领域面临的挑战,并提出了相应的解决方案。通过分析现状和未来趋势,可以更好地了解云计算与网络安全的关系,为构建安全可靠的云服务提供参考。
|
4天前
|
监控 安全 网络安全
云端防御:云计算环境中的网络安全策略与实践
【4月更文挑战第15天】 在数字化转型的时代,云计算已成为企业运营不可或缺的技术支撑。然而,随着云服务模式的广泛采纳,网络安全挑战亦随之而来。本文深入探讨了云计算环境下的安全威胁,分析了云服务模型对安全策略的影响,并提出了一系列创新的网络安全防护措施。通过研究最新的加密技术、访问控制机制和持续监控方法,文章旨在为企业提供一个综合性的网络安全框架,以确保其云基础设施和数据的安全性和完整性。
21 8
|
4天前
|
云安全 安全 网络安全
构筑防御堡垒:云计算环境下的网络安全策略
【4月更文挑战第15天】 在数字转型的浪潮中,云计算已成为企业部署应用和存储数据的首选平台。然而,随着云服务的普及,网络安全威胁也随之增加,给企业带来了前所未有的挑战。本文深入探讨了云计算环境中的网络安全问题,分析了云服务模型(IaaS, PaaS, SaaS)的安全风险,并提出了一系列针对性的安全措施。通过对最新的安全技术、合规性要求及最佳实践的综合评述,本文旨在为读者提供一套全面的云安全策略框架,以增强云环境下的信息安全。
|
6天前
|
安全 算法 网络安全
网络安全与信息安全:防御前线的科学与策略
【4月更文挑战第13天】在数字化时代,每一次键入、点击和信息传输都可能成为网络攻击者的突破口。本文深入探讨了网络安全漏洞的成因、加密技术的最新进展以及提升安全意识的重要性。通过分析现有威胁、防御机制和人类因素,提供了一套综合策略以增强个人和组织的网络安全防护能力。
|
7天前
|
存储 缓存 自动驾驶
缓存策略与Apollo:优化网络请求性能
缓存策略与Apollo:优化网络请求性能
|
7天前
|
人工智能 安全 网络安全
云端守卫:云计算环境中的网络安全与信息保护策略
【4月更文挑战第12天】 随着企业与个人日益依赖云服务,数据存储、处理和流通的边界愈发模糊。本文探讨了在动态且复杂的云计算环境中,如何通过创新的安全技术和策略来维护网络安全和保障信息完整性。重点分析了包括身份认证、数据加密、访问控制及入侵检测等在内的关键安全措施,并提出了多层次防御模型,以增强云服务用户的信心,同时促进云计算生态系统的健康发展。