摘要:本文简述了BP神经网络模型及BP学习算法规则,并在Matlab中利用BP神经网络对英文字母进行了识别,经结果分析发现BP神经网络对字母具有一定的辨识能力,是一种对字母识别的有效方法。

关键词: BP神经网络 Matlab 字母识别

Abstract:This paper first describes the back propagation network model and the rule of back propagation learning algorithm. And then identified the alphabet in Matlab using the back propagation network. The results show that the back propagation network has the ability to identify some of the letters of the alphabet, which is an effective method for character recognition.

Key Words: Back propagation network; Matlab; character recognition

1 引言

20世纪80年代中期,学者Rumelhart、McClelland和他们的同事提出了多层前馈网络MFNN(Mutltilayer Feedforward Neural Networks)的反向传播学习算法,简称BP网络(Back Propagation Network)学习算法。BP网络是对非线性可微分函数进行权值训练的多层前向网络。在人工神经网络的实际应用中,80%~90%的模型都采用BP网络或其变化形式。采用BP 算法的多层前馈网络, 是迄今为止应用最广泛的神经网络, 具有很强的非线性逼近能力以及自适应、自学习能力。

英文字母识别,是文字识别中一个重要分支。由于英文字母字体种类繁多,因而对英文字母的识别难度很大。针对英文字母的特性,本文基于BP 算法,设计了一种英文字母识别训练系统。本文主要选取四种大小写英文字母作为训练集样本, 用设计的BP网络对其进行训练, 从而得到英文字母的识别结果。

2 BP神经网络

BP 神经网络作为人工神经网络中应用最广的算法模型,具有完备的理论体系和学习机制。它模仿人脑神经元对外部激励信号的反应过程,建立多层感知器模型,利用信号正向传播和误差反向调节的学习机制,通过多次迭代学习,成功地搭建出处理非线性信息的智能化网络模型。

2.1 BP神经网络模型

反向传播神经网络(Back-Propagation Network,简称BP网络)是对非线性可微分函数进行权值训练的多层网络,是前向神经网络的一种。

BP网络主要用于:

1)函数逼近与预测分析:用输入矢量和相应的输出矢量训练一个网络,逼近一个函数或预测未知信息;

2)模式识别:用一个特定的输出矢量将它与输入矢量联系起来;

3)分类:把输入矢量以所定义的合适方式进行分类;

4)数据压缩:减少输出矢量维数以便于传输与存储。

在人工神经网络的实际应用中,80%-90%的神经网络模型是采用 BP 网络或它的变化形式,它也是前向网络的核心部分,体现了人工神经网络最精华的部分。

BP神经网络的模型结构如图1所示。

图1 具有一个隐含层和输出层的BP神经网络模型

BP网络的激活函数必须是处处可微的,所以它就不能采用二值型的阈值函数{0,1}或符号函数{-1,1},BP网络经常使用的是Sigmoid函数、正切函数或线性函数。Sigmoid型激活函数具有非线性放大系统功能,它可以将输入从负无穷大到正无穷大的信号,变换成0到1或-1到1之间的输出,对较大的输入信号,放大系数较小;而对较小的输入信号放大系数较大,所以采用 Sigmoid 型激活函数可以去处理和逼近非线性的输入/输出关系。不过,如果在输出层采用Sigmoid型激活函数,输出则被限制在一个很小的范围内,若采用线性激活函数,则可使网络输出任意值。所以只有当希望对网络的输出进行限制,如限制在0和1之间,那么在输出层应当包含Sigmoid型激活函数。

2.2 BP学习算法规则

BP网络是一种具有三层或三层以上的神经网络,上下层之间实现全连接,而每层神经元之间无连接。当一对学习样本提供给网络后,神经元的激活值从输入层经各中间层向输出层传播,在输出层的各神经元获得网络的输入响应。接下来,按照减少目标输出与实际误差的方向,从输出层经过各中间层逐层修正各连接权值,最后回到输入层,这种算法称为“误差逆传播算法”,即BP算法。

从大的方面来说,学习算法可分为两类:有监督的学习算法和无监督的学习算法。对于有监督的学习算法,学习和应用是分开的两个过程。学习过程是一个外加的对神经网络的连接强度进行系统调整的过程,而应用过程则是一个自治的动力学过程。通俗的说,这种神经网络就是“先学习,再使用”。而无监督的学习算法中的学习过程和应用过程是一个统一的过程。它不需要单独的学习过程,而是在与外界环境的不断交互作用中达到自组织学习,也就是“边干边学,干中学,学中干”。

