注:借鉴整理,仅供自学,侵删
1 发展历程
Inception结构最初由GoogLeNet引入,GoogLeNet叫做Inception-v1;之后引入了BatchNormalization,叫做Inception-v2;随后引入分解(卷积核尺寸变化),叫做Inception-v3。
2 对残差模块的缩放
我们也发现,如果filter的数量超过1000,残差网络开始出现不稳定,同时网络会在训练过程早期便会出现“死亡”,即经过几万次训练后,平均池化层(average pooling) 之前的层开始只生成0。降低学习率、增加额外的BN层都无法避免这种状况。
我们发现,在将残差加到前层的activation之前,对本层的activation进行放缩能够稳定训练。通常,我们将残差放缩因子定在0.1到0.3之间去缩放residuals。
类似的不稳定在ResNet文中也出现过,文中建议通过两个阶段的训练来避免这种情况,其中第一个“warm-up”阶段使用极低的学习率,紧接着第二阶段使用高学习率。我们发现如果滤波器数量非常大,那么即使很低的学习率(0.00001)也不足以解决不稳定性,而且使用高学习率训练对其效果也有损伤。最终我们发现只需对残差进行缩放的方法更加可靠。
即使缩放并不是完全必须的,它似乎并不会影响最终的准确率,但是放缩能有益于训练的稳定性。
3 网络结构
Inception v4、Inception ResNet V1和Inception ResNet V2网络结构
写的很好,融合了之前Inception的系列结构,并对网络基本模块介绍