One example is the Inception architecture that has been shown to achieve very good performance at relatively low computational cost. Recently, the introduction of residual connections in conjunction with a more traditional architecture has yielded state-of-the-art performance in the 2015 ILSVRC challenge; its performance was similar to the latest generation Inception-v3 network. This raises the question of whether there are any benefit in combining the Inception architecture with residual connection.
思想
将残差网络与Inception进行结合,证明残差结构对网络的训练速度起到了非常关键的作用。
- 因为Inception网络可以非常深,可以非常自然的将Inception模块更换为残差连接。这样,就可以把残差的优点加入到Inception模块,并且还可以保留Inception的计算效率的优点
- 除了考虑和残差结合,作者也考虑了,Inception模块本身是不是也可以做到更深,更宽。
残差结构:
模型结构
- Inception V4
- 只有Inception模块
- 如果模块中含有”V”,表示采用”VALID”的Padding,否则为”SAME”
- 深度达到了75层(卷积)
- 共用模块Reduction-A: k=192,l=224,m=256,n=384
- Inception V4与V3相比,高层的结构相同,但底层的特征提取不同
- Inception V4相比Inception-ResNet模型,更强调宽度,尤其是在高层上
- Inception-ResNet-v1
- 包含残差模块
- 相比原始的残差模块,论文采用的更加cheaper的Inception block
- 每一个Inception block后面都会跟着一个1x1卷积进行维度扩张
- 只在基础的卷积操作中,采用Batch-Normalization操作 。这样节省下来的空间,可以使得网络更深,也能使得模型在一个GPU机器上进行训练
- 深度可以达到92层(卷积)
- 共用模块Reduction-A: k=192,l=192,m=256,n=384
- 相比较Inception V3底层提取相同,但添加了残差连接的同时,在高层上,宽度稍微减弱
- Inception-ResNet-v2
- 同Inception-ResNet-v1
- 深度达到了95层(卷积)
- 共用模块Reduction-A: k=256,l=256,m=384,n=384
- 与Inception -V4的底层提取相同,与Inception-ResNet-V1高层结构相同,但参数更多
- 共用模块Reduction-A
- 总结
- Inception-V4与Inception-V3在高层上的结构相同,改进了Inception-V3的底层提取结构,在降低分辨率上,采用了Inception-V3提高的Figure-10种的方法
- Inception-ResNet-V1在Inception-V3的基础上,改进而来,但是在高层上,增加残差的同时,降低了原先每一个模块的宽度
- Inception-ResNet-V2在Inception-V4和Inception-ResNet-V2的基础上发展而来,结合了Inception-V4的底层部分与Inception-ResNet-V2的高层部分,但参数更多
结果分析
- 带有Resdual模块的模型,训练时,收敛速度更快
- 带残差模块的模型,最终的收敛效果更好
- Inception-V4版本的最终效果和Inception-ResNet-V2的效果差不多
Inception-V3版本的最终效果和Inception-ResNet-V1的效果差不多