BP算法属于一种有监督的学习算法。其主要思想是:对n个输入学习样本:,已知其对应的输出样本为:。学习的目的是用网络的实际输出与目标矢量之间的误差来修正其权值,使实际输出与目标矢量尽可能地接近;即:使网络输出层的误差平方和达到最小。它是通过连续不断地在相对于误差函数斜率下降的方向上计算网络权值和偏差的变化而逐渐逼近目标的。

BP 算法由两部分组成:信息的正向传递与误差的反向传播。在正向传递过程中,输入信息从输入层经隐含层逐层计算传向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层没有得到期望的输出,则计算输出层的误差变化值,然后反向传播,通过网络将误差信号沿原来的连接通路反传回来,修改各层神经元的权值直至达到期望目标。

3 BP神经网络在字母识别中的应用

在对字母进行识别之前,首先必须将字母进行预处理,即将待识别的4个字母中的每一个字母都通过方格形式进行数字化处理,其有数据的位置设为1,其他位置设为0。如图2给出了字母A、B和C的数字化过程,然后用一个1×35的向量表示。例如图2中字母A的数字化处理结果所得对应的向量为:
  LetterA=[00100010100101010001111111000110001]

图2 数字化字母

由此可得每个字母由35个元素组成一个向量。由4个标准字母组成的输入向量被定义为一个输入向量矩阵alphabet,即神经网络的样本输入为一个35×4的矩阵。其中alphabet=[letterA,letterB,lettereC, letterD]。

为了对字母进行识别,我们设定目标误差为0.001,从输入层到隐层的激活函数采用了S型正切函数tansig,从隐层到输出层的激活函数采用了S型对数函数logsig,这是因为函数的输出位于区间[0,1]中,正好满足网络输出的要求。

根据BP网络的设计目标,一般的预测问题都可以通过单隐层的BP网络实现。难点是隐层节点个数的选择,隐层节点数对网络的学习和计算特性具有非常重要的影响,是该网络结构成败的关键。若隐层节点数过少,则网络难以处理复杂的问题;但若隐层节点数过多,则将使网络学习时间急剧增加,而且还可能导致网络学习过度,抗干扰能力下降。目前为止,还没有完善的理论来指导隐层节点数的选择,仅能根据Kolmogorov定理,和单隐层的设计经验公式,并考虑本例的实际情况加以确定。

为了使产生的网络对输入向量有一定的容错能力,最好的办法是使用理想的信号和带有噪声的信号对网络进行训练。由于选取的训练样本的限制,这里我们只使用了理想的信号对网络进行训练。网络学习的速率和冲量参数设置为自适应改变,并使用函数trainlm 进行快速训练。

我们模仿Matlab中的齿轮箱故障诊断系统,为每一个字母选取4个训练样本,即共16个样本。得结果如图3所示:

图3 测试结果

分析测试结果我们不难发现,在检测字母B时出现了不理想结果,这是由于训练样本太少导致的,如果我们增加训练样本,将大大增加字母识别的准确率。

训练表现如下图4所示:

图4 训练表现

从图4中可以看出,样本训练中迭代次数达到33次时均方误差不再减小,此时均方误差为0.031252。

4 总结与展望

本文利用BP网络对字母进行识别,结果表明此网络对字母具有一定的辨识能力,是一种对字母识别的有效方法。通过本文的识别结果可以看到,字母A,C,D能够被较好的识别,而字母B的识别效果不佳,如果能够在增加训练样本的基础上,再对带噪声的信号进行训练可能达到更好的识别效果。

参考文献

[1]苏高利, 邓芳萍. 论基于MATLAB语言的BP神经网络的改进算法[J]. 科技通报, 2003, 19(2):130-135. DOI:10.3969/j.issn.1001-7119.2013.02.012.

[2] 戚德虎, 康继昌. BP神经网络的设计[J]. 计算机工程与设计, 2018, (2):48-50.

[3]郭兴伟, 葛元, 王林泉. 基于形状特征的字母手势的分类及识别算法[J]. 计算机工程, 2004, 30(18):130-132. DOI:10.3969/j.issn.1000-3428.2014.18.050.

