点击蓝字
关注我们
关注并星标
从此不迷路
公众号ID|计算机视觉研究院
学习群|扫码在主页获取加入方式
论文地址:https://arxiv.org/pdf/2401.06426.pdf
计算机视觉研究院专栏
Column of Computer Vision Institute
PART/1
前言
深度学习模型在目标检测的性能上取得了重大突破。然而,在传统模型中,例如Faster R-CNN和YOLO,由于计算资源有限和功率预算紧张,这些网络的规模使其难以部署在嵌入式移动设备上。
深度学习领域的加速发展极大地促进了目标检测的发展,其在人脸检测、自动驾驶、机器人视觉和视频监控等方面的广泛应用。随着目标检测的蓬勃发展,近年来提出了几种深度卷积神经网络模型,例如R-CNN、SSD和YOLO等。然而,随着网络变得越来越复杂,这些模型的规模不断增加,这使得在现实生活中将这些模型部署到嵌入式设备上变得越来越困难。因此,开发一种高效快速的物体检测模型以在不影响目标检测质量的情况下减小参数大小至关重要。
PART/2
摘要总结
PART/3
动机
Network Pruning
模型体积大;
FLOPs(float-point operations,浮点操作);
耗能;
处理器架构和处理速度;
内存占用;
推理时延;
剪枝的不同分类:
根据网络元素类型,可以分为神经元剪枝和连接剪枝;
根据剪枝前后网络结构是否是改变,可以分为结构化剪枝和非结构化剪枝;
根据在推理阶段是否有剪枝,可以分为静态剪枝和动态剪枝;
结构化剪枝可以包括神经元剪枝和连接剪枝,但是是改变了剪枝前的网络结构。非结构化剪枝并没有改变网络结构,而是将分支权重改为0,这样权重为0的分支对整个网络没有影响,从而相当于减掉了该分支。如果观察到在某些迭代权重为0的分支对本轮迭代作用很大(影响性能),可以动态恢复非结构化剪枝造成的为零权重,提供网络性能。神经元剪枝会改变网络结构,属于结构化剪枝。连接剪枝,在权重设置为0并没有改变网络结构时属于非结构化剪枝,在连接删除改变网络结构时属于结构化剪枝。
既然网络不是设计出来的,我们要搜,那么怎么搜网络结构呢?理解这个问题,你就能了解NAS的最基本的思想。想象你是一个考试命题组的出题人,你要出高考题,那怎么出题呢?首先这是高考,你肯定只能出高中生学过的内容,所以需要框定一个出题的范围,这便是搜索空间。确定了出题范围,我们还需要知道到底怎么出题,到底是出选择题好呢,还是填空题好呢?这是出题的策略,对应到这个问题上,就是搜索策略。现在题也出完了,但是我们还需要知道这个考卷的题目出的好不好,一个好的高考试卷应该有一定的区分度!所以我们需要一个评判的标准去了解这个题目出的好不好,这个标准和可以是专家评议,或者学生调研等等,也就是相当于我们需要给我们一个评价的指标。
围绕搜索空间、搜索策略以及评价搜索的指标三个维度展开搜索最优的网络,先确定在哪些模块(卷积,池化等等)里面搜索组合一个网络,然后用什么样的方式组合我们的网络,最后得出的网络我们如何评价它是否好用。这便是NAS算法自动搜索的基本思想。
PART/4
新框架详解
Depth Pruner on CNN
将新方法应用于CNN模型可以参考上图所示的管道。应该先找到基本块,并参考上图中的修剪块来设计相应的修剪块。对于块中的激活层,将其替换为标识层。对于块中不是BatchNorm层的规范化层,将其替换为BatchNorm图层,否则无需执行任何操作。
最后,将在块的末尾插入一个带有BatchNorm层的激活层。如果像ResNet34块这样的位置已经存在激活层,则只需要在块末尾的激活层之后插入BatchNorm层。修剪块完成后,回顾超网训练、子网搜索、子网训练和子网合并过程。将获得修剪后的CNN模型。对于普通的CNN模型,可以定义可以包括两个或多个顺序卷积层的块。
Depth Pruner on Vision Transformer
研究者还将提出的深度修剪器应用于Vision Transformer模型。Vision Transformer块通常具有多头自注意(MHSA)模块和包括两个全连接层的MLP模块。特别是,利用DeiT作为展示修剪流程的案例。如上图所示,为了构建Supernet,在原始模型的LN和活化(GELU)层旁边添加BN旁路,并在剩余添加操作后插入GELU和BN块。经过子网搜索和子网训练,获得了子网,其原始LN和修剪块的GELU操作都被BN取代。添加残余物后,连接GELU&BN块。然后合并子网以获得快速修剪的模型,如上图所示。
PART/5
实验及可视化
下表与一些常见的有效模型进行了比较,因为ConvNeXtV1没有压缩方法。在AMD平台上使用表中较慢的网络EfficientFormerV2-S2作为基准,测试所有网络的速度。作者将模型分为不同 Level ,深度剪枝方法在不同 Level 上实现了可比速度下的更高精度:
在今天分享中,研究者为有效的CNN和Vision Transformer模型提供了一个统一的深度修剪器,以在深度维度上修剪模型。深度修剪器包括四个步骤,即超网训练、子网搜索、子网训练和子网合并。提出了一种新的块修剪方法和渐进训练策略,以更好地利用基线模型权重。在子网合并过程中,使用重新参数化技术使子网变得更浅、更快。将新方法应用于几个CNN模型和transformer模型。SOTA修剪性能证明了新方法的优越性。未来,研究者们将在更多的Transformer模型和任务上探索新方法。
END
转载请联系本公众号获得授权
计算机视觉研究院学习群等你加入!
ABOUT
计算机视觉研究院
应用于园区人脸人体检测、车辆车牌检测识别、烟雾烟火检测、抽烟等行为检测
应用于景区溺水检测、丢失儿童询查、车辆违停检测、垃圾满溢检测、烟火检测、人流量统计等
应用于工厂中的入侵检测、周界巡检、工服检测、产品缺陷检测、产品计件统计、AGV自动搬运等
应用于林业畜牧业中的无人机实时检测、牲畜计数、林业面积测量、枯黄枯死树木检测定位、烟雾烟火检测、垃圾检测等