点击上方“CVer”,选择加"星标"置顶
重磅干货,第一时间送达
本文提出Micro-Factorized卷积,将点和深度卷积分解为低秩矩阵,并提出新的激活函数,称为Dynamic Shift-Max,表现SOTA!性能优于GhostNet、MobileNetV3等网络;
作者单位:加州大学圣迭戈分校, 微软
在本文中介绍了MicroNet,它是一种高效的卷积神经网络具有极低的计算成本。在边缘设备上非常需要这样的低成本网络,但是通常会遭受明显的性能下降。
MicroNet基于2个设计原则来处理极低的FLOPs:
首先,提出Micro-Factorized卷积,将点和深度卷积分解为低秩矩阵,以便在通道数量和输入/输出连接性之间取得良好的平衡。其次,提出了一个新的激活函数,称为Dynamic Shift-Max,以通过最大化输入特征图与其圆形通道移位之间的多次动态融合来改善非线性。融合是动态的,因为它们的参数适用于输入。
基于Micro-Factorized卷积和动态Shift-Max,MicroNet系列在低FLOPs情况下比现有技术具有显著的性能提升。
MobileNets将 卷积分解为深度卷积和点态卷积;ShuffleNets采用Group卷积和Channels随机简化PointWise Convolution;也有学者利用Butterfly transform逼近Pointwise Convolution;EfficientNet找到输入分辨率和网络宽度/深度之间的适当关系;MixNet在一个卷积中将多个内核大小混合在一起;AdderNet用加法代替了大量的乘法;GhostNet应用线性变换来生成ghost feature maps;Sandglass翻转反向残块结构,减少信息损失,并训练一个网络支持多个子网络。
高效推理为每个输入自适应定制合适的子网络。并使用强化学习来学习控制器,以跳过现有模型的一部分。MSDNet允许基于预测可信度的简单样本提前退出。搜索最佳的MSDNet。采用图像分辨率实现有效的推理。
动态网络通过对输入参数的自适应调整来提高模型的表达能力。HyperNet使用另一个网络为主网络生成参数。SENet通过压缩全局上下文重新衡量Channel。SKNet适应关注不同大小的卷积核。Dynamic 卷积是根据多个卷积核的关注程度对它们进行聚合的结果。Dynamic ReLU适应ReLU中两个线性函数的斜率和截距,使用分组全连接层直接生成卷积权值。将动态卷积从空间不可知扩展到空间特定。提出了一种动态群卷积算法,可对输入通道进行自适应分组。将动态卷积应用于实例分割。学习跨尺度的语义分割的动态路由。
极低延迟同时限制了网络宽度和深度。如果把卷积层看作一个图,输入和输出之间的连接由核参数的加权。这里将连接性定义为每个输出节点的连接数。因此,连接的数量等于输出通道的数量和连接的乘积。当计算成本固定时,通道数便与连接数发生冲突。作者认为,两者之间的良好平衡可以有效地避免通道缩减,提高层的表达能力。因此,第1个设计原则是通过降低节点连通性来规避网络宽度的降低。我们通过在更小的尺度上分解点态和深度卷积来实现这一点。
当一个网络的深度显著降低时,它的非线性便会受到约束,导致性能下降。于是作者提出了第2个设计原则通过提高每层的非线性度来补偿网络深度的减小,这里通过设计一个新的激活函数(动态Shift-Max激活函数)来实现这一点。
为了平衡通道数量和输入/输出的连接性。作者在一个更小的尺度上对PointWise和DepthWise的卷积进行因式分解。
文中提出Group自适应卷积来分解PointWise卷积。假设卷积核W具有相同数量的输入和输出通道。将核矩阵W分解为两个Group自适应卷积,其中群数G依赖于通道数C,从数学上可以表示为:
式中, 是 的矩阵; 的shape为 ,channel压缩率为R; 的shape为 ,扩展返回到C作为输出的通道数量。
注意,Group数量不是固定的,它与通道数C和减少比R相适应:
这种平方根关系是通过平衡通道C和输入/输出连接性得到的。
如图3所示。随着group数G的增加C增加E减少。当G=R时,两条曲线相交(C=E),此时每个输出通道与所有输入通道连接一次。将得到的卷积矩阵W在数学上划分为 块,每个块的秩为1。
如图所示,将一个 的深度卷积核分解成一个 的核和一个 的核。每个通道W的核矩阵的形状为 ,它被分解为 向量P和 向量 。 是一个标量值1。这种低秩近似将计算复杂度从 降低到 。
作者以2种不同的方式组合了微因数分解的Pointwise和Depthwise卷积:(a)规则组合和(b)lite组合。前者只是将两个卷积连接起来。lite组合使用微因子分解的Depthwise卷积通过对每个通道应用多个Spatial卷积核来扩展通道的数量。然后应用1组自适应卷积来融合和压缩通道的数量。lite组合更有效,因为它节省了来自通道融合的计算,以弥补学习更多的Spatial卷积核。
本文还提出了一种新的增强非线性的激活函数。它能够动态地将输入特征图与其循环组移位融合,其中的一组通道移位。动态Shift-Max也加强了Group之间的联系。这是对专注于组内连接的微因数分解Pointwise卷积的补充。
设 表示一个输入向量(或张量),它有C个通道,被分成G个Groups。每个Group都有 个通道。其中N通道的循环移位可以表示为 。通过定义Group循环函数将通道移位扩展为Group移位:
其中, 对应于将第 个通道 平移 个Group。动态Shift-Max将多个(J)Group移位组合如下:
其中参数 可以通过平均池化后的两个FC层轻松实现,,类似于SENet的实现方式。
文中总共描述了4种MicroNet模型的结构,FLOPs在6M到44M之间。它们由3种类型的Block组成,它们以不同的方式结合了Micro-Factorized pointwise和depthwise卷积。它们都使用dynamic ShiftMax作为激活函数。
Micro-Block-A使用了微分解点态和深度卷积的精简组合。它在分辨率较高的低电平上是有效的。请注意,信道的数量是通过深度上的微分解卷积来扩展的,而通过组自适应卷积来压缩的。
Micro-Block-B用于连接MicroBlock-A和Micro-Block-C。与Micro-Block-A不同的是,它使用了完全Micro-Factorized pointwise卷积,其中包括两个Group自适应卷积。前者压缩了通道数量,而后者则增加了通道数量。
Micro-Block-C使用常规组合,将深度上的Micro-Factorized pointwise卷积连接起来。它被用于更深处的位置,因为它在通道融合(pointwise)上比lite组合花费更多的计算。当维度匹配时使用跳接。
每个微块有四个超参数:核大小k、输出通道数C、Micro-Factorized pointwise瓶颈处的缩减比R、2个Group自适应卷积的Group数对(G1,G2)。
作者重新设计了Stem层,以满足低FLOPs的约束。它包括一个 的卷积和一个 的群卷积,然后是一个ReLU。第2次卷积将通道的数量增加了R倍。这大大节省了计算成本。
下表2比较了4种不同的计算代价下最先进的ImgageNet分类。在这4个结果中MicroNet性能优于以前的工作。
[1] MicroNet: Towards Image Recognition with Extremely Low FLOPs
上述论文PDF下载
后台回复:MicroNet,即可下载上述论文
目标检测综述下载
后台回复:目标检测二十年,即可下载39页的目标检测最全综述,共计411篇参考文献。
下载2
后台回复:CVPR2020,即可下载代码开源的论文合集
后台回复:ECCV2020,即可下载代码开源的论文合集
后台回复:YOLO,即可下载YOLOv4论文和代码
重磅!CVer-目标检测 微信交流群已成立
扫码添加CVer助手,可申请加入CVer-目标检测 微信交流群,目前已汇集4000人!涵盖2D/3D目标检测、小目标检测、遥感目标检测等。互相交流,一起进步!
同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
一定要备注:研究方向+地点+学校/公司+昵称(如目标检测+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加群
▲长按关注我们
整理不易,请给CVer点赞和在看!