第三卷 第七章 在ImageNet上训练ResNet
在本章中,将从头开始实施和训练ResNet架构。ResNet在深度学习的历史上极为重要,因为它引入了残差模块和恒等映射的概念。这些概念使我们能够训练在ImageNet上具有>200层和在CIFAR-10上具有>1,000层的网络——以前认为在成功训练网络时不可能达到的深度。
我们已经在第二卷的第12章中详细回顾了ResNet架构;但本章仍将简要回顾一下残差模块的当前变化。 并将使用 Python 和 mxnet 库实现 ResNet。 最后,我们将执行许多实验,从头开始在ImageNet上训练 ResNet。
1、理解ResNet
ResNet 的基石是残差模块。在他们 2015 年的论文中,残差模块由两个分支组成。第一个是简单的快捷方式,它将输入连接到第二个分支的添加,一系列卷积和激活(图,左)。
然而,在同一篇论文中,发现瓶颈残差模块表现更好,尤其是在训练更深的网络时。瓶颈是对残差模块的简单扩展。我们仍然有我们的快捷模块,只是现在我们微架构的第二个分支发生了变化。我们现在应用了三个卷积,而不是只应用两个卷积(图,中间)。