浅谈BP神经网络在模式识别中的应用

时间:2022-04-28 12:23:22

浅谈BP神经网络在模式识别中的应用

摘要:模式识别技术在各行各业都有广泛的应用。在工业检测、医疗仪器的样本检查分析、军事卫星侦察、人工智能方面有着举足轻重的作用。该文介绍基于BP神经网络的模式识别方法。运用一种基于 BP神经网络的改进算法,将基于学习的思想引入到模式识别中,对样本数据进行学习和训练,形成良好的网络,最后对与已训练好的网络进行检验的整个过程,由于达到了一定的准确度,避开了传统方法计算属性权重的问题。

关键词:模式识别;Bp神经网络

中图分类号:TP18 文献标识码:A文章编号:1009-3044(2011)07-1543-03

On BP Neural Network in Pattern Recognition Application

LIN Jia-xiang, GE Yuan

(Information Engineering College, Shanghai Maritime University, Shanghai 200135, China)

Abstract: Pattern recognition technology, widely used in all works. Automatic detection of industrial and medical equipment on the inspection of samples, military satellites detect Police, intelligence has a pivotal role. This article describes the pattern recognition based on BP neural network method. Based on the use of BP Improved neural network algorithm, will be based learning is introduced into pattern recognition, data on the sample study and training, to form a good network Contact, and finally with the already trained network to test the whole process, because to a certain accuracy, to avoid the traditional method of calculating property Weight problems.

Key words: pattern recognition; BP neural network

模式识别作为一门新的学科,从1960年代开始逐渐应用于各科技及工业领域。尤其,人脸识别、声音识别、指纹识别、医学诊断领域的研究应用,使模式识别成为一门热门的学科。模式识别,研究的内容是让机器通过学习自动识别事物。但传统的模式识别方法,很难完成人脸识别、声音识别等需要直接感知外界信息领域的识别任务。因此,近些年来结合神经网络来研究模式识别成为一个新的课题。

神经科学作为一门科学起始于19世纪末。近几十年来,神经科学和脑功能研究的发展极为迅速。人工神经网络由于其自组织和非算法特性,在模式识别应用方面有很大的发展潜力。在神经网络模式识别系统中,用得最广泛的要算是BP神经网络。1986年,Rumelhart等人在多层神经网络模型的基础上,提出了多层神经网络模型的反向传播学习算法,它是基于误差前向传播(Error Back Propagation,简称BP)算法的一种具有非线性连续转移函数的多层前馈网络。BP算法,解决了多层前向神经网络的学习问题,证明了多层神经网络具有很强的学习能力,它可以完成许多学习任务,解决了许多实际的问题。

本文主要介绍BP神经网络在模式识别中的应用,并结合实例予以说明。

1 模式识别概述

1.1 模式识别研究内容

人类在长期的生活实践和科学研究中,逐渐积累起来了通过感觉器官辨别不同事物的能力。例如,人们可以根据物体的形状、颜色、质地、组成以及各部分的结构关系把不同物体区别开来;可以根据人的高矮、胖瘦、性别、年龄、肤色、脸型把不同的人区分开来。人们之所以能进行这样的辨别,重要的原因在于不同事物具有不同的特征,包括物理特征及结构特征。由此使人们想到,如果能把事物的关键特征抽取出来,以不同的特征组合代表不同的事物,并且用适当的让计算机能接受的形式表示出来,这样就有可能使计算机具有识别能力,使它能区分不同的事物。像这样用事物的特征所构成的数据结构就成为相应事物的模式,或者说模式是对事物定量的或结构的描述。由具有共同属性的模式所构成的集合称为模式类,它是一个抽象出各有关模式的共同属性而废弃各具体模式不同属性的分类概念。识别能力原本是人类和其他生物的一种基本属性,人们通过模式感知外部世界的各种事物,这是获取知识、概念和作出反应的基础,是一种思维和抽象过程。而在人工智能或信息科学范畴内,模式识别是指用数学、物理方法和技术实现对模式的自动处理、描述、分类和解释,目的在于用机器部分实现人的这种智能活动,所以在目前模式识别所研究的内容可以分为两类:一是对人类和其他生物识别能力及其机理的研究。二是对满足某些应用需要的识别装置的理论和技术的研究。

