卷积神经网络详解(一)——基础知识

卷积神经网络详解(一)——基础知识

1. 卷积神经网络的组成

1981年诺贝尔医学奖得主,神经生物学家David Hubel 和Torsten Wiesel对人脑视觉系统的研究表明:人脑视觉系统首先通过眼睛来成像,图像通过瞳孔、晶状体最终在视网膜上成像。视网膜上布满了大量的光感受细胞,可以把光刺激转换为神经冲动,神经冲动通过视觉通路传递到大脑的初级视觉皮层(Primary Visual Cortex,V1),V1初步处理得到边缘、方向等特征信息,而后经由V2的进一步抽象得到轮廓、形状等特征信息,如此迭代地经由多层(V1层至V5层)的抽象后得到高层特征。高层特征是低层特征的组合[1],从低层特征到高层特征的抽象过程中,语义的表现越来越清晰,存在的歧义越来越少,对目标的识别也就越来越精确。这就是人脑视觉系统的分层处理机制。

视觉皮层上的细胞有简单细胞(Simple Cell)与复杂细胞(Complex Cell)之分,这两种细胞的共同点是他们都只对特定方向的条形图样刺激有反应,而他们的主要区别是简单细胞对应的视网膜上的光感受细胞所在的区域比复杂细胞所对应的区域来得小,这个区域被称为感受野(Receptive Field)。这就是人脑视觉系统的感受野机制。

1980年,日本学者Kunihiko Fukushima提出感知机模型(Neocognitron),提出使用卷积层来模拟视觉细胞对特定图案的反应、使用池化层模拟感受野的方法。卷积神经网络的设计深受这个方法的影响,其基本结构为:

具体说来,卷积层用于提取不同的图像特征,有减少参数数量、保留空间信息的作用;池化层用于模拟感受野,有选取特征、减少参数数量的作用,同时引入微小平移不变性[2];而激活层的设置则是为了引入非线性因子,提升模型的表达能力,这是神经网络中普遍采用的。

2. 卷积层

2.1 图像的局部相关性

图像是具有局部相关性的一类数据[3],其局部相关性是指组成图像的每个像素点与其周围的像素点是有关联的,而图像上距离较远的像素相关性较弱,因此处理图像时实际上没必要每个神经元都对全局图像进行感知。

2.2 全连接网络用于图像处理

以MNIST手写数字识别为例,该数据集中的图像为(28,28,1)的灰度图像,这个图像由28 * 28个像素点(Pixel)构成,每个像素点有一个通道(Channel)。如果使用全连接网络(即网络中的神经元与相邻层上的每个神经元均连接),那么输入层有28 * 28 =784个神经元,假设hidden层采用了15个神经元[4],输出层是10个神经元,那么参数个数(w和b)就有:784 * 15 * 10+15+10=117625个。即使在这种情况下,参数量都十分庞大了,如果输入图像的像素点更多、全连接网络的隐藏层层数更多、隐藏层神经元数量更多,参数量就会更加庞大。
大量的参数很容易导致网络过拟合,而且每进行一次反向传播计算量都是巨大的,无论从调参还是计算资源的角度都不建议用全连接网络做图像处理。此外,全连接网络认为“每个输入值都是平等的”,它将输入视为一维向量,并不关心这个像素是第几行、第几列的像素,忽视了空间信息,用于图像这种具有空间局部相关性的数据也是不合适的。

2.3 减少参数数量

在图像局部相关性的支撑下,卷积连接应用而生。
为简化说明,来看一个简单的例子:
在下面的这张图中,输入为3 * 3 = 9个像素,如果将其与16个隐藏层神经元全连接,就会有9 * 16 = 144个连接,也就有144个权值。

为减少连接数,并且基于图像局部相关性的假设,可以仅取四个位置相近(注意图像的Width和Height两个维度)的像素作为输入,四个像素与同一个神经元进行连接,连接的权值记为w0w_0w1w_1w2w_2w3w_3, 如下图所示。

这种连接方式又可看作是数学上的卷积操作[5],其中这一组权值就被称为卷积核, 如下图右图所示,因此得名卷积连接。

