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

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

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

轻量级网络CNN系列(二):GhostNetV2_第1张图片

回顾

(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

轻量级网络CNN系列(二):GhostNetV2_第2张图片
Ghost 模块:普通的卷积过程
轻量级网络CNN系列(二):GhostNetV2_第3张图片
这里的线性变换是通过DW实现的,上面的两步过程就是先利用PW进行卷积操作,再利用DW进行卷积操作。

GhostNetV2

GhostV2的主要工作就是在Ghost module的基础上,添加了一个改进的注意力块。文中称为解耦全连接注意力机制DFC(Decouplod fully connected)。
轻量级网络CNN系列(二):GhostNetV2_第4张图片

对图片进行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)之间, 信息的流动过程如下。
轻量级网络CNN系列(二):GhostNetV2_第5张图片
GhostV2 bottleneck 的示意图如下,DFC 注意力分支与第一个 Ghost 模块并行,通过点积合并,以增强扩展的特征。然后,增强后的特征被输入到第二个 Ghost 模块,以产生输出特征。它捕捉到了不同空间位置的像素之间的长距离依赖性,增强了模型的表达能力。

轻量级网络CNN系列(二):GhostNetV2_第6张图片

实验结果

轻量级网络CNN系列(二):GhostNetV2_第7张图片

你可能感兴趣的:(计算机视觉,深度学习,网络,深度学习,人工智能)