前者研究的内容主要涉及神经机理和认知心理等方面,往往是它的研究为后者提供理论基础和模仿的依据。而第二个课题主要是通过工程、计算机和其他信息科学等方面的技术和知识,达到以机器模拟或局部超过人的识别能力的目的。它在技术上的提高不但验证了前者的结论,而且为其进一步的研究提供了手段。可以看出在人工智能或信息科学范畴内,所谓的模式识别(Patten Recognition)是研究一种自动技术,依靠这种技术,机器将自动地把待识别模式根据其特征分到各自的模式类中去。

1.2 模式识别系统的结构

计算机对识别对象进行识别的过程实际上是一个决策过程,它根据一定的识别规则对识别模式的特征进行判定,从而决定它所属的模式类。一个典型的模式识别系统,分别由数据获取、预处理、特征提取、分类决策、和分类器设计五步骤组成。通常一个完整的系统分为两个部分,第一部分是用来完成未知类别的模式分类。第二部分是训练分类器设计,确定分类器各项参数。模式识别系统结构如图1所示。

以下简要说明模式识别系统各组成部分功能:

1)数据提取: 计算机提取的数据通常有三种类型。第一种是一维波型信息,如心电图、气象信息图等。第二种是二维图像信息,如图片、指纹、文字等。每三种是物理参数,如气温参数、水文参数等。

2)数据预处理:计算机对初步提取的数据信息进行去除噪声、复原、提取相关参数信息。

3)数据特征提取:对预处理提取的数据信息,进行变换处理,获取反映分类本质的特征。对原始数据的高维数测量空间,进行转换,形成反映分类识别的低维数特征空间。

4)分类器设计:对特征空间的识别对象进行分类。训练样本,确定分类器判别函数,并不断改进判别函数和误差检验。

2 BP神经网络的模型

2.1 BP神经网络的结构

BP神经网络 (Back-Propagation) ,又称误差反向传递神经网络。它是人工神经网络(ANN)中的一种模型,是利用率很高的一种神经网络,约有80%的神经网络属于BP神经网络。BP神经网络是一种依靠反馈值来不断调整节点之间的连接权值而构建的一种网络模型。图2显示了一个3层BP神经网络的体系结构,它分为输入层、隐含层和输出层,其中隐含层根据具体情况的需要,可以是一层结构也可以为多层结构。

设输入层有n个神经元节点,隐含层有q个神经元节点,输出层有m个神经元节点。利用该网络可实现n维输入向量Xn=(X1,…,Xn)T到m维输出向量Ym=(Y1,…,Ym)T的非线性映射。输入层和输出层的单元数n、m根据具体问题确定,而隐含层单元数q的确定尚无成熟的方法,一般可设定不同的q值根据训练结果来进行选择。

BP神经网络结构(n、q、m)确定后,神经网络还包括的参数有:

wij:输入层第i单元到隐含层第i单元的权重,其中i=1,…,n;j=1,…,q。

wjk:隐含层第j单元到输出层第k单元的权重,其中j=1,…,n;k=1,…,m。

θj:隐含层第j单元的激活阈值,j=1,…,q。

θk:输出层第k单元的激活阈值,k=1,…,m。

以上权重和阈值的初值在网络训练之前随机生成。

f(x):激活函数一般采用Sigmoid型函数,即f(x)1/[1+exp(-x)]。

2.2 BP神经网络的学习算法

2.2.1 BP神经网络的学习过程

1)输入模式正向传播:输入模式由输入层经中间层向输出层的模式正向传播过程。

2)输出误差反向传播:网络的期望输出与网络实际输出之间的误差,由输出层经中间层传向输入层的误差反向传播过程。

3)循环记忆训练:模式正向传播与误差反向传播的计算过程反复交替循环进行。

4)学习结果判别:判定网络的全局误差是否趋向极小值的学习收敛过程。

2.2.2 BP算法

