轻量级网络CNN系列(二):GhostNetV2

欢迎关注公众号 – AICV与前沿

欢迎关注公众号 – AICV与前沿

在这里插入图片描述

回顾

(1)Depthwise与Pointwise卷积

DW卷积的一个卷积核负责一个通道,例如对一个3×5×5的图片,输出通道数要与输入通道数相同,则普通卷积操作需要3×3×3×3的卷积核,但DW卷积操作只需要3×3×3的卷积核。

PW卷积相反,是一个1×1×C的卷积核,对每个通道的相同位置进行加权和,C为输入特征图的通道数,若输出通道数为5,则卷积核shape为C×1×1×5。

用DW+PW代替普通卷积,可以减小计算量。

(2)GhostNet

在这里插入图片描述
Ghost 模块:普通的卷积过程
在这里插入图片描述
这里的线性变换是通过DW实现的,上面的两步过程就是先利用PW进行卷积操作,再利用DW进行卷积操作。

GhostNetV2

GhostV2的主要工作就是在Ghost module的基础上,添加了一个改进的注意力块。文中称为解耦全连接注意力机制DFC(Decouplod fully connected)。
在这里插入图片描述

对图片进行HW次element-wise操作,改为分成列和行,分别对列进行W次对行进行H次操作。则计算量就从H×W×H×W变为H×W×H+W×H×W次。论文中FC操作通过DW卷积实现。

在原始的 Self-attention 中,每个 patch 的注意力值的计算涉及所有 patch。而在 DFC 中,每个 patch 的注意力值的计算直接与它水平或垂直位置的 patch 有关,而这些水平或垂直位置的 patch 的计算又与它们水平或垂直位置的 patch 有关。因此每个patch的注意力值的计算也一样涉及到所有 patch。

DFC attention 实现的 GhostNet 称之为 GhostNetV2。DFC attention 是为了配合 Ghost 模块使用, 以捕捉长距离空间位置的依赖关系。具体而言, 对于输入特征 X, 它被送到2个分支里面, 一个是 Ghost 分支, 得到输出特征 Y, 一个是 DFC 分支, 得到注意力矩阵A
, 在典型的 Self-attention 中, 常用到 linear transformation。所以作者在这里也使用1 × 1卷积, 将模块的输入X转化成 DFC 的输入Z。最终输出是将两个分支的结果进行点乘。即:
在这里插入图片描述
Sigmoid的目的是将注意力矩阵的输出结果标准化到(0, 1)之间, 信息的流动过程如下。
在这里插入图片描述
GhostV2 bottleneck 的示意图如下,DFC 注意力分支与第一个 Ghost 模块并行,通过点积合并,以增强扩展的特征。然后,增强后的特征被输入到第二个 Ghost 模块,以产生输出特征。它捕捉到了不同空间位置的像素之间的长距离依赖性,增强了模型的表达能力。

在这里插入图片描述

实验结果

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值