卷积神经网络
摘要 :卷积神经网络是近年来广泛应用于模式识别、图像处理等领域的一种高效识别算法,它具有结构简
单、训练参数少和适应性强等特点。本文从卷积神经网络的发展历史开始,详细阐述了卷积神经网络的网
络结构、神经元模型和训练算法。在此基础上以卷积神经网络在人脸检测和形状识别方面的应用为例,简
单介绍了卷积神经网络在工程上的应用,并给出了设计思路和网络结构。
关键字 :模型;结构;训练算法;人脸检测;形状识别
0 引言
卷积神经网络是人工神经网络的一种已成为当前语音分析和图像识别领域的研究热点,
它的权值共享网络结构使之更类似于生物神经网络,
使图像可以直接作为网络的输
的数量。 该优点在网络的输入是多维图像时表现的更为明显,
入,避免了传统识别算法中复杂的特征提取和数据重建过程。
卷积网络是为识别二维形状而
特殊设计的一个多层感知器, 这种网络结构对平移、 比例缩放、 倾斜或者共他形式的变形具
有高度不变性。
1 卷积神经网络的发展历史
降低了网络模型的复杂度, 减少了权值
1962 年 Hubel 和 Wiesel 通过对猫视觉皮层细胞的研究,提出了感受野
的概念, 1984 年日本学者 Fukushima 基于感受野概念提出的神经认知机
看作是卷积神经网络的第一个实现网络,也是感受野概念在人工神经网络领域的首次应用。
神经认知机将一个视觉模式分解成许多子模式
进行处理, 它试图将视觉系统模型化, 使其能够在即使物体有位移或轻微变形的时候,
完成识别。 神经认知机能够利用位移恒定能力从激励模式中学习,
化形,在其后的应用研究中, Fukushima 将神经认知机主要用于手写数字的识别。随后,国
内外的研究人员提出多种卷积神经网络形式,
在邮政编码识别和人脸识别方面得到了大规模
的应用。
(特征 ),然后进入分层递阶式相连的特征平面
并且可识别这些模式的变
也能
(receptive field)
(neocognitron) 可以
通常神经认知机包含两类神经元,即承担特征抽取的
S-元和抗变形的 C-元。 S-元中涉
及两个重要参数, 即感受野与阈值参数, 前者确定输入连接的数目, 后者则控制对特征子模
式的反应程度。 许多学者一直致力于提高神经认知机的性能的研究:
在传统的神经认知机中,
每个 S-元的感光区中由 C- 元带来的视觉模糊量呈正态分布。如果感光区的边缘所产生的模
糊效果要比中央来得大, S-元将会接受这种非正态模糊所导致的更大的变形容忍性。
望得到的是, 训练模式与变形刺激模式在感受野的边缘与其中心所产生的效果之间的差异变
得越来越大。 为了有效地形成这种非正态模糊, Fukushima 提出了带双 C-元层的改进型神经
认知机。
我们希
Trotin 等人提出了动态构造神经认知机并自动降低闭值的方法
各层的神经元数目设为零, 然后会对于给定的应用找到合适的网络规模。
利用一个反馈信号来预测降低阈值的效果,
阈值调节后的识别率与手工设置阈值的识别率相若,
出,并且在他们后来的研究中承认这种自动阈值调节是很困难的
【8】。
[1],初始态的神经认知机
在构造网络过程中,
再基于这种预测来调节阈值。 他们指出这种自动
然而, 上述反馈信号的具体机制并未给
Hildebrandt 将神经认知机看作是一种线性相关分类器, 也通过修改阈值以使神经认知机
成为最优的分类器。 Lovell 应用 Hildebrandt 的训练方法却没有成功。对此, Hildebrandt 解
Hildebrandt 没有
释的是, 该方法只能应用于输出层,而不能应用于网络的每一层。事实上,
考虑信息在网络传播中会逐层丢失。
Van Ooyen 和 Niehuis 为提高神经认知机的区别能力引入了一个新的参数。事实上,该
参数作为一种抑制信号, 抑制了神经元对重复激励特征的激励。 多数神经网络在权值中记忆
训练信息。根据 Hebb 学习规则,某种特征训练的次数越多,在以后的识别过程中就越容易
被检测。也有学者将进化计算理论与神经认知机结合
练学习, 而使得网络注意那些不同的特征以助于提高区分能力。
过程,而卷积神经网络可看作是神经认知机的推广形式,
特例。
【9】,通过减弱对重复性激励特征的训
上述都是神经认知机的发展
神经认知机是卷积神经网络的一种
卷积神经网络本身可采用不同的神经元和学习规则的组合形式。其中一种方法是采用
再单独训练每个隐层得到
M-P 神经元和 BP 学习规则的组合,常用于邮政编码识别中。还有一种是先归一化卷积神经
网络,然后神经元计算出用输入信号将权值和归一化处理后的值,
但没有在大
权值, 最后获胜的神经元输出活性, 这个方法在处理二值数字图像时比较可行,
McCulloch-Pitts 神经元代
数据库中得到验证。第三种方法综合前两种方法的优势,即采用
替复杂的基于神经认知机的神经元。 在该方法中, 网络的隐层和神经认知机一样, 是一层一
层训练的,但是回避了耗时的误差反向传播算法。这种神经网络被称为改进的神经认知机。
随后神经认知机和改进的神经认知机作为卷积神经网络的例子,广泛用于各种识别任务中,
比如大数据库的人脸识别和数字识别。 下面详细介绍卷积神经网络的原理、 网络结构及训练
算法。
2 卷积神经网络
2.1 网络结构
卷积神经网络是一个多层的神经网络, 每层由多个二维平面组成, 而每个平面由多个独
S-元和 C-元。 S-元聚合在一起
立神经元组成。网络中包含一些简单元和复杂元,分别记为
组成 S-面, S-面聚合在一起组成 S-层,用 U s 表示。 C-元、 C-面和 C-层 (U s)之间存在类似的
关系。网络的任一中间级由 S-层与 C-层串接而成,而输入级只含一层,它直接接受二维视
觉模式,样本特征提取步骤已嵌入到卷积神经网络模型的互联结构中。一般地,
提取层, 每个神经元的输入与前一层的局部感受野相连,
特征被提取后,它与其他特征间的位置关系也随之确定下来;
个计算层由多个特征映射组成,每个特征映射为一个平面,平面上所有神经元的权值相等。
特征映射结构采用影响函数核小的
有位移不变性。 此外, 由于一个映射面上的神经元共享权值,
数,降低了网络参数选择的复杂度。卷积神经网络中的每一个特征提取层
个用来求局部平均与二次提取的计算层
时对输入样本有较高的畸变容忍能力
U s 为特征
并提取该局部的特征, 一旦该局部
sigmoid 函数作为卷积网络的激活函数, 使得特征映射具
因而减少了网络自由参数的个
(S-层 )都紧跟着一
U c 是特征映射层,网络的每
(C-层) ,这种特有的两次特征提取结构使网络在识别
【10】。
网络中神经元的输出连接值符合 “最大值检出假说” 【 15】,即在某一小区域内存在的一个
所以若神经元近旁存在有输出比
神经元集合中, 只有输出最大的神经元才强化输出连接值。
其更强的神经元时, 其输出连接值将不被强化。 根据上述假说, 就限定了只有一个神经元会
发生强化。 卷积神经网络的种元就是某 S-面上最大输出的 S-元,它不仅可以使其自身强化,
而且还控制了邻近元的强化结果。因而,所有的
征。在卷积神经网络早期研究中占主导的无监督学习中,
间去自动搜索一层上所有元中具有最大输出的种元,
同它们的种元皆由教师设定。
S-元渐渐提取了几乎所有位置上相同的特
训练一种模式时需花费相当长的时
而现在的有监督学习方式中, 训练模式
图 1 是文献 [12] 中卷积神经网络的典型结构图。将原始图像直接输入到输入层
(U c1),原
始图像的大小决定了输入向量的尺寸, 神经元提取图像的局部特征, 因此每个神经元都与前
4 层网络结构,隐层由 S-层和 C-层组成。每层均包含
一层的局部感受野相连。文中使用了
多个平面,输入层直接映射到 U s2 层包含的多个平面上。每层中各平面的神经元提取图像中
S-层神经元的权值。
特定区域的局部特征,如边缘特征,方向特征等,在训练时不断修正
同一平面上的神经元权值相同, 这样可以有相同程度的位移、 旋转不变性。 S-层中每个神经
元局部输入窗口的大小均为 5x5,由于同一个平面上的神经元共享一个权值向量,所以从一
S-层可看作是模糊滤波器, 起到二次特
个平面到下一个平面的映射可以看作是作卷积运算,
征提取的作用。 隐层与隐层之间空间分辨率递减, 而每层所含的平面数递增, 这样可用于检
测更多的特征信息。
图 1 卷积神经网络结构图
Fig.1 The structure of convolutional neural network
2.2 神经元模型
在卷积神经网络中,只有 S- 元间的输入连接是可变的,而其他元的输入连接是固定的。
用 Usl ( kl ,n)表示第 l 级,第 k l 个 S-面上,一个 S-元的输出,用 Ucl (k l , n) 表示在该级第
kl 个 C-面上一个 C-元的输出。其中, n 是一个二维坐标,代表输入层中神经元的感受野所
在位置,在第一级,感受野的面积较小,随后随着
l 的增大而增加。
nku
sl
,
kr
l
K
l
1
1
k
l
Av
l
1
kva
l
l
,
,
uk
1
cl
1
k
l
,
vn
1
1
kr
l
kr
l
1
nukb
1
vl
1
(2.1)
: r
式 (2.1) 中 al( v,k l-1 ,k)和 bl (k) 分别表示兴奋性输入和抑制性输入的连接系数;
r l (k)
控制特征提取的选择性, 其值越大, 对噪音和特征畸变的容错性越差, 它是一常量,它控制
着位于每一 S- 层处的单个抑制子平面中每个神经元的输入
l (k) 的值越大,与抑制性成比
例的兴奋性就得越大, 以便能产生一个非零输出, 换句话说就是相当好的匹配才一能激活神
经元, 然而因为 r l (k) 还需乘以 φ () ,所以 r l 值越大就能产生越大的输出, 相反, 小的 r l (k)
φ (x) 为非线性函数。 v
值允许不太匹配的神经元兴奋,但它只能产生一个比较小的输出;
是一个矢量, 表示处于 n 感受野中的前层神经元 n 的相对位置, Al 确定 S 神经元要提取特征
的大小, 代表 n 的感受野。 所以式中对 v 的求和也就包含了指定区域当中所有的神经元;
面对于勺 k l-1 的求和,也就包含了前一级的所有子平面,因此在分子中的求和项有时也被称
作兴奋项, 实际上为乘积的和, 输入到 n 的神经元的输出都乘上它们相应的权值然后再输出
到 nc。
外
x
xx
,
,0
x
0
0
(2.2)
式 (2.2) 表示的是指定某级 ( 第 l 级 ) 、某层 (S- 层 ) 、某面 ( 第 kl 个 S- 面) 、某元 ( 向量为
n 处 ) 的一个输出。对于一个 S- 元的作用函数可分为两部分,即兴奋性作用函数和抑制性作
用函数。兴奋性作用使得膜电位上升,而抑制性作用起分流作用。
兴奋性作用为:
K
l
1
k
l
Av
l
1
kva
l
,
l
,
uk
1
cl
1
k
l
,
vn
1
(2.3)
S- 元与其前一级 C-层的所有 C-面均有连接, 所连接的 C-元个数由该 S-级的参数感受野
Al 唯一确定。
网络中另一个重要的神经元是假设存在的抑制性神经元
满足以下三个条件 : 环元的抑制作用影响整个网络的运作;
接; V- 元的输出事先设为多个 C-元输出的平均值。可以用它来表示网络的抑制性作用,发
送一个抑制信号给 Usl (k l , n)神经元,从与 Usl ( kl , n)类似的元接收它的输入连接值,
并输出 :
C- 元与 V- 元间存在着固定的连
V-元 Uvl (n) ,它位于 S- 面上
nu
vl
K
l
1
k
l
Av
l
1
uvc
l
cl
1
2
k
l
,
vn
1
(2.4)
1
2
权 cl(v) 是位于 V —元感受野中的 v 处的神经元相连的权值,不需要训练这些
值,但它们应随着│ v│的增加而单调减小。因此,选择式
2.5 的归一化权值。
c '
l
c
C
l
r
式 2.5 中的归一化常量 C 由式 2.6 给出,其中: r(v) 是从 v 处到感受野中心的
归一化距离 :
lC
)(
K
l
1
K
l
Av
j
1
vr
(
)
la
C 神经元的输出由式 2.7 给出 :
nku
)
(
,
d
l
1
K
t
K
l
1
1
kkj
l
(
,
l
)
l
1
1
vnkuvd
)(
(
,
st
l
l
t
Dv
nV
(
sl
)
)
1
上式中 ψ(x)为 :
)(
x
x
x
,
x
0
,0
x
0
(2.5)
(2.6)
( 2.7)
( 2.8)
式中 β 为一常量。
kl 是第 l 级中的 S 子平面的数量。 D l 是 C—元的感受野。 因此, 它和特征的大小相对应。 dl(v)
是固定兴奋连接权的权值, 它是│ v│的单调递减函数。 如果第 kl 个 S 神经元子平面从第 k l-1
子平面处收到信号,那么 j l(k l,k l-1)的值为, 1 否则为 0。
最后, S_层的 V s 神经元的输出为
V
st
1
K
l
K
l
1
K
l
1 1
Vv
t
vnkuvdl
)(
(
,
sl
j
)
( 2.9)
图 2 为卷积神经网络中不同神经元之间的连接关系图,
经元之间的连接关系。
从图中可以很清楚地看出各种不同神
图 2 卷积神经网络中不同神经元间的连接
Fig.2 The connections convolutional neural network among different neurons
2.3 卷积网络的训练过程
神经网络用于模式识别的主流是有指导学习网络,
无指导学习网络更多的是用于聚类分
析。对于有指导的模式识别, 由于任一样本的类别是已知的, 样本在空间的分布不再是依据
其自然分布倾向来划分, 而是要根据同类样本在空间的分布及不同类样本之间的分离程度找
一种适当的空间划分方法, 或者找到一个分类边界, 使得不同类样本分别位于不同的区域内。
这就需要一个长时间且复杂的学习过程,
尽可能少的样本被划分到非同类区域中。
空间分成两类: 样本空间和非样本空间, 因而本文所使用的学习网络也是有指导的学习网络。
卷积网络在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关
系,而不需要任何输入和输出之间的精确的数学表达式,
训练, 网络就具有输入输出对之间的映射能力。
不断调整用以划分样本空间的分类边界的位置,
由于本文主要是检测图像中的人脸, 所以可将样本
使
只要用已知的模式对卷积网络加以
卷积网络执行的是有导师训练, 所以其样本
集是由形如: (输入向量,理想输出向量)的向量对构成的。所有这些向量对,都应该是来
源于网络即将模拟的系统的实际 “运行” 结果。 它们可以是从实际运行系统中采集来的。
开始训练前,所有的权都应该用一些不同的小随机数进行初始化。
络不会因权值过大而进入饱和状态,从而导致训练失败;
学习。实际上,如果用相同的数去初始化权矩阵,则网络无能力学习。
训练算法主要包括 4 步,这 4 步被分为两个阶段:
“小随机数”用来保证网
“不同”用来保证网络可以正常地
在
第一阶段,向前传播阶段:
①从样本集中取一个样本 (X,Y p),将 X 输入网络;
②计算相应的实际输出 Op。
在此阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络
在完成训练后正常运行时执行的过程。在此过程中,网络执行的是由式(
2.7)计算:
O p=F n(, ( F2( F1(X pW
(1)) W (2)), ) W ( n))
第二阶段,向后传播阶段
①计算实际输出 O p 与相应的理想输出 Y p 的差;
②按极小化误差的方法调整权矩阵。
这两个阶段的工作一般应受到精度要求的控制,在这里,用式(
作为网络关于第 p 个样本的误差测度。而将网络关于整个样本集的误差测度定义为:
2.8)计算 Ep。
E=∑ Ep。
E
p
1 m
2
j
1
2
(
y
pj
o
pj
)
( 2.8)
如前所述,之所以将此阶段称为向后传播阶段,是对应于输入信号的正常传播而言的。
因为在开始调整神经元的连接权时, 只能求出输出层的误差, 而其他层的误差要通过此误差
反向逐层后推才能得到。 有时候也称之为误差传播阶段。 为了更清楚地说明本文所使用的卷
积神经网络的训练过程,首先假设输入层、中间层和输出层的单元数分别是
,xN) 是加到网络的输入矢量, H=(h0,h1, ,
X=(x0,x1, ,
是网络的实际输出矢量,并且用
出单元 i 到隐单元 j 的权值是 V ij ,而隐单元 j 到输出单元 k 的权值是 W jk 。另外用 θ k 和φ j
来分别表示输出单元和隐含单元的阈值。
,hL) 是中间层输出矢量, Y=(y0,y1, ,
,dM) 来表示训练组中各模式的目标输出矢量输
D=(d0,d1, ,
N、 L 和 M 。
,yM)
于是,中间层各单元的输出为式( 2.9):
N
1
h
j
f
(
xV
ij
i
)
j
i
0
而输出层各单元的输出是式( 2.10):
L
1
y
k
hWf
u
j
k
j
0
其中 f(*) 是激励函数采用 S 型函数式( 2.11):
( 2.9)
( 2.10)
)
kx
xf
(
1
e
在上述条件下,网络的训练过程如下:
1)选定训练组。从样本集中分别随机地选取
2)将各权值 V ij, Wjk 和阈值 φj, θ k 置成小的接近于 0 的随机值,并初始化
300 个样本作为训练组。
( 2.11)
1
精度控制参数 ε 和学习率 α 。
3)从训练组中取一个输入模式 X 加到网络,并给定它的目标输出矢量
4)利用式( 2.9)计算出一个中间层输出矢量
H,再用式 (2.10) 计算出网络的实际输出
D。
矢 Y 。
5)将输出矢量中的元素 yk 与目标矢量中的元素 dk 进行比较,计算出 M 个输出误差项
式( 2.12):
(
d
k
yy
k
)
k
1(
y
k
)
k
对中间层的隐单元也计算出 L 个误差项式( 2.13):
h
j
1(
h
j
)
j
M
1
k
0
W
k
jk
6)依次计算出各权值的调整量式( 2.14)和式( 2.15):
nW
)(
jk
(
1/(
L
(*))
nW
(
jk
*)1)1
*
h
j
k
nV
)(
ij
(
1/(
N
(*))
nV
(
ij
*)1)1
*
h
j
k
和阈值的调整量式( 2.16)和( 2.17):
)(
n
k
(
1/(
L
(*))
(
n
k
*)1)1
k
)(
n
j
(
1/(
L
(*))
n
(
j
*)1)1
j
7)调整权值式( 2.18)和式( 2.19):
nW
(
jk
)1
nW
)(
jk
nW
)(
jk
nV
(
ij
)1
)(
nV
ij
nV
)(
ij
调整阈值式( 2.20)和( 2.21):
(
n
k
)1
)(
n
k
(
n
j
)1
(
)
n
j
)(
n
k
)(
n
j
( 2.12)
( 2.13)
( 2.14)
( 2.15)
( 2.16)
( 2.17)
(2.18)
( 2.19)
( 2.20)
( 2.21)
8)当 k 每经历 1 至 M 后,判断指标是否满足精度要求: E≤ ε ,其中 E 是
总误差函数,且
E
1
2
M
1
(
d
k
k
0
2
y
k
)
。如果不满足,就返回( 3),继续迭代。如果满
足就进入下一步。
9)训练结束,将权值和阈值保存在文件中。这时可以认为各个权值已经达稳
定,分类器形成。再一次进行训练时,直接从文件导出权值和阈值进行训练,不需
要进行初始化。
2.4 卷积神经网络的优点
卷积神经网络 CNN主要用来识别位移、 缩放及其他形式扭曲不变性的二维图形。
由于
CNN的特征检测层通过训练数据进行学习,所以在使用
隐式地从训练数据中进行学习; 再者由于同一特征映射面上的神经元权值相同,
以并行学习, 这也是卷积网络相对于神经元彼此相连网络的一大优势。
所以网络可
卷积神经网络以其局
CNN时,避免了显示的特征抽取,而