深度神经网络是众多人工智能重大成果背后的核心力量——从人脸识别到实时语言翻译,皆依赖于它们的强大能力。但这种强大能力也带来了代价: 这些模型体积庞大,消耗巨大的内存和计算资源。在智能手机、可穿戴设备和物联网传感器等日常设备上高效运行它们是一项巨大的挑战。
这正是模型压缩发挥作用的地方。其中最有效的策略之一是剪枝 , 可将其看作是一种数字盆景艺术: 精细地修剪神经网络中冗余的连接 (权重) ,让模型更小、更快——理想情况是保持精度不受影响。
最常见的剪枝方法是基于幅度的剪枝 , 它假定较小的权重不太重要,会移除所有低于某个阈值的权重。但问题在于: 阈值该如何确定?神经网络的每一层具有不同的尺度和敏感性。单一的全局阈值过于粗糙;理想情况下,每层都应有自己的阈值。不幸的是,寻找逐层的最优阈值需要大量的搜索及代价高昂的迭代式剪枝与重训练。
高通与亚马逊研究人员提出的论文 《学习阈值剪枝 (LTP) 》 给出了一个极其优雅的解决方案: 与其手工调整阈值,不如将它们设为可学习的参数 。 在训练过程中,网络通过梯度下降自行学习到最佳的剪枝阈值,实现自我优化。
本文将深入解析 LTP 的工作机制,解释它为何如此高效 (尤其是在采用批归一化和深度可分离卷积的现代架构中) ,以及它如何在极短训练时间内实现业界领先的压缩效果。
背景: 非结构化剪枝的艺术与科学
在探究 LTP 之前,先了解剪枝方法的整体框架。剪枝大体分为两类:
- 结构化剪枝: 移除整个结构,如滤波器、通道或神经元。它令模型更小、对硬件更友好,因为所得矩阵密集且规则。然而,这种方法粒度较粗,难以实现极端压缩。
- 非结构化剪枝: 移除单个权重,得到稀疏矩阵。该方法可实现非常高的压缩率,但过去由于不规则稀疏性难以加速,应用受限——如今的 AI 加速器已开始有效应对这一问题。
LTP 属于非结构化剪枝 。 传统的基于幅度剪枝会移除所有绝对值低于阈值 \( \tau \) 的权重。但各层权重的分布与重要性不同。早期层往往捕捉基础模式 (如边缘、颜色) ,对剪枝非常敏感,而深层则冗余性更强。因此,对所有层使用相同阈值并不理想。最优方案是为每层设定自己的阈值 \( \tau_l \),但手动确定这些阈值极其耗时。
核心思想: 让剪枝可微分
LTP 的创新之处在于将逐层阈值设为可训练的参数 。 这样阈值可通过梯度下降学习,就像权重一样。但传统剪枝操作不可微,成为关键障碍。
挑战: 硬剪枝与阶跃函数
传统的基于幅度剪枝可描述为:

在此公式中,
step函数会突然将低于阈值 \( \tau_l \) 的权重清零。其导数在绝大部分区域为零,导致梯度无法传递,使剪枝操作不可微,从而无法学习阈值。
解决方案: 采用可微的 Sigmoid 函数实现软剪枝
为解决这一问题,作者提出了软剪枝: 用平滑、可微的 Sigmoid 函数替代阶跃函数。

“温度”参数 \( T \) 控制 Sigmoid 曲线的陡峭程度。较小的 \( T \) 使其近似硬阶跃函数。
Sigmoid 引入了微分性与柔性。权重远低于阈值时几乎被清零,远高于阈值时被保留,接近阈值的权重位于“过渡区”。在训练中,这个过渡区让模型自行决定: 若接近阈值的权重能显著降低分类损失,它将被提升并保留;若作用不大,则逐渐缩小并被剪除。
这使 LTP 具有自适应特性 : 剪枝决策不再基于权重大小,而是依据训练过程中学到的重要性 。
促进稀疏性: 软 \( L_0 \) 正则化
当阈值可训练后,会出现另一个问题。若模型仅最小化分类损失,它会倾向于令所有阈值 \( \tau_l = 0 \),因为剪枝会略微增加损失。若无额外约束,网络将完全避免剪枝。
为了鼓励稀疏性,需要一个能激励剪枝的正则项。理想选择是 \( L_0 \)-范数 , 表示非零权重的数量:

最小化 \( L_0 \)-范数可直接减少活跃权重的数量,是稀疏性完美的优化目标。
遗憾的是,\( L_0 \)-范数不可微,通常以 \( L_1 \) 或 \( L_2 \) 正则替代。但这些在现代网络中失效,原因是批归一化 。
批归一化在批次内对输出归一化,使得前层权重的尺度无关紧要。整个层权重乘以任意常数都不会改变输出——导致 \( L_1 \) 或 \( L_2 \) 惩罚项失效。因此,在采用批归一化的网络 (如 ResNet、EfficientNet、MobileNet、MixNet) 中,这两者几乎无效。
论文提出了巧妙方案: 使用软 \( L_0 \)-范数 , 再次借助 Sigmoid 技巧使其可微。

