Inception v1
GoogleNet也就是inceptionv1 是堆叠了9个inception模块 (加入1*1卷积之后的)。
上图为inception模块还是比较简单的。
由于传统的inception模块计算量太大,所以gooldnet使用了1*1卷积对其进行了降维处理。左侧为传统的inception模块,右侧为加入1*1卷积后的模块。
Inception v2
创新了三种inception模块。
A模块是将5*5的卷积用两个3*3的卷积替代(7*7的卷积可以用三个3*3的卷积替代)。 B模块是将7*7卷积用1*7和7*1的不对称卷积替代(沿深度展开)。 C模块是沿宽度展开。主要用于增加表示维度。
以上基本都是为了减少参数增加计算的效率。
减少参数的方法:
1. 大卷积核换成多层堆叠的小卷积核
2. 1*1卷积用来升维和降维
3. N*N卷积 -> 1 * N 和 N * 1
以上方法会带来更少的计算量和更多的非线性变换。
传统的下采样方法。普通的池化(先增维再池化)会带来很大的计算量。直接用步长为2的池化核进行池化计算量不大,但是会造成信息的缺失。
Inception模块采用并行的方式,在扩充通道的同事下采样,还保证了计算的效率。
Inception v3
label smooth
加上各种技巧之后的最优模型(最下边)就是Inception v3模型。