分享

ICCV 2023|UDFC:无需任何数据与微调,实现剪枝量化同步进行

 doctorwangfovn 2023-08-29 发布于山东
作者丨岳廷
编辑丨极市平台
本文首发于极市平台,转载须经授权并注明来源插入公众号名片。

极市导读

 

本文提出了一个统一的数据无损压缩框架UDFC,它可以在没有任何数据和微调过程的情况下同时执行剪枝和量化。 >>关注公众号,后台回复「极市干货」即可获取最新整理CV知识内容合集

图片

论文链接:https:///abs/2308.07209

导读:

本文要解决的问题:

  1. 现有的模型压缩方法(剪枝、量化)大多需要原始训练数据进行繁琐的微调过程,这不仅与数据相关且计算上非常昂贵,而用户在许多实际应用中可能无法获取足够或完整的数据。
  2. 当前的方法独立地执行数据无损剪枝和量化,没有探索剪枝和量化的互补性。

为了解决这两个问题,本文提出了一个统一的数据无损压缩框架UDFC,它可以在没有任何数据和微调过程的情况下同时执行剪枝和量化。

该方法的主要创新点是:

  1. 提出受损通道的部分信息可以通过其他通道的线性组合进行保留的假设。基于这个假设,推导出层压缩导致信息损失可以通过重构层的通道来恢复。

  2. 基于上述重构形式,建立原始网络和压缩网络之间的重构误差表达式。

  3. 基于重构误差,证明重构误差可以最小化,并推导出闭式解。在CIFAR-10和ImageNet等数据集上进行的大量实验证明了UDFC的有效性和通用性。例如,在ImageNet数据集上,相比不压缩的ResNet-34,在30%的剪枝比率和6位量化下取得20.54%的准确率提升。

通过同时优化剪枝和量化,该方法能够更好地发挥两者的互补性,实现无数据、无微调的高效模型压缩

一、方法:重构误差建模

本节首先阐述压缩后如何对通道进行重构,然后建立数学重构误差模型。

1.1 背景知识

CNN体系结构 假设一个CNN模型有层,本文用表示第层卷积层的输入通道数和输出通道数。第层卷积层将输入特征图转换为输出特征图。第层的卷积权重表示为,其中是每个通道的核心大小,是对应特征图的大小。因此,

其中表示卷积运算。对于CNN体系结构,卷积运算之后通常跟着批归一化(BN)和激活函数,所以激活特征图可以表示为:

其中是BN过程,是激活函数。是BN的参数。

剪枝准则 在通道剪枝中,大多数方法遵循选择策略,即通过权重的范数和BN层的缩放因子选择一些原始通道。通常,剪枝准则与模型性能关系密切。本文不侧重于提出复杂的准则,而是关注在简单准则(如范数和范数)下对网络进行剪枝后性能的恢复。

均匀量化 量化将预训练的完整精度浮点模型参数转换为低精度固定点值,从而减少模型复杂度。均匀量化是最简单和最硬件友好的方法,定义如下:

其中是量化比特宽度。本文使用均匀量化进行量化。

1.2 层级重构

假设 在模型压缩中,压缩网络的性能通常低于原始网络。为了在无数据的情况下提高压缩网络的性能,一个理想的思路是保留这些受损通道(如剪枝或量化的通道)的信息。本文假设受损通道的部分信息可以通过其他通道的线性组合进行保留。为清晰起见,本文分别描述剪枝和量化的假设。假设卷积权重被剪枝到其受损版本,其中是未剪枝的通道数。剪枝的假设可以表示为:

其中是在剪枝下衡量第个通道与第个通道关联程度的缩放因子。

假设第层的第个通道被量化到其受损版本,量化的假设可以表示为:

其中是在量化下衡量第个通道与其量化版本的关联程度的缩放因子。

剪枝后的重构 本文的目标是在剪枝第层通道的同时保持第层的输出特征图。为简洁起见,本文只剪枝第层的一个通道来说明如何重构层的通道,这可以轻松推广到多个通道。不失一般性,第个通道将被剪枝。

