1、 基于神经架构搜索的非结构化剪枝方法王宪保 刘鹏飞 项 圣 王辛刚摘 要由于难以使用客观标准删除深度神经网络中的冗余单元,剪枝后的网络表现出性能的急剧退步针对此问题,文中提出基于神经架构搜索的非结构化剪枝方法首先,将掩码学习模块定义在搜索空间中,以便删除冗余的权重参数然后,引入层级相关系数传播,在反向传播过程中为每个网络权重分配一个层级相关系数,以此衡量每个权重对网络输出的贡献度,并帮助二值掩码参数的更新最后,对网络权重、架构参数和层级相关系数进行统一更新在、分类数据集上的实验表明,文中方法能够在高剪枝率场景下保持网络的泛化能力,满足模型部署的要求关键词 网络剪枝,神经架构搜索(),搜索空间,
2、层级相关系数传播,掩码参数引用格式 王宪保,刘鹏飞,项 圣,王辛刚基于神经架构搜索的非结构化剪枝方法模式识别与人工智能,():中图法分类号 ,(),(),():收稿日期:;录用日期:,;,国家自然科学基金项目()、浙江省基础公益研究计划项目()资助 (),()本文责任编委 陈松灿 浙江工业大学 信息工程学院 杭州 ,第 卷 第 期模式识别与人工智能 年 月 深度神经网络(,)已在计算机视觉领域得到众多应用,表现出较优能力由于必须满足不同的硬件约束,如何在不同的硬件平台(如、或嵌入式设备等)上有效部署这些深度学习模型正逐渐成为业界关注的问题的高性能往往以高存储和计算成本为代价例如,的模型参数超过
3、 ,训练模型需消耗 的存储空间,对一幅图像进行分类需要 亿次浮点运算次数(,)减少模型的存储需求和计算成本对于 更广泛的适用性至关重要,于是学者们提出一些能够解除效率瓶颈同时保持 高精度的方法和技术,如模型压缩(包括网络剪枝、知识蒸馏、网络量化、低秩分解)、自动机器学习和高效硬件架构设计等,以实现高效的深度学习网络剪枝已被证明是压缩和加速卷积神经网络(,)的有用技术,它使深度网络适应受存储或计算资源限制的硬件设备根据现有文献,网络剪枝方法可以分为结构化剪枝,和非结构化剪枝,两大类结构化剪枝方法专注于修剪卷积滤波器、通道甚至网络层,使修剪后的网络适应不同的环境或设备 等提出(),使用反向传播法更
4、新标准卷积滤波器,同时使用基于交替方向的乘法优化方法更新二进制标量,训练一个带有因子化卷积滤波器的 等提出(),改善资源受限的滤波器的性能,使其成为一个全局滤波器排名问题 等提出一种通道修剪技术,将稀疏性约束应用于通道的缩放因子,确定哪些通道需要被裁剪虽然结构化剪枝方法更利于硬件加速,但却牺牲一定的灵活性非结构化剪枝试图在不修改网络结构的情况下,从张量中移除冗余的权重参数,使一个大的网络变得稀疏 等只学习重要的连接,用三步法修剪多余的连接,将神经网络所需的存储和计算量减少一个数量级而不影响其准确性 等提出减少梯度估计器方差的方法,使用变分随机失活修剪冗余的权重 等提出,将修剪目标表述为一个经验
5、风险最小化问题,并在剪枝步骤中优化每个连接的重要性得分相比结构化剪枝,非结构化剪枝具有优越的灵活性和压缩率由于神经网络在不同的抽象层次上提取特征,因此剪枝过程必须考虑网络超参数的影响,针对不同层设置不同的剪枝策略一方面,剪枝不足即网络中保留过度冗余的连接和参数,会对模型的计算和推理速度产生影响,导致模型泛化能力的下降另一方面,过度剪枝可能造成网络中剩余的连接和参数变得过于稀疏,使模型难以捕捉数据中的复杂信息,同时使准确性和泛化能力下降目前人类启发式的剪枝方法难以平衡模型的复杂度和准确性,在高剪枝率的场景下往往导致网络精度的下降,无法弥补与其它高效网络设计(如)的巨大差距除了压缩现有的深度神经网
6、络,设计新的神经网络架构是另一种提高效率的方法一些手工高效架构已经显示出出色的性能,其核心在于高效卷积层的设计例如,在 数据集上实现 的准确率,只用 亿个乘积累加运算(,)和 亿个参数然而,网络剪枝和高效架构设计的方法都需要大量的理论思考和测试,设计者必须满足更严格的标准,例如拥有既定的知识和大量的经验储备,否则即使花费大量的人力和时间成本,也难以保证得到最优的结果相比之下,神经架构搜索(,)自动生成和选择神经网络的超参数,允许在减少人类参与的情况下自动学习一个有效的神经网络结构,在很大程度上解决超参数设置的问题目前很多 无法直接在资源有限的环境中使用一种日益流行的解决方案是在搜索策略中考虑执
7、行延迟、能源消耗、内存占用等因素,使用多目标优 化 算 法,这 类 统 称 为 硬 件 感 知(,)等提 出,将模型搜索构建成一个类似于剪枝的过程,并针对硬件指标进行联合优化,可以直接学习大规模目标任务和目标硬件平台的架构 常与网络加速方法结合,以满足多目标优化的要求 等提出(),使用 和师生蒸馏结合的方法,自动使用有效操作替换给定网络中的低效操作 等提出,重建一个轻量级的搜索空间,设计一个具有计算复杂度约束的搜索策略,搜索具有显著性能以及少量参数和浮点运算的 然而现有的多目标搜索方法总是被较低的搜索效率问题困扰,为了解决这个问题,等使用自适应数据流映射,以细粒度的方式描述采样网络第 期 王宪
8、保 等:基于神经架构搜索的非结构化剪枝方法结构的推理延迟,从而扩大可用网络的搜索空间,满足特定的推理延迟要求 等提出(),将量化整合到网络设计中,通过最大梯度传播单元模板和可学习量化器,大幅减少三元神经网络和全精度对应物之间的精度差距 等提出(),利用进化式 策略和高保真度的权重继承方法,避免权重共享带来的评估偏差,并通过拓扑同构的后代候选提高预测准确性 等提出(),设计融合新型加法器算子和传统卷积算子的 轻量级网络搜索策略,解决 在计算机视觉领域中的能量消耗问题,平衡加法器和卷积算子的权重该策略能够使加法器和卷积算子在搜索过程中得到公正的对待,从而得到更高能效和更优性能的模型将 应用在网络剪
9、枝上,可以避免超参数选择和网络结构设计的主观性和复杂性,并且缓解网络泛化性下降的问题但 与网络剪枝是两个独立的过程,算法需要制定一个新的搜索目标,同时更新剪枝参数和搜索架构参数另外,剪枝操作需要选择删除的神经单元,而目前 的搜索空间中仅包括卷积、池化和归一化等操作,无法直接在搜索空间中进行针对上述问题,本文提出基于神经架构搜索的非结构化剪枝方法(,),主要工作如下:)提出一个支持剪枝操作的搜索空间,并将掩码学习引入搜索空间的卷积和线性操作中掩码学习模块为每个权重分配一个掩码,实现对冗余权重的删除在搜索过程中,采用同时更新掩码参数与网络结构的方式,训练具有自适应剪枝能力的模型)引入层级相关系数传
10、播(,)作为剪枝标准,通过反向传播相关性评估网络中每个神经元的重要性同时,根据相关系数对二值掩码进行更新)提出非结构化剪枝方法,在预训练阶段同时对网络权重和相关系数进行更新,实现自适应剪枝,避免过度剪枝或剪枝不足的问题,提高方法的泛化性能基于神经架构搜索的非结构化剪枝方法针对深度网络在内存受限的硬件设备上的部署问题,本文提出基于神经架构搜索的非结构化剪枝方法()方法引入一个掩码学习模块,并依据学习到的掩码参数删除冗余权重为了更新二值掩码,引入层级相关系数传播()作为剪枝标准,评估网络单元的重要性,保持网络的功能完整性此外,还提出搜索目标和优化算法,对网络权重、架构参数和剪枝参数进行统一优化 支
11、持剪枝的搜索空间本文提出一个具有支持网络剪枝特性的搜索空间,允许在搜索过程中对网络进行剪枝 搜索空间与搜索网络为了从源头上限制神经网络的参数和浮点计算,考虑将更轻量级的卷积操作引入搜索空间中,因此提出一个支持网络剪枝的搜索空间,包含 个操作,即、深度可分离卷积、扩张卷积、最大池化、平均池化、恒等映射和零操作其中 是一个便捷的卷积操作,参数和 约为 深度可分离卷积的一半和()在预定义的搜索空间中搜索两种类型的单元,即正常单元和还原单元正常单元用于返回相同维度的特征图,而还原单元用于返回高度和宽度减少一半的特征图本文可借鉴这一思想单元的拓扑结构是一个由 个节点组成的有向无环图(,),按照规则有序连
12、接具体来说,每个节点 表示卷积网络的一个特征图节点 和 连接,形成单元的一条边(,),表示从搜索空间中选择的某种操作每个节点和所有前驱节点连接,并满足 (,),其中,(,)表示从给定的操作集中选择一个操作,并应用于边(,)为了使搜索空间连续化,对离散操作选择进行连续松弛化:(,)(,)(,)(),其中,(,)是维向量(,)的一个元素,表示和 之间的操作 的权重架构参数 反映每个操作的重要性,通过对架构参数进行更新,得到单元的最终结构完整的神经网络由若干个正常单元和还原单元堆叠组成,基本单元的搜索过程如图 所示在网络总深度的和的位置为还原单元,其余位置为正常单元,这样的设置有利于为任何尺寸的输入
13、图像构建可扩展的架构模式识别与人工智能()第 卷Ck_-2012Ck_ 012?(?)?.?Ck_-1Ck_-2Ck_-1Ck_+n图 基本单元的搜索过程 掩码学习模块由于 的搜索过程中缺乏对网络剪枝的支持,本文提出一个掩码学习模块,结构如图 所示模块包含一组与权重参数维度相同的二值掩码序列,将其引入搜索空间的卷积和线性操作中,为每个网络权重分配一个掩码在搜索过程中,根据设立的剪枝标准,对网络性能贡献度低的权重进行掩码,以便在后续的训练中删除该权重?W=w mwmxConv x w(,)?w?xLinear x w(,)?w图 掩码学习模块结构图 基于层级相关系数传播的掩码更新策略由于掩码是一
14、组二进制参数,直接更新具有挑战性,因此引入层级相关系数传播(),协助掩码参数的更新,同时作为剪枝标准 最初被用于机器学习的可解释性,计算每个输入特征对于网络输出的相对重要性,分析神经网络的决策过程 的计算是通过反向传播实现的,具体如图 所示在反向传播过程中,通过对神经元激活的正向传播过程进行逆向传播,计算每个网络单元(神经元或网络权重)对于输出的贡献,并将这些贡献值分配给相应的网络单元传统的剪枝标准通常只考虑每个神经元的权重大小和梯度信息,无法衡量每个神经元在网络中的作用例如,基于权重的剪枝标准可能删除网络中重要的神经元,导致网络性能的衰退相比之下,通过反向传播重要性考虑每个权重在网络中的作用
15、,从而更好地评估其重要性此外,使用 作为剪枝标准有助于保持网络的功能完整性因为可基于每个权重的贡献度进行剪枝,所以剪枝后的网络仍然可以保持原有的功能,而不会失去关键的权重第 期 王宪保 等:基于神经架构搜索的非结构化剪枝方法.?ixif x()?jxjwijx4x3x2x1x6x5x7?l?1lx3x2x1?1?3?2?4?6x4x5x6x7?5?7w34w24w36w27w15w16?8.+f x()()网络权重的前向传播().Ri()lRj(1)l+?iRi j(1)l,l+R6(1)l+R8(2)l+R4(1)l+R5(1)l+R7(1)l+?lR1()lR2()lR3()l?4?jR4
16、(1)l+R5(1)l+R6(1)l+R7(1)l+?5?6?7?8R8(2)l+R8(2)l+=()f xR3()lR1()lR2()l?3?2?1R2 4(1)l,l+R1 5(1)l,l+R3 4(1)l,l+R3 6(1)l,l+R2 7(1)l,l+R1 6(1)l,l+R6 8(12)l+,l+R4 8(12)l+,l+R5 8(12)l+,l+R7 8(12)l+,l+.?1l+?()层级相关系数传播过程()图 网络权重和层级相关性系数的传播过程 为了确保所有重要性得到正确的分配和保存,的重新分配遵守分层守恒原则:(),其中,表示非线性网络中第 层中神经元的相关系数,表示第 层中神经元 的相关系数 与网络输出()直接建立联系,并在逐层分配中遵守分层守恒原则即使在剪枝过程中神经网络隐藏层的大小以及神经元的数量发生变化,分层守恒原则也能保证 的数量固定,从而保证剪枝程序的平稳运行相关系数的分配是根据发送到前一层的神经元的信息获得的,这种信息为 在非线性网络中,神经元的激活值 是 的非线性函数当激活函数单调递增时,如双曲切线和整流函数,相关系数的分配基于局部和全局预激活的比率: