来源:晓飞的算法工程笔记 公众号,转载请注明出处

论文: Straightforward Layer-wise Pruning for More Efficient Visual Adaptation

创新点


  • 提出了一种针对PETL模型的剪枝方法SLSStraightforward Layer-wiSe Pruning method),证明在下游数据集与预训练数据集之间存在显著差距时,PETL转移后的模型中存在大量冗余参数。
  • 提出了一种直观的特征级分析方法,为评估结构剪枝参数的重要性提供了一种新的视角。
  • SLSVTAB-1k基准测试中,使用相同的剪枝参数数量,以简单的策略在模型存储、准确性和速度上超越了当前主流的结构剪枝方法DepGraph

内容概述


参数高效迁移学习(PETL)旨在使用有限的参数调整大型预训练模型。虽然大多数PETL方法在训练过程中仅更新添加或选择的参数并冻结预训练权重,但因为PETL难以回传梯度调整顶层的参数,往往会导致冗余的模型结构。结构剪枝有效降低了模型冗余,但常见的剪枝方法通常会导致存储参数的过度增加,因为不同剪枝率和数据会产生不同的剪枝结构。

针对存储参数量的问题,论文提出了一种直接的层级剪枝方法SLSStraightforward Layer-wiSe Pruning method),用于剪枝PETL模型。SLS通过从特征角度评估每一层的参数,并利用聚类度量通过t-SNE获得的低维空间中的聚类现象来评估当前层参数,SLS促进了基于信息的剪枝决策。逐层剪枝专注于存储剪枝索引,解决了存储量的问题。

值得注意的是,主流的逐层剪枝方法可能不适合评估PETL转移模型中层的重要性,因为大多数参数是预训练的,并且与下游数据集的相关性有限。与最先进的PETL方法进行的比较分析表明,剪枝模型在模型吞吐量和准确性之间实现了显著的平衡。此外,SLS有效减少了由于不同剪枝结构而产生的存储开销,同时在与传统剪枝方法相比时提升了剪枝模型的准确性和速度。

SLS


以往的研究表明,较低层通常捕捉一般特征,而较高层则专注于特定特征。基于这一理解以及在PETL模型中冻结预训练网络参数的局限性,论文认为当下游数据分布与预训练数据分布之间存在显著差异时,PETL转移的模型深层将包含大量冗余参数。于是论文打算动态识别并剪除这些冗余参数。为了确保剪枝过程的有效性,必须满足以下关键标准:

  1. 保持与PETL转移方法相同的存储参数数量。

  2. 预测冗余参数而无需额外的训练。

相关算法

  • 降维算法t-SNE:给定一组 \(d\) 维输入特征 \(X=\{x_1,x_2,...,x_n\}\in \mathbb{R}^{n\times d}\) ,为 \(X\) 计算一组 \(s\) 维嵌入,记作 \(Y=\{y_1,y_2,...,y_n\}\in \mathbb{R}^{n\times s}\) 。其中 \(s\ll d\) ,通常为23以便于可视化。首先使用联合概率来度量输入 \(X\) 中 \(x_i\) 和 \(x_j\) 之间的相似性,随后调整随机初始化 \(Y\),使 \(Y\) 元素之间的相似性与 \(X\) 对应元素之间的相似性一致。

  • 聚类算法指标SC_Index(Silhouette Coefficient Index):给定一组聚类结果 \(X=\{x_1,x_2,...,x_n\}\) ,对于某一点 \(x_i\) ,定义 \(a(i)\) 为其所在聚类中剩余点与 \(x_i\) 之间的平均距离, \(b(i)\) 为 \(x_i\) 与最近聚类中所有点之间的平均距离。

    \[\begin{equation}
    \bar{s}=\frac{1}{n}\sum_{i=1}^n\frac{b(i)-a(i)}{\max(a(i),b(i))}
    \end{equation}
    \]

层级剪枝不会增加存储参数数量