我们将这个卷积操作在输入图像上滑动起来,自然地,连接的神经元也向下滑动,连接的权值仍记为w0w_0w1w_1w2w_2w3w_3,如下图所示。此时注意,这个卷积操作要覆盖图像上的所有9个像素,需要滑动四次,因此对应着四个神经元。图像的四部分局部像素与这四个神经元连接时共享同一套权值(简洁地说,这四个神经元共享一套权值),这就是所谓的“权值共享”的概念。这组权值又叫做卷积核。

卷积连接方式使得每个神经元所感知的图像的范围由整张图缩减到了4个像素点,从而减少了权值的数量,又采取了“权值共享”的方法,进一步减少了参数的数量。

允许我们对图像进行卷积操作的理论依据就是图像的局部相关性:卷积神经网络的设计认为每个神经元没必要对全局图像进行感知,只需对局部像素按空间位置进行局部连接即可。

2.4 提取图像特征

卷积层每次用一个卷积核在图像上滑动,来提取图像的某一显著特征。
卷积核可以找到图中和卷积核自身最相似的部分,而且相似度越高,得到的响应值越大。

图7中上面一排的照片是5架战斗机,把其中一架战斗机的图像截出来作为卷积核,与原图像进行卷积,得到结果如下排图像所示。可以看到,每架战斗机所在的位置都得到了一个极大的响应。
因此,通过设置合理的损失函数,在卷积神经网络中使用反向传播算法,最终可以学习到相应于目标结果的卷积核,在Inference的时候就可以提取出有效特征。

2.5 保留空间信息

与全连接网络相比,卷积网络没有将图像展开为一维向量,而是使用卷积核在原图像上滑动来提取特征,因此保留了原图像的局部空间信息。
图7中上面一排右边的照片是由左边照片对5架战斗机平移得到的。经过同样的卷积操作后,得到的特征响应图相当于左边的特征响应图做相应的平移。这是卷积神经网络的局部连接和权值共享带来的“同变性(Equivariance)”[6],亦是卷积神经网络可以保留图像空间信息的体现。

2.6 卷积操作的补充

  1. 卷积核(Filter)

在数学定义上,矩阵的卷积(Convolution)操作为:首先将卷积核进行翻转,构成一个卷积核的镜像,然后使用该镜像和前面矩阵相应位置进行点乘。如下面所示:

  1. 步长(Step)

卷积操作每次移动的单位数称为步长。

  1. 填充(Padding)
    为了控制输出的尺寸,可以采用填充的方法。例如在步长为2的情况下,输出尺寸原为5 * 5,如果想使输出尺寸为3 * 3, 可以在输入外围添加一圈0,在这种情况下,输出的尺寸就是3 * 3。

3. 激活层

激活层算不上卷积神经网络的特色,这里就不详细介绍了,简而言之,激活层的作用就是引入非线性因子,提升模型的表达能力。

4. 池化层

卷积神经网络在卷积层和激活层之后又增加了池化层,用来模拟感受野,以达到选取特征、减少参数数量的作用,同时引入微小平移不变性。

4.1 特征选取

池化的一个功能是对特征的选取,卷积神经网络中常用的有Average Pooling和Maximum Pooling。Average Pooling,即对池化区域内特征点求平均,Maximum Pooling则对池化区域内特征点取最大。Average Pooling更能保留图片的背景信息,如果背景中也含有有效信息,Average Pooling就更合适;Maximum Pooling会忽略背景信息,在有噪声的情况下则更有效。
通过池化,CNN进一步减少了参数数量(降维)。

4.2 微小平移不变性

在局部连接和权值共享的作用下,平移后图像的特征映射图与特征映射图直接做对应的平移得到的结果差别不大,即前面所述的同变性。

此时再进行池化,以Maximum Pooling为例,如下图所示,在左图中得到的池化结果是11,在右图中得到的池化结果也是11,体现了平移不变性。
需要指出的是,池化的平移不变性是有限的,即所说的微小平移不变性。如果平移超出了感受野的位置,平移不变性就难以体现。

