Page 95 - 《应用声学》2025年第2期
P. 95
第 44 卷 第 2 期 申小虎等: 网络剪枝与知识蒸馏相结合的轻量级鸟声识别方法 355
(2) 模型复杂度变化计算的子问题:针对卷积 数τ 进一步对激励向量进行掩码来实现当前阶段的
结构 R W ×H×C ,第 l 层的任意网络节点剪枝所产生 剪枝,增强了剪枝过程对资源信息的表达能力,具体
的模型复杂度变化为 公式为
l
l
l
l 2
2(H ×W ×(K ) ×C ×C l out +C l out ) i i+1 ( i i−1 )
in
c
F(w )= , (11) F i+1 (x|W )=M τ i ◦ M (F i (x|W )) , (12)
l l 2
(s )
其中,H × W 为输出的特征图大小,K 为卷积核大 式 (12) 中,F i 、F N 分别为 EfficientNet 中间各阶段
i
小,C in 、C out 分别为卷积输入和输出通道,s为步长。 与最终阶段的特征图,M 代表着第 i 个阶段中的
通过公式 (7)∼(8) 的约束条件,使用稀疏校准 MBConv网络操作。为避免大模型通道修剪时陷入
系数 τ 对 SE 模块实施全局信息嵌入和自适应重新 局部最优,采用渐进式剪枝优化方法 [26] 实施网络
校正,如图 3 所示。其中,在 SE 模块内通过校准系 推理。
BN
ሪႠጇఞழ Ԅሥ Swish ງएԻѬ SE Ԅሥ ᬤ BN ҝ౨ᝫጷ
1f1 Ԅሥ3f3 1f1 ܿำ
τ t֓ → τ t⇁
࡙न
༏ҵ
τ
ଏᆊ
ԍ᎖
H֒W֒C ᤰ᥋ి᧘ᄊ˲୲ͻ
图 3 SE 模块的重新校准
Fig. 3 Recalibration for SE module
2.2 知识蒸馏微调 损失分别定义为 L c 、L K 、L I ,其具体设计方式分别
结构化通道剪枝可能导致模型精度下降,因此 如下。
使用知识蒸馏策略进行微调。传统知识蒸馏方法 (1) 蒸馏交叉熵损失 L c :利用训练数据集标签
使用概率预测分布损失 (Kullback-Leibler, KL) 散 与剪枝网络每个浅层分类器层的输出来计算交叉
度损失来优化度量指标,然而这种方法主要依赖于 熵损失。蒸馏损失具体计算方式如公式(9)∼(10)所
最后一层的输出,忽略了中间层各模块的监督,特 示,即:
∑ N
别是针对层次较深的EfficientNet,易降低知识转移 L c = − y lg (p i ), (13)
i
效果。
式(13) 中,y 表示训练数据的真实标签,p i 对应剪枝
为此,本文提出了一种新的自蒸馏策略。该策
网络的概率各浅层分类器的输出。
略不仅仅依赖于最后一层的输出,还考虑了中间层
(2) 概率预测分布损失 L K :计算基础网络和剪
的监督,如图 3 所示。具体来说,首先根据文献 [27]
枝网络之间的概率分布,并将其引入每个浅层分类
的方法在每个 MBConv 模块的末端添加 1×1 卷积
器的softmax层。
层使剪枝网络与基础网络对齐。其次,在每个 MB- ∑ N
Conv 模块后设置一个浅层分类器接收训练损失。 L K = i p i lg (p i /p N ), (14)
最后,在训练期间,基础模型作为教师模型,所有 其中,p N 为 EfficientNet-B0 基础网络的最终 soft-
MBConv模块都作为学生模型进行自蒸馏学习。为 max的概率输出。
了提升学习效率,在训练过程中引入了3 种损失:蒸 (3) 内部蒸馏损失 L I :内部蒸馏损失可以得到
馏交叉熵损失、KL 损失与内部蒸馏损失。上述 3 种 特征映射中的隐性知识,通过计算各最终输出分