一种基于神经网络的图像识别算法
2015-09-11曾晓娟
曾晓娟
摘要:该文介绍了一种基于神经网络的图像识别算法。人工神经网络(Artificial Neural Network,ANN)是在神经生物学发展的基础上,模仿生物神经网络的结构功能,进行分布式并行信息处理的数学模型。自1943年第一个人工神经网络模型诞生至今,人们已发展出了多种类型的网络结构与算法,其中误差逆传播神经网络,即BP神经网络是发展最为成熟和应用最为广泛的一种神经网络模型。图像识别是目前计算机科学领域中数字图像处理与模式识别相交叉的一个研究热点,具有重要的理论价值和广泛的应用需求。该文采用基于BP神经网络的图像识别算法进行建模仿真,分析和研究了两个具体实例。
关键词:神经网络;图像识别;BP算法;人工智能
中图分类号:TP394.1 文献标识码:A 文章编号:1009-3044(2015)17-0171-04
An Image Recognition Algorithm based on Neural Network
ZENG Xiao-juan
(Information Project Department, Higher Vocational School of Electrical and Mechanical Services in Jiangsu Xuzhou, Xuzhou 221011, China)
Abstract: This paper introduces a kind of image recognition algorithm based on neural network. Artificial neural network is a kind of mathematical model based on the development of neurobiology. It imitates structure and function of biological neural network and does the distributed parallel information processing. Since the first artificial neural network model was built in 1943, people have developed hundreds of network structures and algorithm models. Of them the error back propagation (BP) neural network is one of the most mature and most widely algorithm models. Image recognition is now a hot research topic in the field of digital image processing and pattern recognition and has important theory values and wide range of practical applications. This paper simply introduces two example of image recognition based on neural network algorithm by using MATLAB.
Key words: neural network; image recognition; BP algorithm; artificial intelligence
1 引言
图像识别的难点在于图像特征会随着图像自身内部的变化及外部光线强弱等影响而发生整体或局部的变化。由于人脑是一种高度进化的发达的复杂信息处理器官,因此能够在不同条件及环境下提取图像特征,对图象所传达的信息做出有效分析。但计算机作为人类设计制造的一种信息处理机器却远不能拥有人脑所具备的能力。因此,一种可行的方式就是,可以通过模仿人类大脑的结构模型和工作原理,对构成大脑的最基本单元——神经元进行数学抽象,构建人工神经网络,以此对图像进行特征提取以及识别。基于人工神经网络的方法进行图像识别的特点主要是利用神经网络作为分类器,将已经进行一定程度处理的图像信息如提取的特征向量等作为不同学习样本,输入该分类器进行训练,使得该神经网络分类系统通过自动学习调整各神经元的权重,最终达到一个稳定的状态并能够很好地反映出所处理图像的特点,并能够正确分类。文章所介绍的基于神经网络的图像识别算法,在本质上是一种仿生方法的数学化应用。
2 BP神经网络
2.1 BP神经网络模型
BP(Back Propagation)神经网络是以Rumelhart和McCelland为首的科学家小组于1986年提出的一种根据误差的反向传播算法训练的多层前馈网络,是目前发展得最为深入,应用最为广泛的人工神经网络模型之一。BP神经网络具有学习和贮存大量输入-输出映射关系的特点,且无需事前给出描述该映射关系的数学方程。其学习方法采用最大速降法,反向传播误差以不断调整网络的权值及阈值,使整个网络的方差最小。BP网络的拓扑结构包括:输入层(input)、隐藏层(hidden layer)和输出层(output layer),其模型各部分分别简述如下:
1)输入/输出模型
以最简单的BP神经网络模型为例,其基本公式为:
2.2 BP神经网络在图像识别上的应用
将BP神经网络应用于图像识别的基本思路是:根据所识别的图像类别,在识别每一帧图像的过程中利用BP神经网络建立分类器模型。
分类(Classification)是数据挖掘的三大核心技术之一,其实质是产生一个目标函数f,该函数将输入数据集的属性集x映射到已经定义的类标签y上,该目标函数通常也被称为分类模型或分类器(Classifier)。
因此,分类可以定义为:通过对已知分类的训练集(Training Set)的学习,用样本的特征属性建立一个划分类别属性的模型,也就是分类器的训练;然后用测试集(Test Set)来评价模型的准确率,也称为分类器的测试。达到测试标准的模型便可以对新样本进行分类,最终实现神经网络在图像识别上的应用。
2.3 BP神经网络算法建模
BP神经网络的学习主要由由正向传播和误差反向传播两部分构成。
在正向传播学习过程中,每一层的神经元状态影响且只影响下一层神经元。若输出层未得到期望输出,即实际输出与期望输出之间存在误差,则进入误差反向传播学习过程。
误差反向传播学习即将误差信号沿着原有神经元连接通路返回,根据误差,通过修改各层神经元之间的连接权值,逐层返回输入层方向进行计算,完成该过程后再次重复正向传播学习过程。
通过这两个过程的反复运用,最终使得实际输出距离期望输出的误差最小。但实际应用时,往往预先设定能够接受的目标误差达,当网络经学习达到所设定的误差精度时,网络学习即可结束。
为简化描述,假定该网络只有一个输出y。给定N个样本为:(xk, yk)(k=1,2,...,N),假设神经元任一节点i的输出为[ο]i,则对应神经元的输入为xk,对应网络的输出则为yk,节点i的输出则为[ο]ik。
现以第l层的第j个单元为研究对象,当输入第k个样本时,节点j的输入为:
2.4 算法优化
为了达到所设定的精度,需要对该模型进行优化,以期得到较理想的图像识别效果。需要指出的是,训练样本(即输入)的输入顺序从某一次到另一次必须满足随机状态下完成。学习速率等参数需随着训练的迭代次数的增加而予以调整(通常情况下需减少)。因此通过该模型结合较多的迭代次数,一般可以使得图像识别达到一个新的精度。
3 仿真实验
3.1 仿真实验
为了检验上文介绍的BP神经网络模型在实际应用时的效果,在MATLAB环境下进行了仿真实验。由于在隐含层的神经元个数可以随意调整的前提下,单隐含层的BP神经网络可以逼近任意的非线性映射。输入层和输出层神经元个数为1,只有一个隐含层,其个数根据上述的设计经验公式和本例的实际情况,选取9-16之间。下面的隐含层神经元个数可变的BP神经网络,通过误差和训练步数对比确定隐含层个数,并检验隐含层神经元个数对网络性能的影响。
3.2 BP神经网络的MATLAB设计
在隐藏层神经元数目可以任意调整的前提下,单隐藏层BP神经网络可以逼近任意非线性映射。输入层和输出层神经元数目为1,则只有一个隐藏层,其神经元数目根据本例的实际情况可选为9-16。接下来构建一个隐藏层神经元数目可变的BP神经网络,通过误差和迭代次数的对比来确定隐藏层数目,并检验隐藏层神经元数目对网络性能的影响。下面是重要步骤的MATLAB程序代码及注释:
%隐藏层的神经元数目范围
据图可知,选择隐含层神经元数目为15是最佳选择,不仅误差小、学习步长短,而且性能稳定。也可以看出并非隐含层神经元的数目越多,网络的性能就越好。
3.3 实验总结
修改BP网络学习算法的学习函数,可以得到标准BP算法以外的其他算法:增动量法、弹性算法、动量及自适应学习速率法以及共轭梯度法和L-M算法。其中后两者的收敛速度明显更快。从实际的仿真结果及方差综合观之,仅L-M算法可以达到目标误差,因而对高精度的误差来说,L-M算法的优势要更为明显;从方差结果及仿真效果图来看,进行仿真实验的算法从优到劣依次为L-M算法、共轭梯度法、弹性算法、动量及自适应学习速率法、增动量法和标准BP算法;从误差曲线来看,L-M算法达到了目标误差,标准BP算法的误差曲线较粗,是因为较小范围振荡产生锯齿,在图形中由于间距加大,图形不断重叠而成,收敛速度很慢;增动量法、弹性算法、动量及自适应学习速率法的误差曲线较为平滑,在刚开始收敛较快,在训练步数增加的时候,曲线趋于水平,收敛速度比较慢;共轭梯度法和L-M算法的误差曲线变化较大且产生局部锯齿状,说明不是最优,仍需要进行优化,其中L-M算法达到了目标误差。共轭梯度法在相邻迭代的正交方向搜索,综合误差曲线可知当接近极值时会产生锯齿形振荡。再根据前面对各种BP改进算法的描述可知,弹性算法不需要进行搜索,需要内存比较小,因此在一些大型网络中比较适用,但是需要很长的训练时间。对收敛速度要求不高时也可使用动量及自适应学习速率法。在小型网络中,共轭梯度法仅次于L-M算法,但是L-M算法需要更大的内存做临时存储,对于较大复杂的网络和内存受限的设备来说不是很好的选择,但是对于小型网络来说却是首要选择。对训练时间允许的条件下,共轭梯度法和弹性算法是对复杂大型网络较好的选择。
4 结论
本文首先指出了神经网络在图像识别领域中的研究目的和应用意义,并介绍了BP神经网络算法的数学模型及其工作原理,并分析研究了BP神经网络在具体实例中的应用。并对比了基于不同算法的BP神经网络的网络性能和应用特点。实验证明,在图像识别领域应用BP神经网络方法可以大大提高图像的识别速度和精度,这将是今后图像识别领域的一个发展热点。
参考文献:
[1] 海金(HayKin,S.),叶世伟.神经网络原理(原书第2版)[M].北京:机械工业出版社,2004: 12-268.
[2] 周开利,康耀红.神经网络模型及其MATLAB仿真程序设计[M]. 北京:清华大学出版社,2004: 2-4.
[3] 王永骥,涂健.神经元网络控制[M].北京:机械工业出版社,1998: 1-309.
[4] 张乃绕,阎平凡.神经网络与模糊控制[M].北京:清华大学出版社,1998: 1-29.
[5] 楼顺天.基于Matlab的系统分析与设计---神经网络[M].西安:西安电子科技大学出版社,2000:23-40.
[6] 周开利,康耀红.神经网络模型及其MATLAB仿真程序设计[M].清华大学出版社,2006:10-43
[7] 魏海坤.神经网络结构设计的理论与方法[M].国防工业出版社,2005:20-30
[8] 李学桥.神经网络工程应用[M]. 重庆:重庆大学出版社,1995:20-73.
[9] 冯蓉, 杨建华.基于BP神经网络的函数逼近的MATLAB实现[J]. 榆林学院学报, 2007(2).