2.1.2 深度学习图像分类算法

最早的神经网络是Hubel和Wiesel在猫视觉系统研究工作的基础上设计的,之后发展成为卷积神经网络。卷积神经网络主要包括卷积层和汇聚层,卷积层通过使用固定大小的滤波器与整个图像进行卷积,用来模拟简单细胞。汇聚层则是一种降采样操作,通过取卷积得到的特征图中局部区块的最大值、平均值来达到降采样的目的,并在这个过程中获得一定的不变性,用来模拟复杂细胞。在每层响应之后,通常还会有几个非线性变换,如sigmoid,使得整个网络的表达能力得到增强。在网络的最后通常会增加若干个全连接层和一个分类器,如softmax分类器。

神经网络理论在20世纪80年代被人工智能领域所关注,但受限于硬件的计算能力,早期的网络结构较为简单,例如,自编码器是一种特殊的神经网络结构,并且在数据降维、特征提取等方面得到了广泛的应用。自编码器由编码器和解码器组成,编码器将数据输入变换到隐藏层(hidden layer)表达,解码器用隐藏层重构原始输入。卷积神经网络也在手写数字识别任务中取得了成功,然而,高额的计算开销使得卷积网络很难应用到实际尺寸的目标识别任务中。

近年来深度学习的发展与普及,除了深度学习算法自身架构设计的调优外,还要归功于机器处理能力的大幅提升和大规模标注数据集的产生,其中ImageNet Large-Scale Visual Recognition Challenge(ILSVRC)比赛及其用到的ImageNet数据集受到研究者的广泛关注,可以说ILSVRC比赛见证了深度学习算法在图像分类和检测等领域的飞速发展。ImageNet数据集包含约1500万张带标注的图像,包括超过20000类物体,ILSVRC比赛中通常用其中1000类图像进行图像的训练和测试。下面以ILSVRC比赛为时间线,介绍基于深度学习的图像分类算法。

在ILSVRC 2012中,Hinton团队提出了名为AlexNet的深度神经网络,并首次实现了15.4%的错误率,比当时的第二名低了10%。AlexNet这一令人瞩目的成绩迅速引起计算机视觉领域研究者的关注,直接带动了深度学习和卷积网络的爆发式增长。图2-4为AlexNet的网络结构,其中上下两个分支是用GPU并行处理的示意。

在算法上,AlexNet对传统卷积网络进行了改进,包括使用ReLU激活函数、添加dropout机制,减小梯度消失、防止过拟合,并加快了训练速度。此外,算法通过图像剪裁、翻转和变换等操作进行数据增强,在网络训练时将随机梯度下降(Stochastic Gradient Descent,SGD)算法改为动量SGD算法。

图2-4 AlexNet网络结构

两年之后,深度学习算法再次有了新的突破,2014年Google的研究者提出的GoogleNet以6.7%的错误率获得当年ILSVRC比赛的冠军,奠定了Google在计算机视觉领域的地位。GoogleNet在模型中引入Inception模块,利用非序列化的并行方式提高模型的性能,整个模型共22层。除了性能有极大的提升外,模型通过合理的网络设计,其计算开销在深度和宽度增加的情况下保持常数级别增长。此后研究者们又多次优化Inception结构,目前第4版的GoogleNet已将错误率降低到3.1%以下。图2-5是Inception第4版的结构。

图2-5 Inception第4版网络结构图

2014年,牛津大学的研究者提出VGG(Visual Geometry Group)网络结构,并获得ILSVRC 2014第二名的成绩,因为拓展性强,所以在计算机视觉领域有着广泛的应用,可以移植到很多深度学习模型中,作为特征提取器。研究者发现,在进行卷积运算时,两个级联的3×3卷积核的感受野等价于一个5×5的卷积核,类似地,3个级联3×3卷积核等价于一个7×7的卷积核,因此,VGG网络中的卷积全部采用3×3的小卷积核,这样可以构建层数更多的网络,获得同样尺寸的特征图。

随着深度学习研究的推进,研究者发现增多卷积层通常可以提升模型的性能,但层数过多,在优化时会出现梯度发散的现象,反而使性能下降。

2015年,微软亚洲研究院的研究者提出的ResNet解决了梯度发散的问题,从而显著提升了网络深度,并以3.6%的错误率获得该年ILSVRC的冠军。ResNet提出了残差模块(residual block),残差模块是一种短路连接,将模块的输入与输出直接相加,得到该模块的输出。

在ILSCRV 2017上取得冠军的SENet,包含特征压缩、激发和重配权重的过程。在特征压缩模块中学习上一层特征图中每个通道的权重,根据权重抑制或者提升相应的特征通道,得到下一层的最终输入,算法实现了2.25%的错误率。

随着算法在复杂数据集的性能逐渐达到甚至超过人类的分类准确度,研究者开始尝试用深度学习方法解决工业界的实际问题。计算效率成为研究者关注的重点,此后一系列轻量级网络被相继提出,以达到业务场景对性能和速度的要求,例如EfficientNet、MobileNet、ShuffleNet和SqueezeNet等。此外,2018年后ILSCRV比赛暂停举办,现有数据集上的分类精度很难再有突破,因此研究者开始关注更复杂的视觉任务,例如图像检测、视觉追踪等。图像分类可以作为这些任务的基础,上述深度学习算法也通常被用于获得图像的表征,这使得下游任务可以直接以图像全局特征作为输入,大大减少了后续模型的参数量及训练难度。