CNN卷积神经网络之Inception-v4,Inception-ResNet


未经本人同意,禁止任何形式的转载!

前言

《Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning》
论文地址:https://arxiv.org/abs/1602.07261.

在15年ResNet 提出后,2016年Inception汲取ResNet 的优势,推出了Inception-v4。将残差结构融入Inception网络中,以提高训练效率,并提出了两种网络结构Inception-ResNet-v1和Inception-ResNet-v2

论文观点:“何凯明认为残差连接对于训练非常深的卷积模型是必要的。我们的研究结果似乎不支持这种观点,至少对于图像识别而言。我们证明在不利用剩余连接的情况下训练竞争性非常深的网络并不是很困难(为此他们不利于残差结构,造出了更复杂、精巧的Inception v4,也达到了与Inception-Resnet v2近似的精度)。然而,残余连接的使用似乎极大地提高了训练速度,这对于它们的使用来说仅仅是一个很好的论据。”

网络主干结构

在这里插入图片描述

1.Inception v4

Inception-v4中的Inception模块分成3组,基本上inception v4网络的设计主要沿用了之前在Inception v2/v3中提到的几个CNN网络设计原则,但有细微的变化,如下图所示:

在这里插入图片描述
在这里插入图片描述

2.Inception-ResNet

Inception-ResNet网络是在Inception模块中引入ResNet的残差结构,其中Inception-ResNet-v1对标Inception-v3,两者计算复杂度类似,而Inception-ResNet-v2对标Inception-v4,两者计算复杂度类似。

在Inception-ResNet中所用的inception-ResNet模块里都在Inception子网络的最后加入了一个1x1的conv 操作用于使得它的输出channels数目与子网络的输入相同,以便element-wise addition。此外,论文中提到,Inception结构后面的1x1卷积后面不适用非线性激活单元。可以在图中看到1x1 Conv下面都标示Linear

在含有shortcut connection的Inception-ResNet模块中,去掉了原有的pooling操作

BN层仅添加在传统的卷积层上面,而不添加在相加的结果上面。不是出于精度的考虑,而是在这个部分不使用BN层可以节约GPU资源

(1)Inception-ResNet v1

Inception-ResNet-v1网络主要用来与Inception v3模型性能比较。因此用的常规Inception模块有所减少,为了保证它的整体计算/内存开销与Inception v3近似,才能保证比较的公平性
在这里插入图片描述

在这里插入图片描述

(2)Inception-ResNet v2

相对于Inception-ResNet-v1而言,v2主要探索残差网络用于Inception网络所带来的性能提升。因此所用的Inception子网络参数量更大,主要体现在最后1x1卷积后的维度上,整体结构基本差不多。
在这里插入图片描述
在这里插入图片描述
reduction模块的参数:在这里插入图片描述

3.残差模块的scaling

如果滤波器数量超过1000,则残差变体开始表现出不稳定性,并且网络在早期的训练中就开始“死亡”,这意味着平均池之前的最后一层几万次迭代后开始只产生0。无论是通过降低学习率,还是通过添加额外的BN,都无法避免

作者实验发现如果对inception-resnet网络中的residual的输出进行scaling,即缩放之后再相加,可以让整个训练过程更加地稳定。通常约为0.1~0.3(非必须的)。
在这里插入图片描述

早在之前,何凯明就观察到类似的不稳定性。在在非常深的残留网络的情况下,何凯明建议进行两阶段训练,其中第一个“预热”阶段以非常低的学习率完成,接着是第二阶段具有高学习率。但,如果滤波器的数量非常高,即使非常低(0.00001)的学习率也不足以应对不稳定性。作者发现仅仅缩放残差更加可靠即使缩放不是绝对必要的,它似乎也不会损害最终的准确性,但它有助于稳定训练

训练策略

RMSProp (decay of 0.9 and ε = 1.0).。使用0.045的学习率,每两个epoch以0.94的指数速率衰减。

结果

在这里插入图片描述
在这里插入图片描述

代码

torchvision包里没有模型,下面给出一个别人的可以参考的代码实现(pytorch)。

上一篇:CNN卷积神经网络之ResNet.

猜你喜欢

转载自blog.csdn.net/qq_41917697/article/details/113896277