- 10
- 0
- 约3.3千字
- 约 8页
- 2018-08-16 发布于福建
- 举报
人工神经网络在数字识别中应用
人工神经网络在数字识别中的应用
摘要: BP神经网络是最常用的一种人工神经网络。本文介绍了利用BP神经网络来实现离线手写体数字识别的基本方法,分析了传统BP算法的一些缺点,针对这些缺点指出了一些较新的改进算法。利用MATLAB验证了这些较新的算法。实验数据表明,改进的算法具有较高的识别率。
关键词:BP神经网络;数字识别;激励函数
1引言
手写数字识别是一个经典的模式识别问题,有着重大的应用价值和理论价值。一方面自动处理信件分拣、统计报表、财务报表、银行票据等问题的核心技术是手写数字识别,因此,手写数字的识别研究有着巨大的社会和经济效益。另一方面,由于数字识别的类别数较小,有助于做深入分析及验证一些新的理论,手写数字识别作为模式识别领域的一个重要问题,也有着重要的理论价值。这方面最明显的例子就是人工神经网络(ANN) --相当一部分的ANN模型和算法都以手写数字识别作为具体的实验平台,验证理论的有效性,评价各种方法的优缺点。
因为在人工神经网络的实际应用中,80%~90%的神经网络模型是采用BP神经网络或它的变化形式,它也是前向网络的核心部分,体现了人工神经网络最精华的部分[1],所以本文采用的就是BP神经网络。
2 BP神经网络的简介
BP神经网络是典型的多层网络,分输入层、隐含层和输出层。层与层间采用全连接方式,同层单元之间不存在相互连接。BP算法由数据流的正向传播和误差信号的反向传播两个过程构成。正向传播时,传播方向为输入层→隐层→输出层,每层神经元的状态只影响下一层神经元。若在输出层得不到期望的输出,则转向误差信号的反向传播流程。通过这两个过程的交替进行,在权向量空间执行误差函数梯度下降策略,动态迭代搜索一组权向量,使网络误差函数达到最小值,从而完成信息提取和记忆过程[2]。BP神经网络的网络模型如图1。
3数字识别系统的实现
3.1总体设计思路
我们通常把数字识别问题分为两大模块:
图像预处理模块:图像输入→灰度转化→图像二值化→梯度锐化→去离散噪→倾斜度调整→图像分割→归一化调整→紧缩重排→特征提取→字符特征输入;
神经网络数字识别模块:样本训练→通过图像预处理提取预识别的字符的特征→识别并给出结果。
3.2 BP神经网络的设计
输入层神经元个数和输出层神经元个数的确定。网络的输入层神经元个数和输出层神经元个数根据应用的具体要求来设定,输入层节点数目取决于数据的维数,本系统采用32×16归一化,特征提取采用的是直接利用每个点的像素值作为特征,这样,对于每一个输入样本就有32×16=512个特征。为了方便建立系统,系统将特征数据为32*16的矩阵转换成512×1的矩阵,因此神经网络输入层神经元个数为512。因为要识别10个数字,因此输出选择为10×1的矩阵,输出层神经元个数为10,分别对应0~9,即当数字图像0~9输入神经网络后在输出神经元对应的位置上为1,其他的位置为0。
网络隐层层数和隐层神经元个数的确定。一般认为,增加隐层数可以降低网络误差,提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。通过试验可以得出,靠增加隐层神经元个数来获得较低的误差,其训练效果要比增加隐层层数更容易实现,因此我们只使用了1层隐层。隐含层节点数的选取,目前也无固定的理论依据,对于具有n个输入层神经元,m个输出层神经元的小型网络,最佳隐含层节点数h可参照公式:h=■确定,因此隐层选为71个神经元。
所以本系统共3层的神经网络:输入层512个神经元,隐层71个神经元,输出层10个神经元。
学习率η的设定。学习率η决定每一次循环训练中所产生权值的变化量。η大时,收敛快,但可能导致系统不稳定;η小时,可避免这个问题,但收敛很慢,需要很长的训练时间。
传统BP学习算法中权值调整幅度均以一个固定的因子η与网络误差函数或误差曲面对这些参数的偏导数的幅值大小成比例,这是造成BP学习算法收敛很慢的一个重要原因。另外,传统BP学习算法中的权值调节是沿着网络误差函数梯度下降最快方向进行的,由于网络误差函数的Hesse矩阵出现严重的病态特征,致使这一梯度下降最快向极大地偏离指向误差曲面的最小点方向,从而急剧地加长了网络参数到达最小点位置的搜索路径。这又是造成BP学习算法收敛慢的另一个重要原因[3]。
克服上述缺陷的基本出发点是:网络中每个权值的调节应该有各自的学习率,而且学习率在网络整个学习过程中可以根据网络误差曲面上的不同区域的曲率变化自适应调节。本网络采用了改进的学习率。
学习步长的选择。学习步长决定每次循环训练中所产生的权值变化量。大的学习步长可能导致系统不稳
原创力文档

文档评论(0)