这种平滑型公式提供了连续度量来衡量每层“保留”的权重数量,既可微又高效。
学习阈值剪枝 (LTP) 算法
综合上述思想,完整框架如下。总损失函数由常规分类损失 \( \mathcal{L} \) 与软 \( L_0 \) 正则项组成,后者由稀疏性超参数 \( \lambda \) 控制:

\( \mathcal{L}_T = \mathcal{L} + \lambda \sum_l L_{0,l} \)
权重 \( w_{kl} \) 与阈值 \( \tau_l \) 皆通过反向传播更新。阈值使用标准梯度下降法学习:

但权重更新需谨慎。当温度 \( T \) 太小时,梯度中某些项可能剧烈波动,造成不稳定甚至提前停止剪枝。为此,作者舍弃高方差分量来近似梯度,实现平滑稳定的学习过程。
若无此近似,剪枝会停滞: 阈值附近形成间隙,许多接近阈值的权重无法被剪除。

图 1: 左图显示 LTP 剪枝过程稳定;右图展示未采用稳定更新时的死区现象。
训练完成后,LTP 使用学习到的阈值进行硬剪枝 , 再选择性微调几个 epoch,即得到紧凑高性能模型。
实验与洞察
研究者在经典网络 (AlexNet、ResNet50) 及现代轻量模型 (MobileNetV2、EfficientNet-B0、MixNet-S) 上进行了广泛测试。
为什么软 \( L_0 \) 有效
在 ResNet20 上的消融实验展示了软 \( L_0 \) 正则的重要性。

没有正则化 (蓝色) 时几乎无剪枝。加入 \( L_2 \) 正则 (红色) 剪枝增加但准确率崩塌——验证了其与批归一化不兼容。软 \( L_0 \) (绿色) 在保持高准确率的同时实现了高稀疏性,形成平滑指数级剪枝曲线,这在此前研究中已证明效果显著。
剪枝经典巨头: AlexNet 与 ResNet50
在 ImageNet 上,LTP 实现了极高压缩率与微小精度损失。
对于 ResNet50 , LTP 达到与领先方法相当的效果: 9.1× 压缩、Top-5 准确率 92.0%——仅用 30 个 epoch (18 剪枝 + 12 微调) 。

其他方法需 300–900 个 epoch 重训练,凸显 LTP 的效率优势。

图: 训练时间对比——LTP 的剪枝速度远超传统迭代方法。
对于 AlexNet , LTP 实现了 26.4× 压缩率 , 而 Top-5 准确率保持 79.1% 无损。

LTP 还表现出极高稳定性。在 ResNet50 的 10 次独立运行中,Top-1 准确率波动低于 0.5%,显示出卓越的可重复性。

图: LTP 在多次运行中保持稳定精度,体现 Robust 训练特性。
挑战极限: 紧凑型架构
最引人注目的结果来自已为高效设计的轻量网络的剪枝实验。

表 5: LTP 在紧凑型架构上的表现。
在这些高度优化模型中,LTP 仍能挖掘冗余:
- MobileNetV2 : 最多 1.33× 压缩 , 准确率下降不足 1%。
- EfficientNet-B0 : 3× 压缩 , 准确率仅下降 0.9%。
- MixNet-S : 2× 压缩 , 准确率损失低于 1%。
与需为每层手动设置压缩率的其他方法不同——那对于含 50–100 层及复杂结构的网络而言极其繁琐——LTP 可自动学习阈值,具备可扩展性与即插即用的优点。
结论: 更智能的模型压缩之路
学习阈值剪枝 (LTP) 解决了模型压缩中的核心难题: 在无需大量计算的情况下寻找逐层最优剪枝阈值。通过引入两项可微创新——软剪枝与软 \( L_0 \) 正则化——LTP 让阈值成为在训练中可自然适配的可学习参数。
因此,LTP:
- 自动化: 逐层学习阈值,无需人工调试。
- 高效: 在极短重训练时间内实现高压缩率。
- 有效: 在多种架构上达到或超越业界先进水平。
- 通用: 与批归一化及深度可分离卷积完美兼容。
简而言之,LTP 代表了非结构化剪枝的一次重大进步——令神经网络更小、更快、可在边缘设备上无损部署, 无需牺牲准确率或大量实验 。
通过教会网络智能地自我剪枝,LTP 不仅让剪枝更容易,更让剪枝更聪明。
](https://deep-paper.org/en/paper/2003.00075/images/cover.png)