基于MATLAB的数字识别
计算机与信息工程学院 本科生毕业论文 基于BP神经网络的手写数字识别算法的设计与实现 班 级: 13汉班 学 号: 姓 名: 江晓雪 指导教师: 李艳玲 2017 年 3 月 31 日 毕 业 论 文 目 录 1 绪论1 1.1 图像识别的提出1 1.2 图像识别的现状与发展趋势1 2 BP神经网络的概述2 3 手写体数字识别的实现过程4 3.1 整体线路图4 3.2 算法流程5 3.3 图像预处理10 3.4 结果分析10 4 结论11 参考文献12 全文共 13 页 4834 字 基于BP神经网络的手写数字识别算法的设计与实现 计算机与信息工程学院 2013级汉班 江晓雪 指导教师 李艳玲 副教授 摘要 本文实现了基于MATLAB关于神经网络的手写数字识别算法的设计过程,采用神经网络中反向传播神经网络(即BP神经网络)对手写数字的识别,由MATLAB对图片进行读入、灰度化以及二值化等处理,通过神经网络进行训练和测试。实验证明:该神经网络对手写数字的识别可以达到95.65%。 关键词 手写数字识别;BP神经网络;MATLAB语言 1 绪论 1.1 图像识别的提出 图像识别在信息技术发达的今天已经占据了很重要的地位,在我们实际生活中也有很多应用。所谓的图像识别,就是指通过计算机对图像进行相应的处理、分析,来达到识别不同模型的目标和任务的一种技术。对于它的提出,简单的来说,它的发展经历了三个阶段:第一个是文字识别 、第二个是数字图像处理与识别、第三个是物体识别。第一种相对来说比较简单,它的研究是从1950年开始的,一般情况是识别字母、符号和数字,无论是印刷体识别还是手写体识别,它的应用都非常广泛,但是也伴随着,这个识别的过程会更加的耗时、费力,无论是人力还是物力,都会有很大的损失;第二种就是我们所说的数字图像处理与识别,在图片的识别过程中,图片识别会有一定的误差,也会带来小小的麻烦;第三就是物体识别,而物体的识别主要指的是:在三维世界中,对于个体、环境的感知和认识进行识别,这不同于二维世界的认知,相对来说是更高级的计算机图像识别,它是以二维世界中对数字图像和模拟图像处理的办法为依据,进行更高一级的,并且结合了现代人工智能技术等学科的研究目标,研究成果已经被广泛的应用在各种工业探测机器人上,为人们的安全提供了很大的帮助。 1.2 图像识别的现状与发展趋势 随着网络的发达、电子的信息化,图像识别的应用已经非常广泛,而主要的研究工作也包括各行各业,整理以下几点对其应用的广泛度进行说明: ⒈在生物学中,对生物的原型进行研究。从生物的脑细胞结构、物体解剖等其他科学研究的方向对生物的体系结构、神经结构、神经细胞组织等生物的原型结构及其功能机理进行研究,增强对生物学更加全面的理解。 ⒉在实际应用中,建立我们需要的理论模型。根据需要应用的信息在生物学中的应用,建立需要的生物原型,也可以建立类似神经元、神经网络这样不可见的理论模型,以便可以让其更加有效的应用在生活中。建立我们生活中不能直观表现的事物模型,以便我们可以更方便的、更直观的理解事物的本质。 ⒊在信息时代中,建立网络模型以及算法研究。就是通过上面所说的,建立相应的理论模型,在这个基础上加以理解,建立我们所需要的网络模型,实现计算机应用,主要应用在网络学习算法的研究,这方面的研究工作也被人们称为技术模型研究。 ⒋信息时代的发展,让我们在生活中有很多的应用,例如:完成某种函数图像的绘制以及对其变化的形式进行分析、对图片信号的处理、模式识别等功能,建立需要的应用系统、制造机器人等等。 通过上面的说明,也就是说从开始根据生物学原理的应用,直到建立需要的神经网络模型,最后应用到图像识别当中,可以看出其模型的建立是在生活中实例的基础上,其可靠性和准确性是显而易见的,这样就大大的增加了可信度,与此同时,也减少了工作中不必要的麻烦与困扰。而在网络信息发达的今天,人类在基本粒子、宇宙空间、生命起源等科学领域方面都已经显现出很高的兴趣度,而这其中难免会有图像提取后的处理工作,所以图像识别的应用就会越来越广泛。 2 BP神经网络的概述 反向传播(Back-Propagation,BP)学习算法简称BP算法,采用BP算法的前馈型神经网络简称BP网络。BP网络是多层感知器的一种,它具备多层感知器的特点,同时也有自己的特点。多层感知器包括输入层、隐藏层、输出层,其中隐藏层可以有多个,而我们BP网络中隐藏层只有一个,其简单构造如图所示: 图1 多层感知器结构图 而我们用到的BP网络中的具体信号流如图所示,它有一个反向传播的过程,这也是对传播进行调整,使精确度更高的一种办法。如图所示,其中有两种信号流通: 图2 多层感知器的信号流 第一:函数信号 简单来说就是信号进入输入层,然后通过隐藏层到达输入层,通过输出层输出所得值,就可以完成一个函数信号。 第二:误差信号 误差信号就是在逆向的传播的过程中传输的信号。其中,有两个重要参数。一个是函数信号即sigmoid函数,还有一个就是权值的梯度运算即梯度向量。(注:sigmoid函数、权重的修正函数,如图所示。) (1) (2) 通过对两个参数的调整,完成整个算法的应用。 3 手写体数字识别的实现过程 3.1 整体线路图 整体流程图如图3所示: 图像测试 损失函数的设计与应用 可视化测试数据 神经网络的设计与训练 sigmoid函数 图3 整体流程图 部分文件调用流程图如图4所示: sigmoid checkNNGradients nnCostFunction 第八部分:实现正规化 第八部分:训练NN fmincg nnCostFunction sigmoidGradient sigmoid nnCostFunction sigmoidGradient randInitializeWeights checkNNGradients debugInitializeWeights nnCostFunction computeNumericalGradient 第五部分:sigmoid函数 第六部分:初始化参数 第七部分:实现反向传播 第三部分:前馈网络 第四部分:前馈正规化 图4 整体流程图 3.2 算法流程