目录

什么是卷积神经网络?概念、工作原理介绍

卷积神经网络是人工智能领域之一图像识别中最流行的算法。有许多软件可以通过拍照的方法识别出不同的物体。我用它去拍摄我家的狗,发现它不仅能识别出这是狗,甚至还能够识别出狗的类型,而这就得益于卷积神经网络。

一、卷积神经网络的概念

卷积神经网络是近年发展起来,并引起广泛重视的一种高效识别方法。20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络(Convolutional Neural Networks-简称CNN)。

现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。 K.Fukushima在1980年提出的新识别机是卷积神经网络的第一个实现网络。随后,更多的科研工作者对该网络进行了改进。其中,具有代表性的研究成果是Alexander和Taylor提出的“改进认知机”,该方法综合了各种改进方法的优点并避免了耗时的误差反向传播。

一般地,CNN的基本结构包括两层:

  • 其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;
  • 其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。

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

二、卷积神经网络如何工作?

卷积神经网络与其他神经网络的不同之处在于,它们在图像、语音或音频信号输入方面表现出超级的性能。 它们具有三个主要类型的层,分别是:

  • 卷积层
  • 池化层
  • 全连接(FC)层

卷积层是卷积网络的第一层。 虽然卷积层可以后跟另外的卷积层或池化层,但全连接层肯定是最后一层。 随着层次的递进,CNN 的复杂性也逐步增加,能够识别图像中更复杂的部分。 靠前的层关注于简单的特征,比如颜色和边缘。 随着图像数据沿着 CNN 的层级逐渐推进,它开始识别对象中更大的元素或形状,直到最终识别出期望的对象。

1.卷积层

卷积层是 CNN 的核心构建块,负责执行大部分计算。 它需要几个组件,包括输入数据、过滤器和特征图。 假设输入是彩色图像,由三维的像素矩阵组成。 这意味着,输入具有三个维度:高度、宽度和深度,对应于图像中的 RGB。 我们还有一个特征检测器,也称为内核或过滤器,它在图像的各个感受野中移动,检查是否存在特征。 这个过程称为卷积。

特征检测器是个二维权重数组,表示部分图像。 虽然它们的大小可能各不相同,但过滤器大小通常为 3×3 的矩阵;这也决定了感受野的大小。 将过滤器应用于图像的某个区域,计算输入像素和过滤器的点乘积。 然后将此点乘积提供给输出数组 接下来,过滤器移动一个步幅,重复这个过程,直到内核扫描了整个图像。 来自输入和过滤器的一系列点乘积的最终输出称为特征图、激活图或卷积特征。

在每次卷积运算之后,CNN 对特征图应用修正线性单元(RELU)转换,为模型引入非线性特性。

如前所述,初始卷积层可以后跟另一个卷积层。 如果是这种情况,CNN 的结构就变成一个分层结构,因为后面的层可以看到前面层的感受野中的像素。  例如,假设我们尝试确定图像中是否包含自行车。 可将自行车视为各种零件的总和。 它由车架、车把、车轮、踏板等组成。 自行车的每个零件构成神经网络中一个较低层次的模式,而零件的组合则表示一个较高层次的模式,从而在 CNN 中形成特征层次结构。

2.池化层

池化层也称为下采样,执行降维操作,旨在减少输入中参数的数量。 与卷积层类似,池化运算让过滤器扫描整个输入,但区别在于,这个过滤器没有权重。 内核对感受野中的值应用汇总函数,填充输出数组。 有两种主要的池化类型:

  • 最大池化:当过滤器在输入中移动时,它选择具有最大值的像素,将其发送给输出数组。 顺便说一句,与平均池化相比,这种方法更常使用。
  • 平均池化:当过滤器在输入中移动时,它计算感受野中的平均值,将其发送给输出数组。

虽然池化层中会丢失大量信息,但它还是给 CNN 带来的许多优点。 该层有助于降低复杂性,提高效率,并限制过度拟合的风险。 

3.全连接层

全连接层的名称恰如其分地描述了它的含义。 如前所述,输入图像的像素值并不直接连接到部分连接层的输出层。 而在完全连接层中,输出层中的每个节点都直接连接到上一层中的一个节点。

该层根据通过先前层及其不同的过滤器提取的特征,执行分类任务。 虽然卷积层和池化层一般使用 ReLu 函数,但完全连接层通常利用 softmax 激活函数,对输入进行适当分类,产生 0 到 1 之间的概率。

卷积神经网络的类型

Kunihiko Fukushima 和 Yann LeCun 分别在 1980 年 (PDF, 1.1 MB)(链接位于 IBM 外部)和 1989 年 (PDF, 5.5 MB)(链接位于 IBM 外部)发表论文,奠定了卷积神经网络研究的基础。 Yann LeCun 更有名,他成功应用反向传播来训练神经网络,以识别一系列手写邮政编码中的图案。 在整个 1990 年代,他领导自己的团队继续开展研究,最终发布“LeNet-5”(PDF, 933 KB) (链接位于 IBM 外部),将先前研究中的相同原理应用于文档识别。 自那之后,随着 MNIST 和 CIFAR-10 等新数据集的推出,以及 ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 等竞争产品的出现,各种不同的 CNN 架构不断涌现。 其他一些架构包括:

  • AlexNet (PDF, 1.4 MB)(链接位于 IBM 外部)
  • VGGNet (PDF, 195 KB)(链接位于 IBM 外部)
  • GoogLeNet (PDF, 1.3 MB)(链接位于 IBM 外部)
  • ResNet (PDF, 800 KB)(链接位于 IBM 外部)
  • ZFNet

但 LeNet-5 被公认为经典 CNN 架构。

三、卷积神经网络与计算机视觉的联系

卷积神经网络有力地推动了影像识别和计算机视觉任务。 计算机视觉是人工智能 (AI) 的一个领域,是指让计算机和系统能够从数字图像、视频和其他视觉输入中获取有意义的信息,并根据这些输入采取行动。 这种提供建议的能力将其与图像识别任务区分开来。 目前可以看到的计算机视觉的一些常见应用领域包括:

  • 营销:社交媒体平台可以提示谁可能出现在已发布在个人档案中的照片上,从而更轻松地在相册中标记朋友。 
  • 医疗保健:计算机视觉已纳入放射学技术,帮助医生在医学影像中更有效地识别肿瘤。
  • 零售:视觉搜索已纳入一些电子商务平台,帮助品牌企业建议用于补充现有衣橱的商品。   
  • 汽车:虽然无人驾驶汽车时代还未完全到来,但底层技术已开始在汽车中应用,通过车道线检测等功能,提高驾驶员和乘客的行车安全性。

以上就是关于卷积神经网络的全部内容。