在基础卷积神经网络(CNN)的学习中,读者应该对CNN的常见操作有了较为深入的理解。我们实现了CNN发展历程中重要的一步,也就是LeNet,并通过使用MNIST数据集体验了完整的CNN训练流程。然而,在LeNet问世后的十多年间,目标识别领域的主流仍然是传统算法,CNN并未得到大规模的应用,其中一大原因在于计算能力的限制。直到2012年,AlexNet在ImageNet挑战赛中取得了胜利,CNN重新引起了人们的关注,并由此揭开了快速发展和不断创新的序幕。
先来回顾一下经典的CNN模型。图1-1给出了主流CNN模型发展的里程碑。
图1-1 主流CNN模型发展示意
● 1998年由Yann LeCun等人提出的LeNet作为CNN的先驱,是手写数字识别问题的基础模型。
● 2012年Alex Krizhevsky等人的AlexNet模型在ImageNet图像识别比赛中取得了显著成果,使得CNN成为当时最先进的图像识别模型,奠定了深度学习在计算机视觉领域中的地位。
● 2014年,VGGNet凭借着更深更宽的网络结构取得ILSVRC竞赛定位任务第一名。同年,GoogLeNet采用了能更高效利用计算资源的Inception模块,在ILSVRC的分类任务上击败VGGNet夺得冠军。
● 2015年,Kaiming He等人提出的ResNet引入残差模块来解决训练深度神经网络时的网络退化问题,横扫当年的ILSVRC和COCO挑战赛。
● 2017年,DenseNet模型发布,采用了密集连接结构,使得模型更加紧凑并且有更好的鲁棒性,斩获CVPR 2017最佳论文奖。
以上是CNN发展史上的重要里程碑。在本章,我们将手把手地带大家实现这几个经典论文中的CNN。