5熊猫网

 找回密码
 免费注册
开启左侧
查看: 43|回复: 0
 孔雀雉 发表于: 2022-5-1 20:59:00|显示全部楼层|阅读模式

[2022年] CVPR 2022 | ViT版的Slimming来了,原作者团队打造,参数少,搜索更高效

 [复制链接]
源自:机器之心Pro

  时隔 5年,network slimming 原作者团队打造出了 ViT 版的 slimming,入选 CVPR 2022。
  卷积网络版的 network slimming 在 ICCV 2017 上被提出,作为神经网络剪枝领域代表性的工作之一,目前已被引用超过 1400 次,五年之后的 CVPR 2022,原作者团队跟 Meta、印度理工学院等机构的研究者联合打造了 ViT 版的 slimming,据悉该工作得到了四个审稿人一致推荐接收!
b957-471bca45fbfda791d5c63b94c08875d9.png
  论文地址:https://arxiv.org/pdf/2201.00814.pdf
  代码地址:https://github.com/Arnav0400/ViT-Slim
  是什么原因让 network slimming 的 ViT 版本得到所有审稿人的一致青睐呢,这里还得说一下 network slimming 这种方法的几个特点,即:简单(simple)+ 有效(effective)+ 灵活(flexible)。通过简单的引入指示因子,slimming 可以边训练边搜索,类似于隐式的参数共享机制,压缩后的目标网络结构通过排序指示因子就可获得,非常高效方便。ViT-Slim 继承了这些优点,同时针对 ViT 主干网络结构的特性做出了几个改进。
  在介绍改进前先回顾一下 network slimming 的方法和原理。用一句话概括就是,对于卷积神经网络,每层每个卷积核都用一个重要性系数去表征它对最后预测结果的贡献程度,如果这个系数接近于 0,就认为它是没有贡献并可以被去掉的。作者通过施加一个正则使得这些系数变得稀疏,同时作者发现由于通常会将卷积核与批量归一(BN)一起使用,因此可以直接使用 BN 层的缩放系数
  作为每层卷积的重要性系数,这样就不需要引入额外的参数了。
  对于 ViT Slimming,需要解决的核心问题是如何在没有 BN 层的情况下设计合适的指示参数来反映不同模块规模对于整个分类性能的重要程度。文章采用的是通过显式地定义可导的 soft mask 来确定每个模块的大小和尺度,整个过程如下图所示。
5121-53e20e27d5dfd13cce23587ce4a101a5.png
  ViT Slimming 同时考虑了 ViT 里面三个模块:输入 tokens,MHSA 和 MLP 模块,它的训练过程可以看成是一个基于权重共享的子网络搜索过程,主干网的权重可以通过加载预训练好的模型参数来加快搜索。训练过程中 soft mask 接近 0 对应的特征相当于动态地被裁剪/丢弃了。该方法的优点是只需训练/搜索一次,就可以通过排序 mask 得到无数个子网络,非常高效灵活。算法优化函数由原始的 cross-entropy 和
  稀疏正则组成,如下所示:
c971-e9f2cc2590ac0147146d03bf69e9b3b3.png
  其中在 ViT 的 MHSA 模块内部加 soft mask 的处理如下:
66a1-1a32a47c082358ec5667c8a978ea764f.png
  在 MLP 模块加 soft mask 的处理如下:
47fe-68fb8f4c696667f58c44b7cf466e4bb7.png
  下面是 ViT-Slim 跟其他一些 ViT 压缩或者瘦身方法的区别,主要在于搜索方法以及使用范围的不同。
ee18-5460ce88e2f1a0279b9bc0e0b421de80.png
  相比其他方法,ViT Slimming 可以同时减少模型参数量和计算量,同时由于可以继承已经正常训练好的模型参数,搜索过程需要的时间非常少,对资源需要也不是很大。
  实验结果
  ImageNet-1K 实验结果:
  1.单个模块不同 budgets 下的精度:
bbcc-c68f91bbe4927fddc970c92a13adb7a2.png
  2.多个模块不同 budgets 下的精度:
2ee1-e7e93fc5506a5e68ab200b25d1ad6dc2.png
  3.跟其他 SOTA 方法的性能比较:
b4fb-2ba4f5ff51bf5f7ef461b0f7ba50a303.png
  可以看出在更少的参数及计算量的条件下,ViT-Slim 可以得到更好的性能。
  下游分类任务的结果:
a440-0facfdfdfa15484910039eb141dfcabb.png
  可视化分析:
  1.搜索得到的每个 Attention head 结构:
0596-d51b98a23409d7e4fb59d6db92520c61.png
  可以看到搜索得到的 attention head 结构数目呈现中间大,两边小(高层更加明显)的现象。
  2.搜索得到的 MLP 维度结构大小:
fd7f-3bf4ac2bafc2dcc2df5a87d5066a47c1.png
  可以看到搜索得到的 MLP 结构同样呈现中间大,两边小的现象,这也是一个非常有意思的地方。
  更多细节大家可以去看原文和代码。
『 5熊猫网 』提醒,在使用本论坛之前您必须仔细阅读并同意下列条款:
  1. 遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规,并遵守您在会员注册时已同意的《『 5熊猫网 』管理办法》;
  2. 严禁发表危害国家安全、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容;
  3. 本帖子由 孔雀雉 发表,享有版权和著作权(转帖除外),如需转载或引用本帖子中的图片和文字等内容时,必须事前征得 孔雀雉 的书面同意;
  4. 本帖子由 孔雀雉 发表,仅代表用户本人所为和观点,与『 5熊猫网 』的立场无关,孔雀雉 承担一切因您的行为而直接或间接导致的民事或刑事法律责任。
  5. 本帖子由 孔雀雉 发表,帖子内容(可能)转载自其它媒体,但并不代表『 5熊猫网 』赞同其观点和对其真实性负责。
  6. 本帖子由 孔雀雉 发表,如违规、或侵犯到任何版权问题,请立即举报,本论坛将及时删除并致歉。
  7. 『 5熊猫网 』管理员和版主有权不事先通知发帖者而删除其所发的帖子。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

© 2002-2022, 蜀ICP备12031014号, Powered by 5Panda
GMT+8, 2022-5-18 09:03, Processed in 0.078000 second(s), 10 queries, Gzip On, MemCache On
快速回复 返回顶部 返回列表