论文解读《ResRep: Lossless CNN Pruning via Decoupling Remembering and Forgetting》
《ResRep: Lossless CNN Pruning via Decoupling Remembering and Forgetting》
论文地址:https://arxiv.org/pdf/2007.03260.pdf
code地址:https://link.zhihu.com/?target=https%3A//github.com/DingXiaoH/ResRep
一、论文主要思路:
- 在模型的conv层之后(若没bn层,有bn层则将conv-bn层合并形成一个卷积操作之后再加入compactor layer)加入修剪层(compactor layer论文最后说明为何要单独加入修剪层),是1*1的卷积核,也就是只对conv输出做线性变换
- 在1加入的修剪层上施加惩罚项,使之趋于0,增加稀疏性。(在本文中,并没有这种做,在更新修剪层参数时直接加上惩罚项的梯度,这样等价于在目标损失函数上加上惩罚项)对于施加惩罚项进行稀疏训练可以参考这个论文:https://blog.csdn.net/janezjlj/article/details/127508566?spm=1001.2014.3001.5501
- 对于2训练之后,将接近0的通道进行删除
- 将conv-compactor layer 进行等价合并,形成修剪后的模型
思路对应原文如下:
二、接下来对思路当中几个点作一下说明:
思路第一步的在conv后紧跟bn层,如何将conv-bn合并成一个conv:
公式1:conv层的输出
公式2:conv-bn的输出
公式4:将公式2拆解即可得到以下
施加惩罚项与不施加直接更新梯度的对比
公式10 是直接在损失函数之后加入惩罚项
在本文当中惩罚项如下公式11和12,是通道的参数平方和
那么,更新则使用公式14,故我们可以省略在损失函数之后加入惩罚项,直接在梯度更新时加上惩罚项的梯度。
观察公式14还会发现在第一项损失的梯度乘上了m,这个m是{0,1},代表是否希望将F参数进行置为0。当m=0时,那么前一项为0,F就可以在后一项的作用下稳步趋于0,达到高修剪性。
那么第三步来说下修剪,在下图公式3中,S(i)是保留的通道index,那么左边是该层修剪之后的参数。由于修剪该层的输出通道,下一层的输入通道数也会随之改变,故公式3右边的是下一层修剪之后的参数,可以看到输入通道也是S(i)。
再来聊一聊,修剪之后如何将conv-compactor合并成一个conv,进而形成修剪后的模型:
下图是conv-compactor的输出
那么下图是上图由于卷积可加性,展开之后:
想要将上图中公式7左边转换为等号右边部分,则K`如公式8,b的如公式9
三、最后说一下文章标题:ResRep
其实就是将训练与修剪进行解耦,使得修剪不会影响训练的准确率。解耦即是通过在conv之后加入单独的修剪层实现的。只在修剪层进行惩罚项,不会影响其他层参数的梯度更新结果。那么就不会使训练性能下降。
论文解读《ResRep: Lossless CNN Pruning via Decoupling Remembering and Forgetting》相关推荐
- 论文解读PCT: Point Cloud Transformer(用于点云处理的Transformer)
最近几年transformer越来越火,在NLP.CV等领域都取得了很大的成功.这篇文章作者利用了transformer能够处理无序数据的特点,将transformer应用到点云的处理上.它的想法是基 ...
- CVM2021| PCT: Point cloud transformer(分类+分割任务SOTA)
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨paopaoslam 来源丨 泡泡机器人SLAM 标题:PCT: Point cloud tra ...
- PCT: Point Cloud Transformer
PCT:点云Transformer Meng-Hao Guo Tsinghua University gmh20@mails.tsinghua.edu.cn Jun-Xiong Cai Tsinghu ...
- FastFormers 论文解读:可以使Transformer 在CPU上的推理速度提高233倍
自Transformers诞生以来,紧随其后的是BERT,在几乎所有与语言相关的任务中,无论是问题回答,情感分析,文本分类还是文本生成,都占据着NLP的主导地位. 与RNN和LSTM消失的梯度问题(不 ...
- Point Cloud Transformer(PCT)代码实现
Point Cloud Transformer(PCT)代码实现 目前最火热的Transformer在自然语言和图像识别中扮演了极其重要的角色,在点云数据集中也不例外,清华大学近期提出在点云中运用Tr ...
- 论文解读:《基于BERT和二维卷积神经网络的DNA增强子序列识别transformer结构》
论文解读:<A transformer architecture based on BERT and 2D convolutional neural network to identify DN ...
- Point Cloud Transformer(PCT)阅读翻译
PCT: Point Cloud Transformer 1. Introduction transformer是一种 encoder-decoder结构,包含了三个模块:输入词嵌入,位置(顺序)编码 ...
- 论文阅读 PCT:Point Cloud Transformer
论文阅读 PCT:Point Cloud Transformer PCT 介绍 Input Embedding native 版本 enhanced 版本 Attention PCT 介绍 PCT是基 ...
- AI论文解读:基于Transformer的多目标跟踪方法TrackFormer
摘要:多目标跟踪这个具有挑战性的任务需要同时完成跟踪目标的初始化.定位并构建时空上的跟踪轨迹.本文将这个任务构建为一个帧到帧的集合预测问题,并提出了一个基于transformer的端到端的多目标跟踪方 ...
- 论文解读:《功能基因组学transformer模型的可解释性》
论文解读:<Explainability in transformer models for functional genomics> 1.文章概括 2.背景 3.相关工作 4.方法 4. ...
最新文章
- CentOS安装VSFTP及配置用户
- jQuery 的 slideUp 和 slideDown 下拉卷动问题
- html5插件教程,HTML5教程 | HTML5 time元素
- PHP代码加密 -- php_strip_whitespace函数,去掉源代码所有注释和空格并显示在一行...
- Subject 在 SAP Spartacus Popover Component 中的应用
- 开心的金明(洛谷-P1060)
- Mysql数据库-Centos和Raspbian主从复制(备份)
- 刚装的matlab R2010a运行quad2d时提示找不到指定的程序! 提示信息: libmwblas: load error: csrot Caught
- 电脑一直弹出传奇游戏网页弹窗怎么办
- 转:标准C++中的string类的用法总结
- 奥本海姆信号与系统第2版笔记和课后答案
- 用QT实现一个简单的桌面宠物
- 结构梁配筋最牛插件_结构设计最让人困惑的问题解析汇总
- ARM学习日记--开发板的使用
- 车主之家-汽车销量与汽车配置-python爬虫实现
- 微信小程序WebSocket使用案例
- python学习No5
- echarts中国地图(百度地图)
- 中国农业科学院培训中心职业技能等级证书及培训证书
- 二维点云拉普拉斯深度平滑算法-matlab
热门文章
- 报SQL异常Parameter index out of range (1 > number of parameters, which is 0).
- 全面解析四大主流音频技术
- zblog php wordpress,zblog和wordpress哪个好
- ArcGIS API For Javascript 4.15 绘制地图:在地图上测距离、测面积和在不同图层上搜索
- Learn OpenGL 笔记7.4 PBR-Specular IBL(Image based lighting-特殊的基于图像的照明)
- win10 icc文件路径
- 运营技巧|要如何提升用户留存率?
- 关于wlw(windows live writer):“无法连接到您的日志服务:服务器响应无效”的解决方案
- 读 Lars V. Ahlfors 之《复分析》
- Mac 如何开启实现DOH保护隐私?