《Involution:Inverting the Inherence of Convolution for Visual Recognition》论文笔记

参考代码:involution

1. 概述

导读:CNN操作已经被广泛使CV领域,其具有空间无关性(spatial-agnostic)和通道特异性(channel-specific),前一个性质来源于在空间尺度上共享卷积参数,后一个性质来自于输出通道维度上的参数各不相同。在这篇文章中提出了一种性质与之相反的操作involution,通过学习的方式去得到卷积参数,之后经过维度变换之后与unfold之后的特征进行multiply-add,从而得到最后的输出结果,这里用到的multiply-add操作可以看作是self-attention的一种形式。因而整体上文章提出的involution操作具有了空间特异性和通道无关性,并且融合了self-attention的特性。以文章的操作作为基础模块去构建检测/分割任务网络,均在原来的基础上具有较大提升,而且由于这个操作本身的特性,使得其参数量/计算量有所减少。

现有的很多网络结构都是设计在算子CNN基础上的,其具有空间无关性与通道特异性,首先对这两个特性进行分析:

  • 1)空间无关性:CNN算子中使用相同的参数在空间维度上进行滑动运算保证计算效率,同时也满足了平移不变性的需求。但是这样的方式却使得卷积核在不同空间位置上对于不同视觉任务的适应能力不足,而且其局部特性也限制了其感受野(增大感受野多是 3 ∗ 3 3*3 33卷积的堆叠,而不是直接上采用大尺寸的卷积核);
  • 2)通道特异性:这里通过在输出通道上使用不同的卷积核从而使得网络中的信息被编码到了不同的channel中去。其实这样的形式是比较冗余的,文章后面的实验也表明通过分组的形式共享卷积参数,在一定的范围内对性能的影响很小,因而通道中存在较多的冗余;

对此文章提出了新的算子involution操作,通过算子设计将CNN的空间无关性和通道特异性进行对调,从而可以在相同条件下相比CNN算子减少计算量和参数量(后面内容会对其进行比较)。相比传统CNN算子新算子具有如下优点:

  • 1)由于CNN算子参数量和计算量的原因,不能使用较大尺寸的卷积核,多是使用多个小卷积核堆叠的形式实现增大感受野。而由于文章的算子相对起来更加轻量化,这就使得可以使用更大尺寸的卷积核,从而增加会上下文信息的获取能力;
  • 2)involution算子在优化的过程中不仅仅优化卷积核参数,还优化生成卷积核参数的参数(可能会对网络的训练带来一定难度,需实际验证),之后通过在空间维度上进行mutiply-add操作实现,卷积结果的加权组合,实现类似self-attention的范式,但相对self-attention操作省去了位置编码的部分;

2. 方法设计

2.1 回顾传统卷积操作

假定输入的特征图 X ∈ R H ∗ W ∗ C i X\in R^{H*W*C_i} XRHWCi,输出的通道数量为 C o C_o Co,则需要使用到的卷积核为 f ∈ R C o ∗ C i ∗ K ∗ K \mathcal{f}\in R^{C_o*C_i*K*K} fRCoCiKK,这里 K K K是卷积核的大小。经过卷积之后输出的特征描述为:
Y i , j , k = ∑ c = 1 C i ∑ ( u , v ) ∈ Δ k f k , c , u + ⌊ K 2 ⌋ , v + ⌊ K 2 ⌋ X i + u , j + v , c Y_{i,j,k}=\sum_{c=1}^{C_i}\sum_{(u,v)\in\Delta_k}\mathcal{f}_{k,c,u+\lfloor\frac{K}{2}\rfloor,v+\lfloor\frac{K}{2}\rfloor}X_{i+u,j+v,c} Yi,j,k=c=1Ci(u,v)Δkfk,c,u+2K,v+2KXi+u,j

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值