《深度学习:卷积神经网络从入门到精通》——1.2 卷积神经网络的形成和演变
1.2 卷积神经网络的形成和演变
卷积神经网络最初是受到视觉系统的神经机制启发、针对二维形状的识别设计的一种生物物理模型,在平移情况下具有高度不变性,在缩放和倾斜情况下也具有一定的不变性。这种生物物理模型集成了“感受野”的思想,可以看作一种特殊的多层感知器或前馈神经网络,具有局部连接、权值共享的特点,其中大量神经元按照一定方式组织起来对视野中的交叠区域产生反应。1962年,Hubel和Wiesel通过对猫的视觉皮层细胞的研究,提出了感受野的概念[17-18]。1979年,日本学者Fukushima在感受野概念的基础上,提出了神经认知机模型[14-16],该模型被认为是实现的第一个卷积神经网络。1989年,LeCun等人首次使用了权值共享技术[45]。1998年,LeCun等人将卷积层和下采样层相结合,设计卷积神经网络的主要结构,形成了现代卷积神经网络的雏形(LeNet)[19]。2012年,卷积神经网络的发展取得了历史性的突破,Krizhevsky等人采用修正线性单元(Rectif?ied Linear Unit,ReLU)作为激活函数提出了著名的AlexNet,并在大规模图像评测中取得了优异成绩[46],成为深度学习发展史上的重要拐点。
在理论上,卷积神经网络是一种特殊的多层感知器或前馈神经网络。标准的卷积神经网络一般由输入层、交替的卷积层和池化层、全连接层和输出层构成,如图1.4所示。其中,卷积层也称为“检测层”,“池化层”又称为下采样层,它们可以被看作特殊的隐含层。卷积层的权值也称为卷积核。虽然卷积核一般是需要训练的,但有时也可以是固定的,比如直接采用Gabor滤波器[47]。作为计算机视觉领域最成功的一种深度学习模型,卷积神经网络在深度学习兴起之后已经通过不断演化产生了大量变种模型。
图1.4 标准卷积神经网络
从结构的角度看,卷积神经网络起初只能处理黑白或灰度图像,变种模型通过把红、绿、蓝3个颜色通道作为一个整体输入已能直接处理彩色——图像[46],有些还可以直接处理多帧图像甚至连续图像[48]。同时,变种模型可以使用多个相邻的卷积层或多个相邻的池化层,也可以使用重叠池化和最大池化,还可以使用修正线性单元、渗漏修正线性单元(Leaky ReLU,LReLU)、参数修正线性单元(Parametric ReLU,PReLU)或指数线性单元(Exponential Linear Unit,ELU)取代sigmoid单元作为激活函数[46, 49-51],也可以在输出层采用软最大函数softmax替代sigmoid函数以产生伪概率。此外,卷积神经网络可以设计成孪生结构(siamese architecture),把原始数据映射到目标空间,产生对几何扭曲的鲁棒性[52]。最后,卷积神经网络可以设计成快道结构,允许信息通过快道无阻碍地跨越多层流动,使得用梯度下降训练非常深的网络变得更加容易[53]。
从卷积核的角度看,卷积神经网络可以通过采用非常小的卷积核,比如1×1和3×3大小,被加深成一个更深的网络,比如16层或19层的VGGNet[54]。如果采用参数修正线性单元代替修正线性单元,可以把VGGNet发展成MSRANet[55]。而且,卷积神经网络通过使用小卷积核在保持总体计算代价的条件下增加深度和宽度,并与“摄入模块(inception module)”进行集成,可以用来建立谷歌网络(GoogLeNet)[56]。此外,卷积神经网络通过使用微型多层感知器代替卷积核,还可以被扩展成更为复杂的网络,例如“网中网(Network In Network,NIN)”[57]。
从区域的角度看,区域卷积神经网络(Region-based CNN,R-CNN)可以用来抽取区域卷积特征,并通过区域提议进行更加鲁棒的定位和分类[58]。空间金字塔池化网络(Spatial Pyramid Pooling Net,SPPNet)可以克服其输入大小固定的缺点,办法是在最后一个卷积层和第一个全连接层之间插入一个空间金字塔池化层[59]。不管输入的大小如何,空间金字塔池化层都能够产生固定大小的输出,并使用多尺度空间箱(spatial bin)代替滑动窗口对在不同尺度上抽取的特征进行池化。虽然与R-CNN相比,空间金字塔池化网络具有能够直接输入可变大小图像的优势,但是它们需要一个多阶段的管道把特征写入硬盘,训练过程较为麻烦。为了解决这个训练问题,可以在R-CNN中插入一个特殊的单级空间金字塔池化层(称为感兴趣区池化层,ROI pooling layer),并将其提取的特征向量输入到一个最终分化成两个兄弟输出层的全连接层,再构造一个单阶段多任务损失函数对所有网络层进行整体训练,建立快速区域卷积神经网络(Fast R-CNN)[60],其优点是可以通过优化一个单阶段多任务损失函数进行联合训练。为了减少区域提议的选择代价,可以插入一个区域提议网络与Fast R-CNN共享所有卷积层,进一步建立更快速区域卷积神经网络(Faster R-CNN),产生几乎零代价的提议预测对象(或称为目标、物体)边界及有关分数[61]。为了获得实时性能极快的对象检测速度,可以把输入图像划分成许多网格,并通过单个网络构造的整体检测管道,直接从整幅图像预测对象的边框和类概率建立YOLO模型,只需看一遍图像就能知道对象的位置和类别[62]。为了更准确地定位对象,还可以在多尺度特征图的每个位置上,使用不同长宽比的缺省框建立单次检测器(SSD)来取代YOLO[63]。此外,采用空间变换模块有助于卷积神经网络学到对平移、缩放、旋转和其他扭曲更鲁棒的不变性[64]。最后,可以把Faster R-CNN扩展成掩膜区域卷积神经网络(Mask R-CNN),在图像中有效检测对象的同时,还能够对每个对象实例生成一个高质量的分割掩膜[65]。
从优化的角度看,许多技术可以用来训练卷积神经网络,比如丢失输出[40, 66]、丢失连接[41]和块归一化(batch normalization)[67]。丢失输出是一种减小过拟合的正则化技术,而丢失连接是丢失输出的推广。块归一化(或批量归一化)则是按迷你块大小对某些层的输入进行归一化处理的方法。此外,残差网络(Residual Network,ResNet)采用跨越2~3层的连接策略也是一种重要的优化技术,可以用来克服极深网络的训练困难。借助残差学习能够快速有效地成功训练超过150层甚至1000层的深层卷积神经网络,它在ILSVRC & COCO 2015的多项任务评测中发挥了关键作用[68],全部取得了第一名的突出成绩。最后,为了优化模型的结构,还可以采用火焰模块(f?ire module)建立卷积神经网络的挤压模型SqueezeNet[69],也可以结合深度压缩(deep compression)技术进一步减少网络的参数[70]。
从模型演变的角度看,卷积神经网络的发展脉络如图1.5所示。从图中可以看出,现代卷积网络以LeNet为雏形,在经过AlexNet的历史突破之后,演化生成了很多不同的网络模型,主要包括:加深模型、跨连模型、应变模型、区域模型、分割模型、特殊模型和强化模型等。加深模型的代表是VGGNet-16、VGGNet-19和GoogLeNet;跨连模型的代表是HighwayNet、ResNet和DenseNet;应变模型的代表是SPPNet;区域模型的代表是R-CNN、Fast R-CNN、Faster R-CNN、YOLO和SSD;分割模型的代表是FCN、PSPNet和Mask R-CNN;特殊
模型的代表是SiameseNet、SqueezeNet、DCGAN、NIN;强化模型的代表是DQN和AlphaGo。
图1.5 卷积神经网络的演变
- 点赞
- 收藏
- 关注作者
评论(0)