![深度学习视频理解](https://wfqqreader-1252317822.image.myqcloud.com/cover/920/43737920/b_43737920.jpg)
2.1.11 ResNeXt
ResNeXt(Xie et al.,2017)是ResNet的另一改进。之前的深度学习算法通常靠加深或加宽网络来提升性能,但计算开销也会随之增加。ResNeXt 旨在不改变模型复杂度的情况下提升性能。受精简而高效的Inception模块启发,ResNeXt 将 ResNet中的残差分支从一个分支变为多个分支,最终将多个分支的结果相加合并;受简单而有效的VGGNet 网络的启发,ResNeXt中每个分支采用相同的网络结构,并且重复堆叠相同的模块,特征空间维度减半时,特征通道数加倍。如图2-15所示,图2-15(a)是ResNet中残差模块的结构,图2-15(b)是ResNeXt中改进的残差模块的结构。相比于增加网络宽度或深度,ResNeXt通过增加分支数,可以更加高效地提升准确率。
![img](https://epubservercos.yuewen.com/E5C1AE/23020634309724506/epubprivate/OEBPS/Images/txt002_144.jpg?sign=1739270097-i1xqfEIZmdhBB9lOMAkQPcOGa9UMunjM-0-3badf6dbd6af76c6079d0108c0e02abb)
图2-15 ResNeXt的等价实现
ResNeXt中的模块和Inception模块不同之处有3点:
● ResNeXt的每个分支的结构都相同,感受野也相同,而 Inception的每个分支结构不同,由于不同分支的卷积层的卷积核维度不同,每个分支的感受野大小也不同。
● ResNeXt的各个分支通过相加的方式合并,而 Inception的各个分支通过特征拼接的方式合并。
● ResNeXt中使用了短路连接,而 Inception 没有使用短路连接。
为了方便实现,ResNeXt 对其中的计算进行等价变换,如图2-15所示。首先,由于卷积是线性操作,先对每个分支进行卷积,再将结果相加(见图2-15(b)),等价于先将各个分支特征拼接在一起,再进行
卷积(见图2-15(c))。图2-16 展示了这个等价过程,以两个分组为例,假设分组
卷积的两个分组的卷积核分别为
,输入特征的两个分组对应空间位置的特征为
,因此分组卷积的输出分别是
,特征相加之后的结果为
![img](https://epubservercos.yuewen.com/E5C1AE/23020634309724506/epubprivate/OEBPS/Images/txt002_151.jpg?sign=1739270097-xNJ657I6JpABgr6f3WKBwG2CLUbnBehv-0-bcd9bceda76e9c6fb5764e64ffc92cea)
图2-16 分组卷积之后相加等价于特征拼接之后
卷积
![img](https://epubservercos.yuewen.com/E5C1AE/23020634309724506/epubprivate/OEBPS/Images/txt002_154.jpg?sign=1739270097-ljVVS40TgnRtCc0KwN2PHAIInClXbO1M-0-0af62f3d71fe96dbc864c4bdd5292a83)
(2.5)
如果首先将特征进行拼接,卷积层的卷积核也相应地进行卷积核拼接,卷积结果为
![img](https://epubservercos.yuewen.com/E5C1AE/23020634309724506/epubprivate/OEBPS/Images/txt002_156.jpg?sign=1739270097-JJWUrBVPtcMfKPBT3G3O1J9fZMvXAhh9-0-efc27585331399e2f9bfa83f438c34a6)
(2.6)
两者计算是等价的。
其次,每个分支分别进行卷积之后再进行
卷积,等价于整体进行
卷积之后分组,然后进行分组卷积(见图2-15(d)),其中分组的组数等于ResNeXt的分支数。最终,ResNeXt的结构可以巧妙地使用分组卷积进行实现。
总之,ResNeXt 综合了ResNet和Inception的优点,并巧妙地利用分组卷积进行实现。ResNeXt 发现,增加分支数是比加深或加宽更有效地提升网络性能的方式,例如,ResNeXt-101 复杂度只有 ResNet-200的一半,但是准确率更高。ResNeXt的命名旨在说明这是下一代(NeXt)的ResNet。