基于BP神经网络的英文字母识别相关推荐

  1. 基于BP神经网络算法的性别识别

    目录 基于 BP 神经网络算法的性别识别 1 目录 1 1.背景介绍 2 2. OpenCV 的介绍 3 3.安装 OpenCV 4 4. BP 神经网络算法介绍和实践 4 4.1 BP 神经网络结构 ...

  2. ​【交通标志识别】基于BP神经网络实现交通标志识别matlab代码

    1 简介 近年来,交通标志识别在车辆视觉导航系统中是一个热门研究课题.为了安全驾驶和高效运输,交通部门在公路道路上设置了各类重要的交通标志,以提醒司机和行人有关道路交通信息,如指示标志.警告标志.禁止 ...

  3. 并行化实现基于BP神经网络的手写体数字识别

    并行化实现基于BP神经网络的手写体数字识别 手写体数字识别可以堪称是神经网络学习的"Hello World" ,我今天要说的是如何实现BP神经网络算法的并行化,我们仍然是以手写体数 ...

  4. 基于BP神经网络的手写体数字识别matlab仿真实现

    目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础 文字.数字识别是一个典型的模式识别问题,也是模式识别中一个非常重要的应用领域.在文字.数字识别系统中,手写体的文字与识别是一个较难的领域, ...

  5. 【交通标志识别】基于BP神经网络实现交通标志识别系统(含语音报警)附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  6. 基于BP神经网络手写数字和字母识别

    一:系统介绍 这个程序是在MATLAB中编写,基于BP神经网络的文字符号识别系统的具体实现,该系统既可以实现单一手写字符,也可以实现一连串的字符,而且具有较高的准确率.本系统主要有几个模块,图片输入, ...

  7. 【图像识别】基于BP神经网络实现手写体大写字母识别附matlab代码

    1 简介 手写体字符识别是人机交互领域的一个重要内容,本文基于 BP 神经网络实现了任意数量字符模版的多字符手写体字符识别.分为以下几步,第一,首先对目标图像进行识别前预处理.包括灰度图像二值化,图像 ...

  8. 使用MATLAB实现基于BP神经网络训练的手写字母识别程序

    前言 大三的时候利用MATLAB搭建了一个基于BP神经网络框架的手写字母识别程序,其中使用了EMNIST数据集进行训练和测试,可实时对手写输入样本进行识别,并返回两个最可能的结果,过程中可继续添加样本 ...

  9. 基于深度学习的手写数字实现及超简单的英文字母识别

    本文章大致分为5个板块,分别是MNIST数据库,深度学习神经网络的构建,图像预处理,图像识别,简单的英文字母识别展示. 1.MNIST数据库 总所周知,MNIST数据库是专门用于为手写数字识别系统提供 ...

最新文章

  1. Swift - 使用addSubview()方法将StoryBoard中的视图加载进来
  2. mysql 自动化运维工具_MySQL使用工具Inception实现自动化运维
  3. shell中循环安装软件包
  4. Node基础: 回调函数 2
  5. 巨头间未来战争-丰收节交易会·万祥军:农业AI发展概况
  6. C++ 十进制转其他进制
  7. crm 一级菜单排序,二级菜单选中并且展开,非菜单权限的归属,权限粒度控制到按钮级别...
  8. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波8 - 直方图处理 - 直方图均衡化(全局直方图均衡化)
  9. Barebox for Tiny6410(LCD驱动移植)
  10. 基于Spring Security的认证方式_Spring Security 的认证流程_Spring Security OAuth2.0认证授权---springcloud工作笔记123
  11. 迁移学习——数据不够的情况下训练深度学习模型
  12. python 运算符及 字符串格式化输出方式 if条件语句判断 random函数简单应用练习
  13. 获取所有股票历史数据存到Excel
  14. java学习资料整理(开发必备)
  15. NCL绘制色斑图-多要素叠加
  16. 慧荣SM2258XT固态硬盘量产开卡经验sm2259xt雷同
  17. Windows、Linux以及银河麒麟系统的一些操作系统知识
  18. windows设置开机启动程序
  19. 数学分析:集合的基本运算
  20. 川教版计算机三年级下册教案,三年级下册川教版信息技术教案

热门文章

  1. 图灵专访:郭霖的成长之路
  2. MATLAB中图像增强之伪彩色增强
  3. bigdecimal不等于0怎么写_我不知道三打白骨精读后感怎么写才算正能量
  4. linux 韦恩图两个,在线&在R中绘制韦恩图的几种方法 和 一些漂亮的venn图
  5. Docker可视化管理工具shipyard
  6. form表单内子元素组件按钮button事件冲突 - Vue
  7. 惠普服务器lio装系统,惠普Pavilion一体机一键u盘装系统win10教程
  8. 紫光收购武汉新芯后长江存储成立 赵伟国任董事长
  9. 4k纸是几厘米乘几厘米_4k纸有多大?长宽各多少厘米?
  10. 263企业邮箱imap服务器,263企业邮箱实现IMAP邮箱搬家功能