引自:《深度学习模型与算法基础》(作者:许庆阳、宋勇、张承进)
该书已出版,详细信息请见文末~
在神经网络的实际应用中,输入数据的种类多种多样,图像是一种典型的数据类型,并且对于计算机而言,图像数据是一种难以处理的数据类型。图像数据量较大、包含的信息丰富,全连接神经网络对于图像识别等任务来说并不适合。卷积神经网络(convolutional neural network,CNN)是一种更适合图像识别等任务的神经网络结构。卷积神经网络在图像、语音识别领域取得了很多重要突破。
「 1. 全连接神经网络的局限性 」
图像数据具有信息量大的特点,如果图像没用经过特征提取直接输入到神经网络中,所有像素点将作为网络的输入信息。全连接神经网络之所以不适合图像识别任务,主要有以下几个方面的原因:
(1)参数数量过多。考虑一个输入1000×1000像素的图片(100万像素,现在已经不能算大图了),如图1所示。输入层有1000×1000=100万节点,假设第一个隐藏层有100个节点(这个数量并不多),那么仅这一层就有(1000×1000+1)×100=1亿参数。图像只扩大一点,参数数量就会大幅增加,因此它的扩展性很差。
图1 标准的“×”和“√”图像模板
(2)没有利用像素之间的位置信息。对于图像识别任务来说,每个像素和其周围像素的联系是比较紧密的,与距离较远的像素联系可能性很小。如果一个神经元与上一层所有神经元相连,那么就相当于图像的所有像素都等同看待,这不符合局部区域关联的假设。当完成每个连接权重的学习之后,最终可能会发现,有大量的权重的值都很小(也就是这些连接其实无关紧要)。学习大量并不重要的权重,造成网络学习效率低下。
(3)网络层数限制。神经网络层数越多其表达能力越强,但是通过梯度下降方法训练深度全连接神经网络很困难,因为全连接神经网络的梯度很难传递超过3层。因此,不可能得到一个很深的全连接神经网络,也就限制了它的能力。
相比于其他数据,图像数据具有多变等特性。假设利用计算机设计自动判卷系统,当计算机对卷面判断题进行判别时,计算机需要确定获取到的图像中是包含“×”还是“√”。在计算机“视觉”信息处理中,一幅图就是一个二维的像素数组,每一个位置对应一个数字。输入一张图,判断其是否含有“×”或者“√”,并且假设必须两者选其一,不是“×”就是“√”。图1为标准的“×”和“√”,字母位于图像的正中央,并且比例合适,无变形。利用计算机进行图像识别,一个比较直接的方法就是模板法。先保存一张“×”和“√”的标准图像,然后将其他新给出的图像与这两张标准图像进行对比,计算哪一张图的匹配度更高。当比较两幅图的时候,如果有任何一个像素值不匹配,那么这两幅图就不匹配,至少对于计算机来说是这样的。这种方法的鲁棒性比较差,当输入图像与模板图像有微小差异时,可能就会产生错误的识别结果。对于图2的输入,计算机认为下述两幅图中的白色像素除了中间的3×3的小方格内容是相同的,其他4个角上都不同。因此,基于模板比对的方法,计算机可能判别左图输入不是“×”。
图2 非标准图像
而实际中,对于那些仅仅只是做了一些像平移、缩放、旋转、微变形等简单变换的图像(如图3所示),我们希望计算机仍然能够识别出图中的“×”或“√”。
图3 畸变图像识别
「 2. 卷积神经网络原理 」
为了克服全连接网络在图像处理中的诸多缺点,LeCun提出了一种新的网络架构——卷积神经网络。卷积神经网络是受到生物视觉感知机制的启发、包含卷积计算、具有深度结构的前馈神经网络,是深度学习的主要算法之一。卷积神经网络是一种前馈神经网络,其神经元可以响应部分区域内输入,对图像信息的处理表现出色。卷积网络具有特征学习与表示能力,同时其隐层的卷积核具有共享特性,前后层之间的连接具有稀疏性等特点,卷积网络通过多种方式降低参数数量。因此卷积神经网络具有如下特点:
1)局部感知野
感受野是指卷积神经网络每一层的输出特征图的每一个像素点映射到输入图像的区域大小,神经元感受野的范围越大表示其能接触到的原始图像信息范围就越大,也意味着它能学习更为全局、语义层次更高的特征信息;相反,范围越小则表示其所包含的特征越趋向局部和细节。因此,感受野的范围可以用来大致判断每一层的抽象层次,并且网络越深,神经元的等效感受野越大。
对于图像像素的空间联系,局部区域内的像素联系较为紧密,而距离较远像素的相关性则较弱。因而,每个神经元没有必要对全局图像进行感知,只需要对局部区域进行感知,然后在更高层次将局部信息进行综合来,得到图像全局信息。网络的局部连接是受生物视觉系统结构启发而来,视觉皮层的神经元是接受局部信息的,即这些神经元只响应某些特定区域的刺激。如图4所示,左图为全连接网络,右图为局部连接。假设图像尺寸为1000×1000,则全连接网络参数量为1000×1000×100;而右图中每个输出神经元只与10×10个像素值局部相连,那么100个隐层单元的权值数量为100×10×10,减少为原来的万分之一。而10×10个像素值对应的10×10个参数,相当于卷积操作,采用100个卷积核可以获得100个特征图。
图4 全连接与局部感受野
2)权值共享
在上面的局部连接神经网络中,10×10的局部连接可视为卷积核,具有100个参数,卷积操作可以视为一种与位置无关特征提取方法,该卷积核可以在图像任意位置进行卷积操作。这其中隐含的原理是:图像的一部分的统计特性与其他部分是一致的。这意味着在任一部分学习到的特征适用于其他部分。所以,对于这个图像上的所有位置,都能使用学习到的特征进行特征提取。更直观一些,当从一个大尺寸图像中随机选取一小块,比如3×3的片段作为样本,并且从这个小块样本中学习到了一些特征,此时将这个3×3的特征作为探测器,应用到这个图像的任意位置中。3×3的卷积核与输入图像作卷积,从而获得大尺寸图像上的任一位置的激活值。每个卷积核都是一种特征提取方式,就像一个筛子,将图像中符合条件的特征筛选出来,如图5所示。
图5 卷积过程示意图
3×3的卷积核在输入图像上滑动,每滑动一次卷积核与输入图像相应的部分进行乘积和求和运算,获得该部分的响应输出,即该部分是否与卷积核模板相似,如相似度较高将产生较大的输出,若相似度较小将不产生响应。因此,卷积操作实际是判断输入图像中是否存在卷积核模板对应的特征的过程。
3)下采样
在通过卷积获得特征之后,下一步就是利用这些特征去做分类。理论上讲,可以用所有提取到的特征训练分类器,例如softmax分类器,但这面临计算量的挑战。例如,对于一个96×96像素的图像,假设已经学习得到了400个8×8尺度的特征提取器,每一个特征和图像卷积都会得到一个(96−8+1)×(96−8+1)=7921维的卷积特征,由于有400个特征,所以会产生7921×400=3168400 维的卷积特征向量。学习一个拥有超过300万特征输入的分类器较困难,并且容易出现过拟合。因此,需要对特征进行降维,池化操作(pooling)可以对不同位置的特征进行聚合统计,实现特征的降维。例如,可以通过计算特征图像某个特定区域特征的平均值(或最大值),这些概要统计特征不仅具有低维度的特点(相比使用所有提取得到的特征),同时还会改善分类结果(不容易过拟合),如图6所示。因此,池化操作能够尽可能保留重要的特征,去掉大量不重要的特征,来达到更好的学习效果。池化操作通过减少每层的样本维度,进一步减少参数数量,同时还可以提升算法的鲁棒性。
图6 最大池化与平均池化过程示意图
版权归原作者所有
编辑:刘杨
编审:辛召
——————————————————————
▼购买链接▼