其他分享
首页 > 其他分享> > CVPR 2021 Rethinking Channel Dimension for Efficient Model Design

CVPR 2021 Rethinking Channel Dimension for Efficient Model Design

作者:互联网

写在前面

这篇文章配合原文食用效果更佳。作者资历尚浅,仍在学习中,欢迎讨论指正。
论文传送门:Rethinking Channel Dimension for Efficient Model Design

主要思路

通过研究channel数量的变化对网络的表达能力的影响,找到一种最优的配置channel数的方法,使轻量化网络(定义为限制网络的parameters 和 Flops)的accuracy提高。

创新

“Channel Dimension Configuration”。NAS的方法大部分是固定channel数,配置网络的其他参数,或仅仅在传统channel配置附近做一些微调,没有系统的研究过怎么样配置每一层channel的数量是最优的。因此NAS方法也有一定局限性。

实验过程

前述知识:

矩阵的秩:一个矩阵的最大线性无关行数称为行秩,最大线性无关列数称为列秩,秩是行秩和列秩中的较小值。

inverted bottleneck:
图源
residual block和 inverted residual block 最大的区别在于,residual block是将特征图的通道数通过1x1卷积进行压缩,再进行处理。inverted residual block是将特征图的通道数变多再进行处理。
在这里插入图片描述
上图是inverted residual block的详细结构,其中PW: point-wise conv; DW: depth-wise conv。

上述图源及inverted residual block的详细解释请转:https://www.cnblogs.com/hejunlin1992/p/9395345.html

1. 研究一次channel数的变化和矩阵秩的变化的关系
channel数的变化影响输出特征图矩阵的秩,作者猜想矩阵的秩可以评估每层的表达能力。秩越大,该层的表达能力越强。
在这里插入图片描述

Channel Dimension ratio=输入channel数 / 输出channel数 Rank Ratio = 秩 / 输出channel数
Expansion Ratio = 输出channel数 / 输入channel数

由图分析:

得出结论:

实验证明:
在这里插入图片描述
2. 研究整个网络的channel数量配置方案
问题的公式化:
在这里插入图片描述
令ci = a * f(i) + b
其中,a和b是待搜索的参数,f(i)是分段线性函数,每层是一个线性函数。
实验结果:
在这里插入图片描述
在这里插入图片描述
(样本总量为200个;mid10%:50%-60%)
实验结论:最好的channel数量配置方法是随着层数序号的增加呈线性函数。(例如,第1层16channels,第二层32channels,第三层48channels,线性函数y = 16x)(如上图所有top10%的都是线性增加的,acc越低的越不是线性的)

3. 按照所得结论升级现有网络
1)ImageNet上的分类任务
在这里插入图片描述

数据集ImageNet(分辨率224x224) + 有数据增强 + SGD + 【minibatch size=512 】+【 lr=0.5 cosine lr schedule】 +【 weight decay=1e-5】
2)单独和EfficientNet进行比较
Accuracy的比较:
在这里插入图片描述
可伸缩性的比较:
在这里插入图片描述
CPU:Intel Xeon CPU E5-2630(batchsize=1)
GPU:V100 (batchsize=64)
可伸缩性好。基本上所有的ReXNet都比相应大小的EfficientNet效果好。同时随着模型的深度增加,不管是在CPU还是GPU上,ReXNet所需时间都更短。

检测部分实验略。

3)channel数线性增长为最优解的结论不受Flops限制
在这里插入图片描述
4)秩的可视化
奇异值:
在这里插入图片描述
在这里插入图片描述
矩阵A的秩等于它的非零奇异值的个数。
在这里插入图片描述

标签:Rethinking,Efficient,residual,inverted,CVPR,block,线性,卷积,channel
来源: https://blog.csdn.net/weixin_44933805/article/details/120248055