一文读懂卷积神经网络

588 阅读7分钟

本文正在参加「金石计划」

卷积神经网络(CNN)是一种深度学习模型,它在处理图片方面表现出色。CNN的设计受到人类视觉神经系统的启发,它能够有效地降低大量的图片数据到一个较小的数据集,并且能够保留图片的特征,符合处理图片的原则。

CNN的两个主要特点是:

  1. 有效地将大数据量的图片降维成小数据量 CNN通过卷积和池化等技术,可以将图片数据压缩成一个较小的数据集。这样可以减少计算量和内存占用,使得训练模型更加高效。
  2. 有效地保留图片特征,符合图片处理的原则 CNN采用卷积核和滤波器等方法,可以有效地提取图片的特征。这样可以保留图片的本质特征,从而提高处理的准确率。

在CNN出现之前,图像处理是一个难题,原因有两个:

  1. 图像需要处理的数据量太大,导致成本很高,效率很低 在传统的机器学习模型中,处理大量的图片数据需要很高的成本和大量的计算资源。这导致了效率低下和计算速度慢的问题。
  2. 图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率不高 在数字化的过程中,图像数据容易丢失一些重要的特征,这导致传统的机器学习模型很难准确地处理图像。因此,在处理图片方面,CNN的出现是一个重要的突破。

需要处理的数据量太大

图像是由像素构成的,每个像素又是由颜色构成的。

图像是由像素构成的,每个像素又是由颜色构成的

随着现代科技的不断进步,我们现在经常会处理一些非常大的图片,比如1000×1000像素以上的图片,每个像素都有RGB三个参数来表示颜色信息。这意味着我们需要处理数百万个参数,这对计算机的资源是非常消耗的。

卷积神经网络(CNN)解决了这个问题的第一个方面,即通过降维将复杂问题简化。CNN可以将大量的图片参数压缩成较少的参数,并在此基础上进行处理。这样可以降低计算量和内存占用,从而使得处理大型图片数据更加高效。

另外,值得注意的是,大多数情况下,降维并不会影响处理结果。例如,将1000像素的图片缩小到200像素大小,并不会影响人眼识别图片中的对象,机器也是如此。因此,通过降维,我们可以在不影响结果的情况下,提高处理大型图片数据的效率。

保留图像特征

图片数字化的传统方式我们简化一下,就类似下图的过程:

图像简单数字化无法保留图像特征

当我们处理图像时,位置的变化会导致完全不同的数据表达,这与图像的本质内容并没有发生变化。传统的图像处理方法难以解决这个问题,当我们移动图像中的物体时,得到的参数会有很大的差异,这不符合图像处理的要求。

卷积神经网络(CNN)解决了这个问题,它采用类似于人类视觉的方式来保留图像的特征。即使图像发生翻转、旋转或位置变化,CNN也能够有效地识别出相似的图像。

那么,CNN是如何实现这一点的呢?在了解CNN的原理之前,先来了解一下人类视觉的原理。

人类的视觉原理

深度学习的许多研究成果都离不开对大脑认知原理的研究,尤其是视觉原理的研究。1981年的诺贝尔医学奖授予了David Hubel(出生于加拿大的美国神经生物学家)和TorstenWiesel以及Roger Sperry,以表彰他们对视觉系统信息处理的发现和大脑皮层分级的贡献。

人类的视觉原理遵循以下流程:从瞳孔摄入像素开始,进行初步处理(大脑皮层某些细胞发现边缘和方向),然后进行抽象(大脑判断眼前物体的形状是否为圆形),接着进一步抽象(大脑判断该物体是一个气球)。下面是人脑进行人脸识别的一个示例:

人类视觉原理1

对于不同的物体,人类视觉也是通过这样逐层分级,来进行认知的:

人类视觉原理2

从上图中可以看出,人类视觉原理的最底层特征基本相似,主要是各种边缘。随着层数的增加,神经网络可以提取出更高级的特征,如轮子、眼睛、躯干等。最终,这些不同的高级特征组合成相应的图像,使人类能够准确地区分不同的物体。

因此,我们可以自然地想到,能否模仿人类大脑的这种特点,构建多层的神经网络,使底层网络能够识别初级的图像特征,若干底层特征组成更高层的特征,最终通过多个层级的组合,在顶层进行分类?

答案是肯定的,这也是许多深度学习算法(包括CNN)的灵感来源。

积神经网络-CNN 的基本原理

典型的CNN由三个部分组成:

  1. 卷积层:负责提取图像中的局部特征;
  2. 池化层:用于大幅度降低参数量级(降维);
  3. 全连接层:类似于传统神经网络的部分,用于输出所需的结果。

简单来说,卷积层通过卷积操作提取图像中的局部特征,池化层用于对特征进行降维处理,全连接层类似于传统神经网络的部分,用于输出所需的结果。

典型的 CNN 由3个部分构成

卷积

卷积层的运算过程如下图,用一个卷积核扫完整张图片:

卷积层运算过程

在深度学习中,我们使用卷积核来过滤图像中的各个小区域,并得到这些小区域的特征值。在实际应用中,通常使用多个卷积核,每个卷积核代表一种图像模式。如果某个图像块与此卷积核卷积出的值较大,则认为此图像块与此卷积核匹配程度较高。

例如,如果我们使用了6个卷积核,可以理解为我们认为这个图像上有6种底层纹理模式,即使用6种基础模式就能够描述一幅图像。以下是25个不同的卷积核示例:

25种不同的卷积核

总结:卷积层的通过卷积核的过滤提取出图片中局部的特征,跟上面提到的人类视觉的特征提取类似。

池化层(下采样)

池化层简单说就是下采样,他可以大大降低数据的维度。其过程如下:

池化层过程

在上图中,原始图像大小为20×20,经过下采样,采样窗口大小为10×10,最终将其下采样为2×2大小的特征图。这样做的原因是,即使进行了卷积操作,图像仍然很大(因为卷积核较小),为了降低数据维度,需要进行下采样。

池化层相对于卷积层,可以更有效地降低数据维度,这样做不仅可以大大减少计算量,还可以有效地避免过拟合。

全连接层

全连接层是卷积层和池化层处理后的数据的最后一步,它能够输出我们想要的结果。经过卷积层和池化层的处理,数据被降维,才能被输入到全连接层中,否则数据量太大,计算成本高,效率低下。

全连接层