动态剪枝可以应用于训练和推理阶段,训练过程中的动态旨在通过在训练过程中保持动态修剪掩码来保持模型的表示能力。它也被称为软修剪,以确保以后可以恢复不正确的修剪决策。另一方面,硬修剪通过固定的掩码永久地去除权重。推理过程中的动态表示根据不同的输入样本对网络进行动态修剪。例如,与复杂图像相比,包含清晰目标的简单图像所需的模型容量较小。因此,动态推理提供了更好的资源准确性权衡。
训练中的动态剪枝
训练时间动态修剪的概念首次在 Dynamic Network Surgery (DNS)(2016)中提出,这是一种非结构化修剪方法,作用在权重上的二值mast T会和权重M一起更新,使错误的修剪有机会得到改正
Soft filter Pruning 软滤波器修剪(SFP)(2018)以结构化的方式应用了动态剪枝的思想,在整个训练过程中使用固定掩码的硬修剪将减少优化空间。因此,它在每个epoch基于滤波器的“2-范数”动态生成掩码。软修剪意味着将过滤器的值设置为零,而不是删除过滤器。允许在下一个epoch更新以前的软修剪滤波器,在此期间,将基于新的权重对掩码进行重组。
Globally Dynamic Pruning (GDP-Lin) (2018)采用一阶泰勒展开来近似每个滤波器的全局重要性。此外,作者认为频繁更换MASK并不能有效地指导修剪。因此,每e次迭代更新一次掩码,e被设置为递减值以加速收敛。
Dynamic Pruning with Feedback (DPF) (2020)该方法使用的前提是稀疏模型可以被认为是具有压缩误差的稠密模型,该误差可以用作反馈,以确保梯度更新中的正确方向。为此,使用从稀疏模型计算的梯度来更新密集模型。在密集模型上应用梯度的优点是,它有助于权重从错误中恢复。
CHannel EXploration (CHEX) (2022)使用两个过程来动态调整滤波器的重要性。第一个过程是使用Column Subset Selection criterion列子集选择标准的channel修剪过程(1996)。第二个过程是再生过程,它基于orthogonal projection正交投影,以避免再生冗余信道并探索信道多样性。重新排列通道恢复为最近使用的(MRU)参数,而不是零。为了更好地保持模型精度,剩余的通道在所有层之间动态地重新分布。
Dynamic Sparse Graph (DSG)(2018)在每次迭代时通过构建的稀疏图动态激活少量关键神经元。DSG是从根据输出激活的直接计算对于寻找关键神经元来说非常昂贵的论点发展而来的。为了防止BN层破坏稀疏性,Liu等人引入了双mask选择,在BN层前后使用相同的选择mask
其他方法,如SCP和DMC也动态地维护掩码。这些在第 2.3 节中讨论。
推理中的动态剪枝
Runtime Neural Pruning (RNP)(2017)静态模型不能通过对更容易识别和复杂的模式图像使用相同的权重来利用输入图像的不同属性,基于这个前提。它使用一个带有 CNN 的框架作为骨干,RNN 作为决策网络。网络剪枝被建模为马尔可夫决策过程,模型通过强化学习 (RL) 进行训练。RL 代理评估过滤器的重要性并根据任务样本的相对难度执行通道修剪。因此,当图像更容易完成任务时,会生成一个稀疏网络。
Feature Boosting and Suppression (FBS) (2019)通过引入一个微小且可微的辅助网络对输入来预测输出通道重要性。在辅助网络中,使用 2D 全局平均池化将前一层的激活通道子采样为标量。这样做的优点是它减少了辅助网络中的计算开销。然后,显着预测器使用二次采样的标量通过全连接层后跟激活函数生成预测的salient scores显著的分数。前 k 个显著的通道最终参与了推理时间计算。
Deep Reinforcement Learning pruning (DRLP)(2020)学习通道的运行时(动态)和静态重要性。运行时重要性衡量特定于输入的通道的重要性。相比之下,静态重要性衡量整个数据集的通道重要性。框架包含两部分:一个静态和一个运行时间。每个部分都包含一个重要性预测器和一个agent,分别提供静态/运行时重要性和逐层修剪比率。此外,权衡剪枝器根据两部分的输出生成统一的剪枝决策。
Dynamic Dual Gating (DDG) (2021)使用两个独立的门控模块(空间和通道门控)根据输入确定推理时间的重要性。空间模块由自适应平均池化和 3x3 CONV 层组成,以提取信息丰富的空间特征。通过具有空间掩码,只允许信息特征传递到下一层。通道门控模块的工作方式类似于现有方法,如FBS,通过使用全局平均池化,然后应用FC层。为了实现梯度流,Gumbel-Softmax reparameterization用于空间和通道门控模块。
Fire Together Wire Together (FTWT)(2021)将动态修剪任务建模为自监督二元分类问题。所提出的框架使用 1) 预测头来生成可学习的二进制掩码,以及 2) 真实ground truth掩码来指导每个卷积层之后的学习。预测头由一个全局最大池化层、一个 1x1 CONV 层和一个 softmax 层组成。然后将预测头的输出四舍五入以生成二进制掩码。为了实现自监督学习,需要基本事实二进制掩码;通过对输入激活的范数进行排名,做出基本事实修剪决策来指导学习。
Contrastive Dual Gating (CDG) (2022)通过使用对比学习实现了另一个自监督动态剪枝框架[256]。对比学习使用转换后的图像,如翻转图像作为输入,并使用两个对比分支来利用高级特征。然后使用基于相似性的对比损失 [257] 进行基于梯度的学习,而无需标记数据。实证研究表明,修剪决策不能在对比分支之间转移。因此,引入了dual gating双重门控,两个分支具有不同的剪枝掩码。CDG对每个对比分支使用类似于CGNet的框架。与DDG一样,使用3x3 CONV层提取未修剪特征的空间特征。