1、原始残差网络
最基本的残差块。中间的两层神经网络学习输入输出之间的残差,而旁边的链接就像一个高速公路,使得反向传播算法中的残差能通过这条路传到前边去。当网络变深时可以使得中间的输出为0,那么网络就能自适应的变成一个浅一点的网络。
左边basic block 这个模块就只有两层,是最基本的残差模块。在res18中就使用这种。
右边的叫做Bottleneck block,其像一个瓶子一样会有瓶颈的部分,即该模块先对输入数据进行降维,减少数据量,然后再升维匹配输入数据的尺寸。
上表为不同层数的残差网络的设计结构。
2、残差网络的第二个版本
主要是针对模块的顺序进行了组合,然后验证哪种情况效果最好,最后一种效果最好。
3、resnext
ResNeXt可以说是基于Resnet与Inception 'Split + Transfrom + Concat'而搞出的产物。
整体的结构如上表。
一些变体。
效果优于传统的resnet
4、res2net
将输入feature map划分为几个组。一组卷积核首先从一组输入feature map中提取特征。然后将输出的feature map与另一组输入feature map再通过另一组卷积核提取特征。这个过程重复几次,直到处理完所有的输入feature map。最后,将所有组输出的feature map拼接起来,再通过1x1的卷积核进行特征融合。当通过3x3的卷积核的时候,感受野也会增加。
此处没有对第一次拆分进行卷积操作,一是可以减少参数的数量,二是可以特征重利用。
并且使用了SE模块。
参考链接: