Inception v4
- 由于历史的原因, Inception v3继承了太多的历史包袱,设计并非最优的,技术上的限制主要是为了模型能在DistBelief进行分布式训练。
- 迁移到Tensorflow后,去掉不必要的历史包袱,做一个简单一致的网络设计,有了Inception v4.
Inception v4网络架构
其中包含了Stem、Inception、Reduction、Avarge Pooling、Dropout,下面进行各模块的讲解
stem
Inception v4 中 stem 被修改了。这里的 stem,指的是在介绍 Inception 块之前执行的最初一组操作,Inception v4 和 Inception-ResNet v2 的 stem是一样的。
- 图中没有标记"V"的卷积使用same的填充原则即其输出网格与输入的尺寸正好匹配。,
- 使用"V"标记的卷积使用valid的填充原则,输出激活图(output activation map)的网格尺寸也相应会减少。
Inception
Inception 模块 A,B,C 使用 Inception v4。注意它们与 Inception v2(或 v3)模块相似。
在主 inception 模块中,池化操作被代替,有利于残差连接(residual connections)。
Reduction Blocks
在不同的Inception连接的时候,使用了Reduction Blocks,减小了feature map,却增加了filter bank
Inception v4 采用专门的「Reduction Blocks」用于更改网格的宽度和高度 。早期的版本没有明确的减少块(reduction blocks)但是功能已经实现。
Reduction-A将35x35的Inception转换成17x17的 grid
Reduction-B将17x17的Inception转换成8x8的 grid
Inception-ResNet网络
引入residual connection直连,把Inception和ResNet结合起来,让网络又宽又深
ResNet 有着简单的思路:供给两个连续卷积层的输出,并分流(bypassing)输入进入下一层
stem
Inception v4和Inception-ResNet v2的stem相同
Inception-ResNet v1 grid Modules
Inception-ResNet v2 grid Modules
Reduction-B module
训练速度
可以看出,使用了残差网络的训 练更快,收敛最好的是Inception-ResNet v2
模型区别
- Inception-ResNet v1的计算成本与Inception v3类似。
- Inception-ResNet v2的计算成本与Inception v4类似。
- 它们有不同的stems,如Inception v4部分所示。
- 两个子版本对于模块A, B, C和reduction blocks具有相同的结构。唯一的区别是超参数设置。