5. 分层表达

前已述及,人脑视觉系统存在分层处理的机制,卷积神经网络用多层的网络来模拟人脑视觉系统的分层处理。
通过多层的卷积神经网络,计算机逐步“理解”一幅图像大致遵循这样的过程:像素–>边缘–>基本形状–>复杂图案–>更复杂图案。
例如,在学习一张车的图片时,浅层的卷积层能从最基本的像素中学习到边缘特征,较深层点的可以学习到圆形等基本形状,再经过几层可以学习到轮胎、车身等图案特征,最后可以学习到车的整体特征。

6. 卷积的可视化与解释性

深度学习的解释性学界仍在研究当中。目前对于卷积神经网络,仅能通过可视化提供简单的解释。

6.1 边缘检测

先解释卷积层如何做边缘检测。
图片最常做的边缘检测有两类:垂直边缘(Vertical Edges)检测和水平边缘(Horizontal Edges)检测。

以垂直边缘检测为例,原始灰度图像尺寸为 6x6,卷积核尺寸为 3x3,不做Padding,Stride = 1,卷积后得到的特征映射图尺寸为 4x4,得到结果如下:

在灰度图像中,0代表灰,正值表示白,值越大越白,负值代表黑,值越小越黑。本例的原始图像和卷积后的特征映射图,有图例所示的黑白灰分布,提取出了垂直边缘。

6.2 响应相似图形

这部分可以参考2.4节。

6.3 特征响应图可视化

相关研究[7]中,曾实现了对特征映射图的可视化。直接看一下结果:

目前的研究虽然还是不能完全解释CNN,但是通过可视化,我们发现CNN学习到的特征确实如我们所预期的呈现分层特性,底层是一些边缘角点以及颜色的抽象特征,越到高层则越呈现出具体的特征,与人类视觉系统类似。

7. 卷积神经网络为什么有效

  1. 从神经科学角度:卷积神经网络模仿了人脑视觉系统的分层处理机制以及感受野机制;
  2. 从统计角度:卷积神经网络抓住了图像的局部相关性(Spatially-local Correlation);
  3. 从正则化的角度:由于局部连接、权值共享和池化,降低了模型参数数量,控制了模型复杂度,可有效避免模型过拟合。

关键词 : 局部感受野、权值共享、时间/空间亚采样

参考文献

深度学习与计算机视觉——算法原理、框架应用与代码实现
Derivation of Convolutional Neural Network from Fully Connected Network Step-By-Step
卷积神经网络CNN原理详解(一)——基本原理
CNN为什么有效
卷积神经网络为什么具有平移不变性?
吴恩达 DeepLearning.ai 课程提炼笔记(4-1)卷积神经网络 — 卷积神经网络基础
CNN十大问
CNN中减少网络的参数的三个思想


  1. 需要注意的是这些层之间的连接并不一定是简单的逐层连接,例如V2层就与其它层均有连接,对这些层之间连接的进一步研究有可能进一步提升卷积神经网络的效果。 ↩︎

  2. 亦有人称池化同时引入了尺度变换和旋转的不变性,由于其可解释性与效果都不佳,因此认可度不高,在此省略不讲。 ↩︎

  3. 语音和自然语言也是具有局部特征性的数据,CNN也可以用于语音处理与自然语言处理。 ↩︎

  4. 可看作选择15个特征。 ↩︎

  5. 实际上应该是数学上的互相关(Cross-correlation)。在深度学习中,我们使用的卷积运算实则没有卷积核翻转为镜像的这一步操作,因为在权重学习的角度,翻转是没有必要的,互相关与卷积相差的就是核没有翻转,所以深度学习中的卷积操作在数学上准确度来说称为互相关。 ↩︎

  6. 关于 CNN对图像特征的 位移、尺度、形变不变性的理解 ↩︎

  7. Deep Visualization:可视化并理解CNN ↩︎

Author

Forskamse

Posted on

2019-01-22

Updated on

2022-03-29

Licensed under

Comments