October 9, 2018
by Frank
近些年,非常深的卷积神经网络在提升图像识别的性能表现上具有最大的促进作用。而 Inception 网络结构在具有很好的性能的同时还具有相对较低的计算消耗。最近的残差连接与传统结构的结合在 2015 ILSVRC 上取到了最好的结果,与 InceptionV3 的效果相近。考虑将 Inception 网络与残差连接相结合,充分的证据表明残差连接可以很大程度上加速 Inception 网络的训练,同样...
近些年,非常深的卷积神经网络在提升图像识别的性能表现上具有最大的促进作用。而 Inception 网络结构在具有很好的性能的同时还具有相对较低的计算消耗。最近的残差连接与传统结构的结合在 2015 ILSVRC 上取到了最好的结果,与 InceptionV3 的效果相近。考虑将 Inception 网络与残差连接相结合,充分的证据表明残差连接可以很大程度上加速 Inception 网络的训练,同样也有证据表明残差连接的 Inception 相比不带残差连接的几乎同样计算量的 Inception 网络性能要稍有优势。本文也提出了一些新的残差连接和不带残差连接的 Inception 网络,这些改变同样也明显改善了 2012 ILSVRC 的单帧分类性能。最后还提到了利用合适的激活缩放可以使非常宽的残差连接 Inception 网络的训练变得更加稳定
2012 年的 AlexNet 在 CV 任务中取得了很好的成绩,深层的 CNN 在各种 CV 领域内取得了很成功的应用。因为残差连接在训练深层结构中是至关重要的,本文将残差连接和深层的 Inception 网络相结合,这样将在保持计算量的同时收获所有残差连接的优点。
除了直接的结合之外,本文还探索了是否可以将 Inception 自身做的更深和更宽来实现更好的性能,因此本文设计了 InceptionV4,并由于 Tensorflow 的分布式计算的技术不再需要将模型进行划分。
本文还将 Inception-V3,Inception-V4 和同样计算消耗的残差连接的 Inception 网络进行了比较,很明显 InceptionV4 和 Inception-ResNet-V2 的单帧性能表现在 ImageNet 的验证集上相类似,都超过了 state-of-the-art 的结果。最后发现这种集成的性能也并没有达到数据集上分类噪声的程度,仍然还有改进的空间。
CNN 在大型的图片识别任务上变得很流行,Network in network,VGGNet 和 GoogLeNet(InceptionV1)都是一些重要的里程碑。He 给出了充分的理论和实践说明残差连接的优点,尤其是在检测上面的应用。作者强调残差连接在训练很深的 CNN 模型上是内在必要的,但是我们的发现并不支持这一观点,至少在图像识别这方面不支持,这大概需要更多的论点支撑和对残差连接在深层网络的作用的理解。实验的章节证明就算没有残差连接我们也不难训练很深的网络,不过残差连接能够很好的改善训练速度,这也是对于其使用的重要观点。
从 InceptionV1 开始该网络结构经过了多次改善,通过引入 BN 得到了 V2,通过进行额外的因子分解得到了 V3。
这一章节主要介绍了网络的具体结构
在残差版本的 Inception 网络中使用了更加简单的 Inception block,每个 Inception block 后面都有一个 1*1 的卷积来补偿通道数的改变。另外一个 Inception 和残差版本的小区别在于,在残差版本中,BN 仅仅利用在传统层的顶部而不在 summations 的顶部,这是由于想让网络具有更多的 Inception blocks,并可以在单个 GPU 上进行训练所做的妥协,事实上如果都使用 BN 会更友好处
当 filters 超过 1000 的时候,网络会在训练的早期就训练失败,降低学习率或者增加额外的 BN 都不能避免这一现象。He 提出了利用先低学习率 warm up,然后高学习率进行训练可以改善这一现象,然而本文发现通过对残差量进行缩放可以更加可靠的解决该问题,这样并不会损失准确性并且可以让训练更加稳定。
这一章节主要介绍了一些训练的细节,利用的 tensorflow 分布式计算框架,GPU 为 Nvidia 的 Kepler,最好的模型使用的 RMSProp 算法,dacay=0.9,,学习率为 0.045,以每两个 epoch,0.94 的指数衰减率进行衰减。