ResNeXt网络进化

一. ResNeXt 的 Block 改进

       MSRA 的 KaiMing 转战Facebook的又一力作,大牛的神来之笔:

论文下载:Aggregated Residual Transformations for Deep Neural Networks

代码地址:【Github】

       ResNet、Inception 已经成为目前网络的前进方向,堆叠的Block几乎成了网络的标配,通过超参数(Block size) 去配置网络。

       基于 ResNet 的改进,ResNeXt 无疑是最好的一个,如果把 Inception 改进系看作是花拳绣腿的话,那 ResNext 则是真功夫

       来看下 ResNeXt 的改进Block 对比图:

        ResNeXt网络进化_第1张图片

       一图胜万言,ResNeXt 保留了 ResNet 的堆叠Block,针对单个Blog的改进,将单个Path进行拆分,这样做有什么好处呢?

       左图 64个卷积核(1*1,3*3,1*1)对所有的 input 进行卷积计算,右图通过网络拆分,4个channel一组,提高了网络的分工和局部适应性,32个path的输出向量按照pixel-wise求和(所有通道对应位置点相加),然后再与Base(x)相加。

       对于Path路径个数,作者给取了个名字叫 Cardinality,我们称为分支容量 或者 基数,这就是我们寻找的第二个超参数。另外还有一个 Bottleneck指的是在每一个path或者group中,中间过渡形态的feature map的channel数目(或者卷积核个数)。

       下图是 ResNeXt 的几种等价形式:a)为分割path形式       b)提前做了加法(concatenate)     c)通过 Group Conv 实现与 a、b等价的效果:

ResNeXt网络进化_第2张图片


二. 实验结果对比

       通过实验发现,ResNeXt50 的准确度近似等于 ResNet101层的效果,看下图对比:

ResNeXt网络进化_第3张图片

对比结论:

与 ResNet 相比,相同的参数个数,ResNeXt 结果更好;

      或者说同样的效果,ResNeXt的计算量更少,一个 50 层的 ResNeXt 网络,和 101 层的 ResNet 准确度接近。

增大Cardinality比增大模型的width或者depth效果更好;

ResNeXt 网络结构更加简单,仅需要少量的超参数来描述;

     模块化设计更加合理,没有花拳绣腿。

你可能感兴趣的:(深度学习,深度学习基础)