卷积神经网络

1962年,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时,发现其独特的局部互连网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络(Convolutional Neural Networks,CNN)。1980年,Fukushima基于神经元间的局部连通性和图像的层次组织转换,为解决模式识别问题,提出的新识别机是卷积神经网络的第一个实现网络。

随着1986年BP算法以及权值共享和池化的提出,LeCun和其合作者遵循这一想法,使用误差梯度设计和训练卷积神经网络,在一些模式识别任务中获得了先进的性能。在1998年,他们建立了一个多层人工神经网络——LeNet-5,用于手写数字分类,这是第一个正式的卷积神经网络模型。类似于一般的神经网络,LeNet-5有7层,包括2个卷积层,2个池化层和3个全连接层,利用BP算法来训练参数。它可以获得原始图像的有效表示,使得直接从原始像素中识别视觉模式成为可能。然而,由于当时大型训练数据和计算能力的缺乏,使得LeNet-5在面对更复杂的问题时,如大规模图像和视频分类,不能表现出良好的性能。

在接下来近十年的时间里,卷积神经网络的相关研究趋于停滞,主要原因有:一是多层神经网络在进行BP训练时的计算量极其大,当时的硬件计算能力完全不可能实现;二是包括支持向量机(SVM)在内的浅层机器学习算法也渐渐开始暂露头脚。

直到2006年,Hinton等人在《科学》上发表深度学习文章,然后CNN再度觉醒,并取得长足发展。随后,更多的科研工作者对该网络进行了改进。其中, 2012年,Alex等人提出的一个经典的CNN架构,在性能方面表现出了显著的改善。他们方法的整体架构,即AlexNet,与LeNet-5相似,但具有更深的结构。它在卷积层使用ReLU作为非线性激活函数,在全连接层使用Dropout减少过拟合。该深度网络在ImageNet大赛上夺冠,进一步掀起了CNN学习热潮。

2014年谷歌团队的GooleNet把网络层做到了22层,主要创新在于它的Inception,这是一种网中网的结构,即原来的节点也是一个网络,问鼎了当时的ImageNet冠军。2015年微软研究院团队设计的基于深度学习的图像识别算法ResNet,把网络层做到了152层,其主要创新在于残差网络,解决了网络层比较深时无法训练的问题。2016年商汤科技更是令人惊叹的把网络层做到了1207层,可能是目前在ImageNet上网络层最深的深度学习网络。现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。

卷积神经网络与普通神经网络的区别在于,卷积神经网络包含了一个由卷积层(Convolutions)和池化层(Subsamping,也称子采样层、降采样层),构成的特征抽取器。在普通神经网络中,一个神经元一般与全部邻层神经元连接,称为全连接神经网络。而在卷积神经网络的卷积层中,一个神经元只与部分邻层神经元连接。在卷积神经网络的一个卷积层中,通常包含若干个特征图(feature Map),每个特征图由一些矩形排列的的神经元组成,同一特征图的神经元共享权值,这里共享的权值就是卷积核(filter,也称滤波器、内核)。卷积核一般以随机小数矩阵的形式初始化,在网络的训练过程中卷积核将学习得到合理的权值。共享权值(卷积核)带来的直接好处是减少了网络各层之间的连接,同时又降低了过拟合的风险。池化通常有均值池化(mean pooling)和最大值池化(max pooling)两种形式。池化可以看作一种特殊的卷积过程。卷积和池化极大大简化了模型复杂度,减少了模型的参数。

CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。由于CNN的特征检测层通过训练数据进行学习,所以在使用CNN时,避免了显式地特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征图上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于全连接网络的一大优势。卷积神经网络以其局部权值共享的特殊结构在语音识别和图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中数据重建的复杂度。

参考文献

《神经网络与深度学习:基于tensorflow框架和python技术实现》,包子阳,电子工业出版社。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