图片

如图1所示,在剪枝第层的第个输出通道后,输出特征图随后被删除。根据式1和4,本文可以推导出被剪枝的输出特征图可以被其他未受损特征图的线性组合替换:

仅考虑BN层,本文有。根据式6,第层第个通道的输出特征图可以表示为:

其中是重构后的滤波器。通过这种方式,本文可以在下一层的每个其他通道中添加对应的剪枝通道,以保留层中被剪枝通道的信息。

根据式7,本文以以下形式重构层的通道,以恢复层剪枝造成的信息损失:

其中表示剪枝后的重构版本。

量化后的重构 剪枝和量化最明显的区别在于通道是否存在。量化后的通道使用低位宽保存权重而不是直接丢弃。在这种情况下,本文通过在下一层对应通道添加缩放因子来补偿信息损失。为简单起见,设表示第层第个通道经量化后的权重。根据式1和5,本文可以推导出量化后的重构版本,可以表示为:

其中表示量化后的受损版本。

1.3 重构误差

但是,上述分析都基于假设,重构误差在实际中是不可避免的。在用重构形式恢复层压缩造成的信息损失后,本文使用压缩前后第层特征图来衡量重构误差。

剪枝误差 剪枝后,之间的差异可以表示为:

激活函数的影响 ReLU激活函数在CNN体系结构中被广泛使用。由于本文无法以数据无损的方式获得激活函数后的特征图,本文定性分析ReLU函数对本文的剪枝误差的影响。在这种情况下,差异可以重新表示为:

其中,省略了,因为它不随剪枝而改变。项确定了的上界,形式与等式10相同,所以考虑或不考虑ReLU激活函数,剪枝的差异是相同的。

注意在剪枝中不变。因此,本文将剪枝的重构误差定义为:

其中,本文引入超参数来调整不同部分的比例。

量化误差 量化后,的差异可以表示为:

与剪枝相同,在量化中不变,而激活函数也不影响重构误差的形式。因此,本文将量化的重构误差定义为:

其中,本文引入超参数来调整不同部分的比例。

重构误差 前面分别分析了剪枝和量化造成的误差。当同时进行剪枝和量化时,重构误差可以表示为:

二、重构误差求解

本节证明通过最小化重构误差存在最优解,其中第层第个通道被剪枝,第个通道被量化,得到重构误差:

为简洁起见,记:

其中的向量化,的向量化,的向量化。则损失可以简化为:

的一阶和二阶导数为:

是一个凸函数,因此存在唯一的最优解,满足,于是得到最优解:

同样,可以得到的最优解:

值得注意的是,式4和5的MSE误差是重构误差的主要组成部分。因此,最优解不仅最小化了重构误差,还满足了假设。

比例因子的实现 在获得最优缩放因子后,用重构形式替换原始卷积层,即式8和9所示。

三、 实验

本节在图像分类任务中对几个典型神经网络进行实验,以评估本文的数据无损压缩方法的有效性,该方法不需要任何数据和微调过程。在所有实验中,使用均匀量化对所有模型层的权重进行量化,使用简单的剪枝准则范数和范数对通道进行剪枝。

3.1 Ablation Study

本文提出的方法由两种压缩技术组成:量化和剪枝。同时,重构误差中存在超参数,它们会影响压缩网络的性能。本文进行了以下Ablation研究以评估不同部分的效果。

剪枝比率和位宽的研究 UDFC执行剪枝和量化,适当的变量(即剪枝比率和位宽)对压缩率和压缩模型性能至关重要。因此,本文在CIFAR-10数据集上用不同的剪枝比率和位宽压缩ResNet-56,以探索剪枝和量化之间的最佳权衡。

如图2所示,随着剪枝比率的逐渐增加,模型性能下降。同样,随着权重位宽的减小,模型性能也有所下降,但在4比特时准确率并没有下降而是上升。这一独特的现象表明,本文的方法可以在将ResNet-56量化到4比特时最大程度地恢复信息。本文不给出更低比特(即3比特和2比特)的量化结果,因为它们的准确率急剧下降。在更低的位宽量化中,信息损失太大,以至于本文的方法无法有效地恢复信息。

