zoukankan      html  css  js  c++  java
  • 可变形卷积系列(三) Deformable Kernels,创意满满的可变形卷积核 | ICLR 2020

    论文提出可变形卷积核(DK)来自适应有效感受域,每次进行卷积操作时都从原卷积中采样出新卷积,是一种新颖的可变形卷积的形式,从实验来看,是之前方法的一种有力的补充。

    来源:晓飞的算法工程笔记 公众号

    论文: Deformable Kernels: Adapting Effective Receptive Fields for Object Deformation

    Introduction


      传统的卷积由于存在硬性的规则,在对于物体放大或旋转时,不能作出适应性的改变,而可变形卷积则通过改变输入的采样位置来进行适应性的改变,即改变理论感受域。但理论感受域并不能度量像素对输出的贡献,相比理论感受域,更重要的是有效感受域(ERF),通过计算输出对应输入的偏导获得(与卷积权重相关),改变理论感受域只是改变有效感受域的一种手段。
      为此,论文提出可变形卷积核(Deformable Kernels, DK),用于进行可变形建模的新型卷积操作,在推理时根据输入直接生成新的卷积核来改变有效感受域。如图d,DK学习卷积核的偏移来对原卷积进行重新采样,而不改变输入数据。从实验结果来看,DK对分类任务和检测任务都十分有效,结合旧的可变形卷积方法能产生更好的结果。

    Approach


      对有效感受域概念不感兴趣的可以直奔后面对可变形卷积核的描述,前面有效感受域的介绍不影响后面内容。

    A Dive into Convolutions

    • 2D Convolution

      大小为$K imes K$,stride为1的二维卷积操作如公式1,输出为目标区域像素与卷积核乘积的和,$mathcal{K}=[-K/2,K/2]^2$。

    • Theoretical Receptive Field

      卷积层单个输出相对于上一层的输入的感受域大小为卷积核大小$K imes K$,当卷积层叠加起来时,单个输出的对应的隔层感受域也会因此而叠加,得到的叠加区域即理论感受域,与卷积核大小$K$和网络深度$n$线性相关。

    • Effective Receptive Field

      由于卷积的叠加以及非线性激活的引入,理论感受域内的像素对输出的贡献各不相同,可以使用有效感受域(ERF)来度量区域内每个像素对输出的影响,通过计算输出对应像素值的偏导得到,具体可以看参考论文。

    Analysis on Effective Receptive Fields

      这里主要分析如何根据输入和一系列卷积来计算有效感受域,先分析线性卷积网络的情景,再拓展到非线性卷积网络。

      对于线性卷积网络,给定$I^{(0)}$为输入图片以及stride为1的$K imes K$卷积权重合集${W{(s)}}_{s=1}n$,公式1可以展开为公式2,特征图$I$和卷积权重$W$的上标以及卷积核位置$k$的下标为层数$sin [1, n]$。

      根据ERF的定义,输出坐标$j$对应输入坐标$i$的有效感受域值$mathcal{R}^{(n)}(i;j)=partial I_j^{(n)} / partial I_i{(0)}$计算为公式3,$Bbb{1}[cdot]$为指示函数。公式3的意义为所有从$i$到$j$的路径的权重和,权重的计算为卷积核权重的累积,有效感受域值跟输出的采样位置$j$、卷积核位置$k$以及卷积核权重${W{(s)}}$有关。

      假设将第$m$个卷积核$W^{(m)}$替换为$1 imes 1$卷积核$W_{ ilde{k}_m}{(m)}$,ERF的计算会变为公式4,$S=[1,n]$ $m$即不包含$m$层,这里每条路径权重直接乘上$W_{ ilde{k}_m}{(m)}$,因为$m$层只有一个路径,符合指示函数的路径必定包含$k_m$。

      $K imes K$卷积可以看成分散在矩形区域内的$K^2$个$1 imes 1$卷积,因此,公式3可以改写成公式5,将$m$层的$K imes K$卷积看成多个$1 imes 1$卷积,相对的输出位置也要进行相应的修改(这里应该为$j-k_m$比较合适)。

      对于复杂的非线性卷积,在公式1中加入ReLU激活得到公式6,即每层卷积都接激活函数。

      非线性版本的有效感受域值计算为上式,因子$mathcal{C}$使得ERF值变成与数据相关,实际中的有效感受域是不规则的形状,包含许多不规则分布的零值。
      需要注意,公式4和公式5的计算是线性的,使得有效感受域值计算能与内核的线性采样操作兼容,比如使用双线性插值获得小数位置的内核值,即可以认为内核采样等对数据进行线性ERF采样(ERF与输出的采样位置$j$、卷积核位置$k$以及卷积核权重${W^{(s)}}$有关),这种兼容性也可以相似地推广到非线性的情况下。基于以上的分析,论文提出可变形卷积核(Deformable Kernels, DK)。

    Deformable Kernels(DK)

      DK添加了可学习的核偏移值,使得输出的计算从公式1变为公式7,ERF的计算也变成了与核偏移值相关的公式8。由于偏移值通常包含小数,使用双线性插值来计算偏移后的值。
      原卷积核的大小称为score size,一般DK对scope size是没有约束的,即可以从大小为$K{'}$的原卷积中采样出$K2$的新卷积,然后用于大小为$K^2$区域上。这样网络能够尽可能使用更大的原卷积而不会带来太多的额外计算,论文最大的原卷积为$9 imes 9$。

      如图2,DK有两种实现形式,全局模式和局部模式,$mathscr{G}$为可学习的核偏移值生成器,将输入块转换为内核的偏移值:

    • 全局模式$mathscr{G}_{global}$的实现为global average pooling层+全连接层,分别用于降维以及输出$2K^2$个偏移值。
    • 局部模式$mathscr{G}_{local}$的实现为与目标卷积大小一样的卷积操作,输出为$2K2$维,最终输出为$2K2 imes 1 imes 1$。

      全局模式更关注整体图片,根据整图进行核偏移,而局部模式则更关注图片的局部区域,对于小物体,生成形状特别的核(值差异大),从而使得ERF更密集,而对于大物体,生成较扁平的核(值差异小),使得ERF更广阔。一般情况下,局部模式的自由度更高。

    Computation Flow of Deformable Kernels

      图5展示了局部DK的计算示意图,偏移值生成器根据输入生成偏移值,将目标卷积的点均匀平铺在原卷积中,然后根据偏移值进行偏移,使用双线性插值计算偏移后的权重更新目标卷积,最后使用目标卷积对输入进行卷积输出。

      前向时,给予原卷积$W$和学习到的卷积核偏移${ Delta k }$,结合双线性插值$mathcal{B}$生成目标卷积$W^{'}$,然后使用目标卷积对输入进行常规的卷积输出。

      DK的反向传播需要生成3种梯度:

    • 前一层特征图的梯度
    • 当前层原生卷积的梯度
    • 当前层偏移值生成器的梯度

      前两种的计算方法与普通的卷积一样,第三种则使用公式13结合双线性插值的计算方法。

      DK的核心是学习适应输入的偏移值来原卷积进行采样,从而达到可变形的目的,整体思想可能与可变形卷积类似。

      可变形卷积的计算如公式9,主要是对数据进行偏移,而有效感受域则为公式10。如前面说到的,有效感受域与输出的采样位置以及卷积核位置有关,这在一定程度上了解释可变形卷积为何适用于学习形状多变的目标。

      假设同时对数据和核进行偏移,输出的计算以及有效感受域的计算如公式11,尽管两种方法的目的是类似的,但在实际中发现,两种方法协作能够带来很好更好的效果。

    Experiments


      实验主要针对深度卷积(depthwise convolutions)进行优化,内核偏移不能超过越过score size。基础模型为ResNet-50-DW和MobileNetV2,对比实验加入条件卷积(Conditional Convolutions)和可变形卷积(Deformable Convolutions)的对比。

    Image Classification

    Object Detection

    What do Deformable Kernels Learn?

      将MobileNet-V2的最后一层卷积进行t-SNE降维得到可视化结果,点的颜色为类别(10类)或bbox尺寸(10等分),对比DK和条件卷积,条件卷积学习到语义相关的特征,而DK则学习到尺寸相关的特征,这解释了前面的实验两种方法同时使用效果更好。

      对不同的卷积的有效感受域进行了可视化,可变形卷积与DK都能产生类似的适应ERF,但可变形卷积倾向于更广阔的响应,DK则倾向于集中在物体内部,两者结合效果最佳。

    CONCLUSION


      论文提出可变形卷积核(DK)来自适应有效感受域,每次进行卷积操作时都从原卷积中采样出新卷积,是一种新颖的可变形卷积的形式,从实验来看,是之前方法的一种有力的补充。



    如果本文对你有帮助,麻烦点个赞或在看呗~
    更多内容请关注 微信公众号【晓飞的算法工程笔记】

    work-life balance.

  • 相关阅读:
    Windows 8实例教程系列 开篇
    qt 开发发布于 windeploy.exe
    qt qoci 测试验证
    vmware vmx 版本不兼容
    qt oracle
    vc qt dll
    QOCIDriver unable to create environment
    qoci 编译完 放置位置 具体根据情况
    calling 'lastError' with incomplete return type 'QSqlError' qsqlquer
    Hbase 操作工具类
  • 原文地址:https://www.cnblogs.com/VincentLee/p/12826290.html
Copyright © 2011-2022 走看看