大数跨境
0
0

详解ResNeXt网络(二)

详解ResNeXt网络(二) AI算法之道
2021-11-19
2
导读:在这篇文章中,我们学习了ResNeXt中block的其他两种实现方式,同时我们重点介绍了分组卷积,即一种新的卷积类型,可以将一个张量视为多个单张量,并分别对每个单张量执行卷积操作。





01


引言

在前文中, 我们重点研究了ResNext blcok的原始表现形式(下图a),并给出了详细的阐述; 


在本文中, 我们将继续研究ResNeXt block块的其他两种表现形式,它们分别利用Concat(上图b)和分组卷积(上图c)来构造对应的block块。


不再累述,让我们直接开始吧!



02


Concat形式


前文中,我们看到了ResNeXt分支利用Inception的拆分-变换-合并策略来构造对应的block块:减少通道数(split),运行3 X 3卷积(transform),重新调整宽度,并将每个分支的结果相加(merge)。


我们介绍的block块的Concat形式与其类似,即拆分和变换策略一样,但是合并的方式转化为了Concat形式,两种方式实质是等效的.


举例,以第一部分中的示例为例:32个分支输入为256维张量,它们将其缩小为4个通道。之后,他们继续使用3 X 3卷积变换数据,而不改变宽度。但是现在我们将合并方式转化为将分支的输出通过concat连接在一起,得到128=32*4个通道,并通过1 X 1卷积将通道数加倍。如下所示:


直观地说,上述方法从表现形式上来看更接近于Inception中的block块,其中变换(transform)的输出(例如,3 X 3和5 X 5卷积)简单地串联而不修改通道数。


Concat形式和形式a是完全一样的!从参数的数量到Flops,基本都保持一致,Concat形式B只是我们在前一篇文章中看到的block块形式a的另一种描述。


03


 Grouped Convolutions


在AlexNet中,分组卷积最初被用作在两个GPU上进行训练的工程辅助工具,但ResNeXt表明,如果使用得当,分组卷积可以使模型获得更高的性能。


与前文一样,我们将使用一个示例来研究分组卷积:

假设我们有一个由128个通道组成的特征图,我们希望在不改变宽度的情况下对其进行变换,这可以使用1 X 1卷积来完成。具体地说,对于输入中的128个通道,每个卷积核将接受128个通道作为输入,而对于输出中的128个通道,总共需要128个这样的卷积核(为了简单起见,省略了空间维度)。请注意,卷积核的输入为整个128个通道,而不仅仅是其中的一半或四分之一;换句话说,输入没有被分成多个组,只有一个组。


如果有两组,会发生什么?输入将被分成两个较小的张量,每个张量有64个通道。因此,滤波器也将被分成两组,其中64个将对应于第一组,其余将对应于另一组。因此,每个滤波器将有64个通道,因为它只在一半的输入上工作,也就是滤波器的输入有64个通道。


对于4个组大小,输入将被四分之一,每个部分有32个通道,滤波器也将被分成4组,每组32个滤波器,每个滤波器有32个通道。


简单概括,如果输入通道数为n_in , 输出通道数为n_out , 我们分组数目为g, 那么

  • 每个组的输入通道数为n_in/g,这样每个滤波器的通道数也为n_in/g

  • 每个组的输出通道数为n_out/g,总的输出也就是n_out

  • 每个滤波器仅在n_in/g上工作,不同组之间不进行任何交互


如下图所示,我们有一个具有8个输入通道、4个输出通道和4个组大小的卷积运算示例。


上图中,我们分了4个组,每个组中有2个通道,这表示每个过滤器采用2=8/4通道。因为组的数量等于输出通道的数量,所以每个组有一个过滤器,但是如果输出的通道数乘以f,那么过滤器的数量也将同时乘以f。


04


 Form C: Grouped Convolutions


最后,我们介绍ResNeXt block块的第三种也是最后一种形式,它是最简洁的。


首先,在形式B中我们将32个3X3输出通道数为4的卷积通过concat操作后将通道数进行合并,这等效于使用一个3X3输出通道为128=4X32,分组数目为32的分组卷积,经过这样的操作后,形式B将被转化为如下右侧形式:

很接近了!请注意,在上面的块中,我们先从1 X 1卷积开始,然后conccat将通道数合并,这相当于从连接开始,然后应用1个1 X 1卷积将输入256通道减小到128个通道,如下所示:

这是ResNeXt块的第三种也是最后一种形式,也是ResNeXt 原文采用的实现方式。

当然,这个网络可以探讨的点还有要多,我强烈建议大家阅读以下原文具体的细节.



05

总结



在这篇文章中,我们学习了ResNeXt中block的其他两种实现方式,同时我们重点介绍了分组卷积,即一种新的卷积类型,可以将一个张量视为多个单张量,并分别对每个单张量执行卷积操作。


您学废了吗?



注:关注公众号,后台回复 ResNeXt, 即可获取论文链接


【声明】内容源于网络
0
0
AI算法之道
一个专注于深度学习、计算机视觉和自动驾驶感知算法的公众号,涵盖视觉CV、神经网络、模式识别等方面,包括相应的硬件和软件配置,以及开源项目等。
内容 573
粉丝 0
AI算法之道 一个专注于深度学习、计算机视觉和自动驾驶感知算法的公众号,涵盖视觉CV、神经网络、模式识别等方面,包括相应的硬件和软件配置,以及开源项目等。
总阅读23
粉丝0
内容573