深度学习算法_详解_实例(自然场景文字定位)_图文 下载本文

2.2.1.局部感受野

与传统的神经网络不一样,卷积神经网络中包含有几个特殊的层,这些层并不与它的上一层形成一种全连接的关系,而是形成一种局部连接的关系。层中的每一个节点只与上一层中若干个平面上相邻的节点形成连接。这里是借鉴了视觉神经中感受野的思想。在视觉皮层中,一个神经元只会对其最近的几个神经元产生反应。这是叫做局部感受野(localreceptivefield)的原因。

局部感受野的连接效果见图4[28]。左边的图是全连接的网络,右边的图是局部连

接的网络。

图4局部连接[28]

局部感受野思想的用意是让网络在图像的局部区域上进行学习。由于自然界的图象是一种具有局部统计特征的信息数据,因此这种方式可以学习到图像中局部的特征。

局部连接方式的另一个好处就是降低了所需要学习的参数的数量,让参数显著性降低。假设一个96*96大小的图像,其与网络中的第一层,也就是感受野层进行连接。感受野层中的节点数量是100,那么在这两层的连接中拥有的参数的数量可以计算为:

96?96?100?846400.(1)

倘若让感受野的节点只连接图像中某个8*8的图块(patch)的话,那么感受野层中的每个节点只对应到8*8=64的参数数量,相比原先的96*96有了明显的降低。但是这样的连接方式考虑到了图像中一个局部,而没有考虑到其他局部。为了学习到图像上所有局部的特征,需要考虑图像中所有的8*8的图块大小。这个数量通过Eq.2可以计算得出:

(96-8?1)?(96-8?1)?89?89.(2)

为了连接所有的图块,需要有同样数量的感受野层的节点,也是89*89。按照这种方式计算,参数的总量是:

9

8?8?89?89?506944 .

参数数量相比原先改变并不大,这是权值共享思想应用的主要原因。

2.2.2.权值共享(3)

卷积神经网络中另一个重要的思想就是权值共享(sharedweights)。权值共享是让所有的感受野的节点数目共享同一个权值。以Eq.3为例,如果权值共享的话,所需要学习的参数数量为:

8?8?64.(4)

应用权值共享后,整个网络的参数数量有了104数量级的降低。权值共享的启发来源是自然图像中局部区域上的统计稳定特性。我们可以把在一个图像某个局部中学习到的特征应用到其他局部中。例如,图像中每一个局部都有边缘的信息,因此可以用检索边缘的特征去检索图像中其他区域中的边缘。通过这种方式,实现了目标在图像中的位置无关性。

权值共享的示意见图5[28],其中左图是局部连接但非权值共享的网络,右图是局

部连接并且权值共享的网络。

图5权值共享[28]

如果把局部感受野和权值共享合在一起看的话,就是一个固定权值的8*8的核遍历图像。从数学上看,就是对图像进行了一次卷积操作,这也是网络被称之为卷积神经网络的原因。卷积神经网络中负责局部感受野和权值共享功能的层也称之为卷积层。

对图像卷积的一个示例可以见图6[15]。其中卷积核内的权值是红色的下标,这些值不是固定给出的,而是通过训练与学习得到的。与Sobel算子等人工设计核的区别是,卷积核的权值是不固定的,随着每次训练的不同而改变,而Sobel算子的核都是人们设计的,是固定给出的。

10

图6卷积操作[15]

可以看出,经过卷积计算后形成的节点以二位数组的形式组织,类似于一副缩小的“图像”。这幅“图像”是对原图进行特征过滤后得出的中间图,称之为特征图(featuremap)。

如果让特征图作为下一个卷积层的输入,那么可以得到对应于这个特征图的再一次过滤的特征图。卷积神经网络通过层层过滤的方式,不断从原始图像中抽取更高层的特征,作为最终分类器的输入,这也是深度学习中表征学习(representationlearning)的体现。

2.2.3.子采样

卷积神经网络具有平移不变性,图形中轻微的平移并不影响识别的结果。这个特性与子采样思想是分不开的。

子采样是对卷积层生成的特征图用一个最大核或者平均核进行无重叠的扫过。无重叠意味着核的步长与大小保持一致。最终的结果就像对特征图进行了一次缩放,因此称为子采样(subsample)。最大核取出对应集合中的最大像素值,平均核取对应集合中的平均像素值。子采样也称之为池化(pooling),池化输出的值被传输到池化节点上,全部的池化节点组织的二维数组也称之为特征图。

关于池化技术的示例,可以见图7[15]。

11

图7池化操作[15]

池化技术的主要启发来源是为了让神经网络对图像中的位移产生鲁棒性。经过池化技术以后,原始图像的轻微位移不会对输出的特征图产生影响,从而使模型的识别对于平移具有不变性。池化技术的另一个优势是再一次缩减了参数的数量。89*89的特征图,经过2*2的池化以后,变为45*45的特征图,进一步对表征进行了维度的缩减。

在卷积神经网络中,池化是单独作为一层,放置在卷积层之后。一个卷积层往往和一个池化层配对,形成一次卷积过程。一个卷积神经网络中往往包含若干个卷积过程。

下面对卷积神经网络的具体结构进行说明。

2.3.卷积神经网络的结构

卷积神经网络除了拥有神经网络的全连接层以外,还包含有卷积层,池化层等特殊层。按照数据流向的顺序来说,一个卷积神经网络的架构是:输入层,卷积层,池化层,卷积层(第2个),池化层(第2个),....,卷积层(第n个),池化层(第n个),全连接层(第1个),全连接层(第2个),....,全连接层(第m个),输出层。总共包含的层数如下:

1?n?2?m?1?2?2n?m.(5)

在各层之间,一般有非线性函数作为桥接。例如每个节点的输出会经过非线性函数的转换。非线性函数的作用是让最终模型具有非线性化的区分能力。

12