ResNeXt结构解读

论文:Aggregated Residual Transformations for Deep Neural Networks (2017CVPR上)

论文地址:https://arxiv.org/pdf/1611.05431.pdf

PyTorch代码https://github.com/miraclewkf/ResNeXt-PyTorch

原文来源https://blog.csdn.net/hejin_some/article/details/80743818

ResNeXt是一个用于图像分类的简单、高度模块化的网络结构。

作者提出 ResNeXt 的主要原因在于:传统的要提高模型的准确率,都是加深或加宽网络,但是随着超参数数量的增加(比如channels数,filter size等等),网络设计的难度和计算开销也会增加。因此本文提出的 ResNeXt 结构可以在不增加参数复杂度的前提下提高准确率,同时还减少了超参数的数量。

当然还有一些数据证明 ResNeXt 网络的优越性,例如原文中的这句话:In particular, a 101-layer ResNeXt is able to achieve better accuracy than ResNet-200 but has only 50% complexity。

Table1 列举了 ResNet-50 和 ResNeXt-50 的内部结构,另外最后两行说明二者之间的参数复杂度差别不大。

 

作者的核fig3.a 就是前面所说的aggregated residual transformations。

fig3.b 则采用两层卷积后 concatenate,再卷积,有点类似 Inception-ResNet,只不过这里的 paths 都是相同的拓扑结构。fig 3.c采用的是grouped convolutions,这个 group 参数就是 caffe 的 convolusion 层的 group 参数,用来限制本层卷积核和输入channels 的卷积,最早应该是 AlexNet 上使用,可以减少计算量。

fig 3.c 采用32个 group,每个 group 的输入输出 channels 都是4,最后把channels合并。

作者在文中明确说明这三种结构是严格等价的,并且用这三个结构做出来的结果一模一样,在本文中展示的是 fig3.c 的结果,因为 fig3.c 的结构比较简洁而且速度更快。

作者的核心创新点就在于提出了 aggregrated transformations,用一种平行堆叠相同拓扑结构的blocks代替原来 ResNet 的三层卷积的block,在不明显增加参数量级的情况下提升了模型的准确率,同时由于拓扑结构相同,超参数也减少了,便于模型移植。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页