SLS的预测不涉及额外的参数引用,采用基于现有特征的聚类方法预测剪枝层索引表示为 \(Index_j\) 直接进行剪枝。因此,通过SLS剪枝的模型不会产生任何额外的存储开销。

根据各层的中间特征做出剪枝决定

使用降维特征的聚类程度SC_Index来评估层特征,该方法不引入额外的监督训练。如图2所示,在适当的设置下,模型中当前层的分类准确率与降维特征的SC_Index之间存在明显的相关性。

论文提出了特征评估模块 (FEM) 来评估来自层 \(L_i\) 的特征。如图3所示,FEM从层 \(L_i\) 的输出 \([x_i,e_i]\) 中提取cls_token \(x_i\) 来表示当前特征,使用t-SNE算法将 \(x_i\) 降维到 \(x_i' \in \mathbb{R}^{B\times2}\) 。随后,通过结合对应于当前输入的标签 \(\in \mathbb{R}^{B\times1}\) ,得到一个具有 \(p\) 个类别的聚类结果 \(C\) ,其中 \(p\) 是当前数据集中的类别数量。最后,计算与 \(C\) 对应的值 \(a(i)\) 和 \(b(i)\) ,确定当前层特征的评估值 \(SC\_index_i\) 。

对于一个具有 \(N\) 层的模型,设 \(\mathbf{\alpha}\) 为一个超参数,控制SLS剪枝的程度。当前数据集上剪枝层数的阈值 \(T\) 定义为

\[\begin{equation}
\label{eq11}
T=\mathbf{\alpha} \times SC\_Index_N
\end{equation}
\]

在模型的剪枝过程中,从最高层向下遍历。当第 \(i^{th}\) 层特征的评估值 \(SC\_Index_i\) 低于阈值 \(T\) 时,停止遍历循环,并剪掉从 \(i+2\) 到 \(N\) 的层。这一设计的动机在于,当第 \(i^{th}\) 层特征的评估值低于与顶部层特征评估相比的某个阈值时,分类头将无法有效地区分当前特征。因此, \({i+1}^{th}\) 层的输出特征是分类头能够很好地区分的最低层,剪掉从 \(i+1\) 向下的层会对模型的性能产生显著影响。

主要实验结果






如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

SLS:整层剪掉!基于降维特征聚类的PETL模型剪枝新方法 | ECCV'24的更多相关文章

  1. 【模型压缩】MetaPruning:基于元学习和AutoML的模型压缩新方法

    论文名称:MetaPruning: Meta Learning for Automatic Neural Network Channel Pruning 论文地址:https://arxiv.org/ ...

  2. 基于SURF特征的图像与视频拼接技术的研究和实现(一)

    基于SURF特征的图像与视频拼接技术的研究和实现(一)      一直有计划研究实时图像拼接,但是直到最近拜读西电2013年张亚娟的<基于SURF特征的图像与视频拼接技术的研究和实现>,条 ...

  3. 基于Haar特征Adaboost人脸检测级联分类

    基于Haar特征Adaboost人脸检测级联分类 基于Haar特征Adaboost人脸检测级联分类,称haar分类器. 通过这个算法的名字,我们能够看到这个算法事实上包括了几个关键点:Haar特征.A ...

  4. 业务接口+UI层的设计(基于Castle实现的Repository)

    业务接口+UI层的设计(基于Castle实现的Repository) Repository层设计的文章见:[http://www.cnblogs.com/yomho/p/3297042.html]   ...

  5. 基于SIFT特征的全景图像拼接

    基于SIFT特征的全景图像拼接 分类: image Machine learning2013-07-05 13:33 2554人阅读 评论(3) 收藏 举报 基于SIFT特征的全景图像拼接 分类: 计 ...

  6. 基于Haar特征的Adaboost级联人脸检测分类器

    基于Haar特征的Adaboost级联人脸检测分类器基于Haar特征的Adaboost级联人脸检测分类器,简称haar分类器.通过这个算法的名字,我们可以看到这个算法其实包含了几个关键点:Haar特征 ...

  7. 【HEVC帧间预测论文】P1.1 基于运动特征的HEVC快速帧间预测算法

    基于运动特征的 HEVC 快速帧间预测算法/Fast Inter-Frame Prediction Algorithm for HEVC Based on Motion Features <HE ...

  8. OpenCV中基于Haar特征和级联分类器的人脸检测

    使用机器学习的方法进行人脸检测的第一步需要训练人脸分类器,这是一个耗时耗力的过程,需要收集大量的正负样本,并且样本质量的好坏对结果影响巨大,如果样本没有处理好,再优秀的机器学习分类算法都是零. 今年3 ...

  9. OpenCV中基于HOG特征的行人检测

    目前基于机器学习方法的行人检测的主流特征描述子之一是HOG(Histogram of Oriented Gradient, 方向梯度直方图).HOG特征是用于目标检测的特征描述子,它通过计算和统计图像 ...

  10. 照片美妆---基于Haar特征的Adaboost级联人脸检测分类器

    原文:照片美妆---基于Haar特征的Adaboost级联人脸检测分类器 本文转载自张雨石http://blog.csdn.net/stdcoutzyx/article/details/3484223 ...

随机推荐

  1. Django框架创建运行最小程序过程记录

    基于 python语言 Django web框架下 用pycharm创建,修改,运行 最简单程序.旨在过程 ========================================== 步骤一 ...

  2. Java异常 小白版

    什么是异常 在程序运行时打断正常程序流程的任何不正常的情况称为错误或异常.异常包括用户造成的异常和 系统造成的异常. 例如:网络连接中断.操作符越界.加载的类找不到 异常产生的原因和分类 1. 异常产 ...

  3. vscode 下配置 clang

    需要在workspace的文件夹下添加文件: .clang-format 更多参数说明: https://clang.llvm.org/docs/ClangFormatStyleOptions.htm ...

  4. zabbix 4.0修改页面LOGO

    基本页面展示 一.Logo icon-sprite.svg是一个集合的图片,logo和一级菜单栏里面的图标是在这上面平移得到的 第一种方法 1.  zabbix安装好以后的默认LOGO如下: 2.   ...

  5. React 高德地图 进京证 (二)

    上回书说到,躲开摄像头的基本功能实现了,但有三个核心问题: (1)速度慢 (2)距离远易失败 (3)地图限制 第一个问题:较为简单,把几千个摄像头按行政区划分好带上编号,在路线分段避让时按片儿计算,综 ...

  6. Python if __name__ == "__main__" 解释

    一种机制,允许脚本以不同的方式运行,这取决于作为独立的程序执行还是作为模块被其他脚本导入.这种机制就是 if __name == "__main__" 其作用是控制某些代码块只在该 ...

  7. dig 使用

    dig dig(Domain Information Groper)是一个用于 DNS 查询的命令行工具,广泛用于查看域名系统的相关信息. 基本用法 # 查询域名的 A 记录(IPv4 地址): di ...

  8. Centos8下搭建私人开源网盘NextCloud步骤及使用(基于LAMP)

    简介:Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步.共享.版本控制.团队协作等功能.它的客户端覆盖了Wind ...

  9. ubuntu安装过程(双系统模式)中遇到的坑

    笔者在安装上win11后,看我的M.2硬盘太大,就想着以双系统方式再安装上个ubuntu,以方便以后使用.没想到和win11一样,也是连遇到挫折,一番折腾后最终才成功.下面记录下安装要点. 安装win ...

  10. R-Adapter:零样本模型微调新突破,提升鲁棒性与泛化能力 | ECCV 2024

    大规模图像-文本预训练模型实现了零样本分类,并在不同数据分布下提供了一致的准确性.然而,这些模型在下游任务中通常需要微调优化,这会降低对于超出分布范围的数据的泛化能力,并需要大量的计算资源.论文提出新 ...