图片

超参数的研究 为了探索超参数对压缩网络的影响,本文在CIFAR-10数据集上分别对ResNet-56进行剪枝和量化。在剪枝过程中,本文使用不同的值剪枝ResNet-56的50%通道。在量化过程中,本文使用不同的值对ResNet-56进行2比特量化。

如图3所示,当从0增加到0.01时,剪枝模型的最终性能稳步提高。但是,当设置为0.04时,准确率急剧下降。的曲线与类似,最大性能出现在0.008。这一现象确认了本文引入的超参数在一定程度上提高了压缩模型的性能。

图片

3.2 量化

本文在ImageNet数据集上使用均匀量化对ResNet-18、ResNet-50、MobileNetV2和DenseNet进行量化。为了证明本文方法在量化上的有效性,本文将本文的方法与DFQ、OMSE和SQuant进行比较,这些方法都不需要任何数据和微调过程。此外,本文还将本文的方法与一些需要合成样本或校准集的量化后训练方法进行了比较,包括ZeroQ、DDAQ、DSG和ZAQ。

图片

表1显示,与DFQ、OMSE和其他量化后训练方法相比,本文的方法具有显著优势。例如,当使用6比特量化ResNet-18的权重时,本文的方法获得了72.76%的准确率,比DFQ高出6.46%,比DSG高出1.9%。本文的方法在轻量级模型MobileNetV2(71.87%)和DenseNet(70.15%)的低位量化中仍然稳健。此外,本文的方法在时间消耗上具有巨大的优势。在8块Tesla V100 GPU上,ZeroQ需要29秒来量化ResNet50,而本文的UDFC只需要在RTX 1080Ti GPU上2秒。

3.3 统一压缩

本节对CIFAR-10数据集上的ResNet-56和VGG-16以及ImageNet数据集上的ResNet-34和ResNet-101进行压缩,以证明本文方法的有效性。由于没有数据无损方法可以同时进行剪枝和量化,本文主要将本文的方法与数据无损剪枝方法进行比较。在剪枝领域,本文的直接竞争对手是神经元合并法(NM),这是一种一一补偿的方法。与神经元合并相同,本文在剪枝后不进行任何补偿以获得基准性能,称为Prune。

CIFAR-10上的实验 对于CIFAR-10数据集,本文在不同的剪枝率(30%-80%)下测试了ResNet-56和VGG-16上的UDFC。此外,本文还将未剪枝的通道分别量化到4比特和6比特,进一步减少了参数量。

如表2所示,UDFC取得了最先进的性能。例如,在参数降低了约28倍(0.53M)和80%的FLOPS减少的情况下,VGG-16仍然保持了优异的分类精度(91.26%),比80%剪枝率下的NM平均准确率高出51%。

图片

ImageNet上的实验 对于ImageNet数据集,本文在10%、20%和30%的剪枝率下测试了ResNet-34和ResNet-101上的UDFC。此外,本文还将未剪枝的通道量化到6比特,进一步减少了参数量。

表3显示,与以前的方法相比,UDFC具有明显优势。通过逐步增加剪枝比率从10%到30%,与NM和Prune相比,Ave-Im也相应增加。这意味着本文的方法比一对一补偿更具鲁棒性。对于ResNet-101,与Prune相比,本文在30%的剪枝比率下获得了55.66%的准确度提升,与NM相比提升了27.23%。同时,由于量化,参数量大幅减少,所以不仅取得了更高的性能,参数量也更低。

图片

四. 结论

本文提出了一种统一的数据无损压缩框架,可以在不需要任何数据和微调的情况下同时进行剪枝和量化。它起始于受损通道的部分信息可以通过其他通道的线性组合进行保留的假设,并从该假设出发提出了一种新颖的方法来恢复压缩导致的信息损失。在标准数据集上进行的大量实验证明了本文提出方法的有效性。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多