AAAI-2017
在 CIFAR-10 上的小实验可以参考博客
文章目录
1 Background and Motivation
1)传统结构 + residual connections = ResNet 获得了 ImageNet 2015的冠军,Are there any benefits to combining Inception architectures with residual connections?
2)改进CNN的结构,提升目标识别的性能,也有利于其它任务(Objection detection、Segmentation、human pose estimation)的性能提升。所以作者在 inception 基础上,着手改进CNN,进一步提升 object recognition 的性能
2 Advantages
We achieve 3.08% top-5 error on the test set of the ImageNet classification (CLS) challenge.
傲世群雄
3 Innovations
- 将 residual connection 结构与 Inception 结合(inception-res-v1、inception-res-v2),进一步提升性能
- v3的基础上 改进 Inception(Inception-v4) ,错误率媲美 inception-res-v2
4 Method
三种结构
- Inception-v4(表现和 Inception-ResNet-v2相当,无 residual 结构)
- Inception-ResNet-v1(与 Inception-v3 计算量相当)
- Inception-ResNet-v2(与 Inception-v4 计算量相当,但是比 Inception-ResNet-v1 表现好很多)
v4 的 Inception blocks 结构和 Inception-ResNet-v1、v2 的不同如下
- 最大的不同当然是后者引入了 residual connection 结构
- Inception-ResNet-v1、v2 比 v4 精炼很多(看图3、4、5)
- Inception-ResNet-v1、v2 比 v4 多了一个 1×1 的 filter-expansion layer without activation,目的是匹配 residual connection 的 dimension(x+f(x),把f(x)的dimension 扩成和x一样)
Inception-ResNet-v1、v2 的不同见本 blog 4.2节
4.1 Inception-v4
Inception-v3 的基础上 Inception-v4(more deeper and wider)
左边是 inception-v4 的 pipeline
右边是 Inception-v4 和 inception-resnet-v2 的 stem
Inception-A、Inception-B、Inception-C 如下:
4.2 Inception-ResNet-v1 / Inception-ResNet-v2
1)Residual connection + Inception-v3 + 调整 = Inception-ResNet
2)Inception-ResNet-v1 和 Inception-v3 计算量大致相当,Inception-ResNet-v2 和 Inception-v4 计算量大致相当
3)BN 只加在了传统的结构中,没有加入到 Residual connection 结构中(TensorFlow memory limit,理论上都用效果会更好)
4)Inception-ResNet-v1、Inception-ResNet-v2 的区别在于
- Stem不同,前者Stem如图6右边,后者 Stem 同 Inception-v4(图2右边)
- Inception A、Inception B、Inception C 形同神不同(v1见图4,v2见图5)
左边是 Inception-resnet-v1(5,10,5 modules) 和 v2(往往是10,20,10 modules) 的 pipeline
右边是 Inception-resnet-v1 的 stem
4.3 Scaling of the Residuals
作者观察到 if filters number 超过 1000,网络迭代后会慢慢死掉(average pooling 之前的 layer的输出为0,也就是最后一个Inception-C的输出)
作者的改进,加入了 Activation Scaling
Even where the scaling was not strictly necessary, it never seemed to harmed the final accuracy, but it helped to stabilize the training.
5 Datasets
ILSVRC 2012
6 Experiments
Inception-v3 PK Inception-resnet-v1
后者更快,但前者最终会更好
Inception-v4 vs Inception-resnet-v2
后者又快又好
Single-crop + 单刀赴会
10 / 12-crop + 单刀赴会(提升)
144-crop + 单刀赴会(进一步提升)
组合拳(test表现更好,说明没有 overfitting)
7 Conclusion
residual connection 能加快训练,不依赖这种结构 Inception (v4)也能达到差不多的结果 。我觉得这是作者超级牛的地方。表现随着版本的提升,作者偏向于认为主要是 model size 的关系。Inception-resnet-v2 和 Inception-v4 比较猛。
Q1:Scaling of the Residuals 的代码实现是什么样子的
A1:参考 【Keras-Inception v4】CIFAR-10