3层BP神经网络,输入节点xi,隐层节点yj,输出节点zk。输入节点与隐层节点间的网络权值为wij,隐层节点与输出节点间的网络权值为wjk,如图3所示。

当输出节点的期望值为dk时,BP算法如下:

1)隐含层节点的计算输出:

2)输出层节点的计算输出:

输出节点误差为:

3)输出单元的权值对误差的影响:

4)隐含层节点对误差函数的影响:

5)由于权值的修正Δwij,Δwij正比于误差函数沿梯度下降,则有:

6)阈值的修正。阈值θ也是变化值,在修正权值的同时也需要修正,原理同权值修正一样。

输出层阈值修正:θk(t+1)= θk(t)+ ηδk

隐含层阈值修正:θj(t+1)= θj(t)+ η'δj

传递函数f(x)的导数:采用S型函数f(x)=1/(1+e-x)

f'(netk)=zk(1-zk),f'(netj)=yj(1-yj)

以上式子中出现的η(η>0)为学习参数。

3 应用BP神经网络进行字符特征识别的仿真实验

运用matlab7.0建立BP神经网络,并通过样本训练,完成对26个英文字母的识别仿真实验。

3.1 建立BP网络

通过5*7像素的二值数字图像来表示英文字母的对应图像。以字符的35个布尔数值作为BP网络输入。以26个字符的所在位置作为输出向量。现实中的字符图像不一定很精确,所以要求BP网络要有一定的容错能力。

利用newff函数设计一个两层的BP神经网络。以logsig传递函数,建立第一、第二层的神经元。

3.2 训练BP神经网络

设定训练函数和训练样本。先使用无噪声的信号对BP网络进行训练,一直到1000个时间单位和误差小于0.1时,完成BP网络训练。BP网络训练的误差变化情况如图4所示。

再对BP网络进行含噪声的样本训练,重复训练10次。使含噪声样本训练后的BP网络可以准确识别无噪声或含噪声的输入样本。

3.3 进行仿真实验并测试输出

利用输入样本,对BP网络进行仿真。仿真实验测试结果如图5所示。

图5中,虚线表示无噪声样本训练的网络,实线表示含噪声样本训练的网络。从图可以看到,输入噪声指标低于0.1情况时,两个网络对字符识别的能力都很高。当输入噪声指标大于0.1的情况下,经过含噪声样本训练的网络,容错能力比较高。因此,网络训练中增加噪声样本的比重可以提高网络的容错能力。

4 小结

BP(Back Propagation)神经网络,是能实现映射变换的前馈网络中最常用的一类网络,它是一种典型的误差修正方法,具有理论上能逼近任意非线性连续函数的能力,且结构简单,易于编程,在众多的领域得到了广泛的应用。本文应用matlab建立BP神经网络,并通过样本训练,仿真对字符的识别。从中可知,相对于传统模式识别方法,BP神经网络对字符识别准确度高,容错能力强。BP神经网络在模式识别中应用十分广泛,但也存在一些问题有待解决:1)局部极小点问题。BP神经网络不能保证使权值收敛于全局最小点;2)收敛速度问题。对于复杂的问题,网络训练时间较长;3)稳定性问题。增加训练样本,网络对训练好的权值和阈值无记忆能力,要重新开始训练。

参考文献:

[1] Theodoridis S,Koutrourmbas K.模式识别[M].北京:机械工业出版社,2009.

[2] 边肇祺,张学工.模式识别[M].北京:清华大学出版社,2000.

[3] 丁永生.计算智能-理论、技术与应用[M].北京:科学出版社,2004.

[4] 褚蕾蕾,陈绥阳,周梦.计算智能的数学基础[M].北京:科学出版社,2002

[5] 徐宗本,张讲社,郑亚林.算智能中的仿生学:理论与算法[M].北京:科学出版社,2003.

[6] 武强,童学锋,季隽.基于人工神经网络的数字字符识别[J].计算机工程,2003(14):43.

上一篇:DSP在智能车路径跟踪系统中的应用 下一篇:Web信息抽取研究综述