基于bp神经网络的字符识别算法的实现毕业设计论文(编辑修改稿)内容摘要:

更进一步的说, BP 神经网络算法在调整各人工神经元的连接权值时,所依据的是该网络的实际输出与其期望输出的差值,这个差值被反向的一层一层的向后传播,来决定各层神经元的连接权值的修改。 目前, BP 神经网络算法已经成为应用最多而且最主要的一种训练前向人工神经网络的学习算法,同时,这种算法也是前向网络得以广泛应用的基础。 BP 神经网络的网络结构是一个前向的多 层网络,该网络中不仅含有输入层节点和输出层节点,而且还含有一层或多层的隐层节点。 在 BP 神经网络中,同层的各神经元之间互不连接,相邻层的神经元则通过权值连接。 当有信息输入 BP 神经网络时,信息首先由输入层节点传递到第一层的隐层节点,经过特征函数 (人工神经元 )作用之后,再传至下一隐层,这样一层一层传递下去,直到最终传至输出层进行输出。 其间各层的激发函数要求是可微的,一般是选用 S 型函数。 最基本的 BP 神经网络是包括输入层,隐层,输出层这三层节点的前馈网络。 如下图所示。 北京理工大学 2020 届本科生毕业设计(论文) 7 图 24 多层前馈网络结构示意图 BP 神经网络的学习过程 BP 神经网络的学习目的是对网络的连接权值进行调整,使得调整后的网络对任一输入都能够得到所期望的输出。 BP 神经网络的学习过程由正向传播和反向传播组成。 正向传播用于对前向网络进行计算,即对某一输入信息,经过网络计算后求出它的输出结果;反向传播用于逐层传递误差(误差,即实际的输出与期望的输出之间的差值),修改神经元之间的连接权值,使得网络对输入信息进行计算后所得到的输出能够达到期望的误差要求。 BP 神经网络的学习方法是使用一组训练样例对网络的连接权值进行训练,每一个样例中,都 包括输入及期望的输出两部分。 在正向传播过程中,首先将训练样例的输入信息输入到网络中,输入信息从输入层经隐层节点逐层计算处理后,传至输出层。 在计算处理过程中,每一层神经元的状态只影响下一层神经元的状态,如果在输出层得到的结果不是所期望的输出,那么就转为反向传播。 反向传播把误差信号沿原连接路径返回,并按照一定的原则对各层神经元的连接权值进行适当修改,直至第一个隐层,这时再开始进行正向传播,利用刚才的输入信息进行正向网络计算,如果网络的输出达到了误差要求,则学习过程结束,如果网络的输出达不到误差要求,则再进行反向 传播的连接权值调整。 这一过程不断往复,直到网络正向计算的输出结果达到误差要求为止,这时学习就告结束。 网络的训练过程结束之后,在用于求解实际问题时就只须使用正向传播,而不需要再进行反向传播了。 BP 神经网络的学习过程如下: (1).选择一组训练样例,每一个样例由输入信息和期望的输出结果两部分组 成。 一般来说,神经网络的输入信息是一个向量 ( 1X , 2X , … , NiX ),我们称之为输入向量, 神经网络的输出信息也是一个向量 ( 1Y , 2Y , … , NoY ),我们称之为输出向量。 (2).从训练样例集当中取一样例,把输入信息输入到网络中。 (3).分别计算经过神经元处理后的各层节点的输出。 (4).计算网络的实际输出和期望输出的误差。 (5).从输出层反向计算到第一个隐层,并按照能使误差向减小最快的方向发 展的原则,调整网络中各神经元的连接权值。 (6).对训练样例集当中的 每一个样例重复 (3)(5)的步骤,直到整个训练样例 集的误差达到要求时为止。 北京理工大学 2020 届本科生毕业设计(论文) 8 BP 网络学习的整体步骤 第一步 .设计与问题特征相适应的网络结构,包括网络的层数和网络各层的节点数。 并且合理选择神经网络的学习参数,包括学习效率 η 和冲量参数 α,这两个参数一般都设置成小于 1 的正数。 同时,还要确定神经网络的平均误差容限。 一般来说,最基本的 BP 神经网络至少要包含三层:输入层,隐层,输出层。 此处为了简便起见,我们以最基本的 BP 神经网络为例来进行说明。 其中,网络的输入层节点的数目和输出层节点的 数目是根据训练样例来确定的,输入层的节点数目等于每一个训练样例当中,输入向量所包含的分量数目;输出层的节点数目等于每一个训练样例当中,输出向量所包含的分量数目。 隐层节点数目的选择没有确定的指导原则,是带有尝试性的。 在实践中,我们认为,应该按照以下两个原则来选择隐层节点的数目: ,并且能够让神经网络的学习过程的收敛速度最快。 第二步 .对网络各层节点的连接权值和阈值进行初始化,将其初始化成 [1,+1] 区间 内的随机数。 此处,为了表示方便,我们分别用 iN , hN , oN 来表示输入层,隐层和输出层的节点数目。 在 BP 神经网络中,对于隐层的第 i 个节点来说 (i=1,2,…, hN ),它具有 iN 个连接权值 39。 1iW , 39。 2iW ,…, 39。 iiNW ,这 iN 个连接权值分别对应于输入层的 iN 个节点;此外,它还具有自己的阈值 39。 i。 对于输出层的第 j 个节点来说 (j=1,2,…, oN ),它具有 hN 个连接权值1jW , 2jW ,…, hjNW ,这 hN 个连接权值分别对应于隐层的 hN 个节点;此外,它还具有自己的阈值 j。 第三步 .假设训练样例集当中共包含 K 个训练样例。 对训练样例集当中的每个训练样例,进行第四步~第六步处理。 每个训练样例包括输入向量 X=( 1X , 2X , … , NiX )和期望的输出向量 Y=( 1Y , 2Y , … , NoY )。 当对训练样例集中所有的样例都进行了第四步~第六步的处理之后,就完成了学习过程的一次迭代。 第四步,正向传播。 根据当前的训练样例,逐层正向计算网络各层节点的实际输出。 对于隐层的第 i 个节点来说 (i=1,2,…, hN ) ,其输出值为 )( 139。 39。  INj ijijii XWfH 。 其 中, 39。 ijW 是隐层第 i 个节点关于输入层的第 j 个节点的连接权值, jX 是来自于输入层的第 j 个节点的输入值,也就是当前的训练样例的输入向量当中的第 j 个分量, 39。 i 是隐层第 i 个节点的阈值。 对于输出层的第 i 个节点来说 (i=1,2,…, oN ),其输出值为 )( 1 hNj ijijii HWfO 其北京理工大学 2020 届本科生毕业设计(论文) 9 中, ijW 是输出层第 i 个节点关于隐层的第 j 个节点的连接权值, jH 是来自于隐层的第 j 个节点的输出值, i 是输出层第 i 个节点的阈值。 而式中的函数 xexf  1 1)( ,为 S 型激发函数。 第五步,计算当前训练样例的输出误差。 设当前的训练样例的实际输出向量为 ( 1O , 2O , … ,NoO ) ,期望输出向量为 ( 1Y , 2Y , … , NoY ) ,则当前的训练样例的输出误差为  oNi iip OYE 1 2)(21。 第六步,反向传播。 根据当前训练样例所产生的输出值,反向逐层计算网络各节点的偏差信号δ,并根据这个偏差信号来调整网络各节点的连接权值和阈值。 具体的说,是进行如下的计算: 1).计算输出层和隐层的各节点的偏差信号。 对于输出层的第 i 个节点来说 (i=1,2,…, oN ),其偏差信号为 ))(1( iiiii OYOO 。 其中, iO 表示输出层的第 i 个节点的输出值, iY 表示当前的训练样例的期望输出向量当中的第 i 个分量。 对于隐层的第 i 个节点来说(i=1,2,„ , hN ),其偏差信号为 oNj jjiiii WHH 139。 )1( 。 其中 , iH 表示隐 层的第 i 个节点的输出值, jiW 表示输出层的第 j 个节点关于隐层的第 i 个节点的连接权值, j 表示输出层的第 j 个节点的偏差信号。 2).根据输出层和隐层各节点的偏差信号,对输出层和隐层的各节点的连接权值和阈值进行调整。 对于输出层的第 i 个 节 点 来 说 (i=1,2,…, oN ) ,)()1( tWOtW ijiiij   , )1()()1(  tWtWtW ijijij ,)()1( tt iii   , )1()()1(  ttt iii 。 其中 )1( tWij 表示当前输出层第 i 个节点关于隐层第 j 个节点的连接权值, )1( ti 表示当前输出层第 i 个节点的阈值, )(tWij )和 )(ti 分别表示上次调整时计算出的连接权值和阈值, )1(  tWij 和)1(  ti 分别 表示当前连接权值和阈值的变化量, )(tWij 和 )(ti 分别表示上次调整时连接权值和阈值的变化量, iO 和 i 分别是输出层第 i 个节点的输出值和偏差信号,  和  分别 是 学 习 效 率 和 冲 量 参 数。 对 于 隐 层 的 第 i 个 节 点 来 说 (i=1,2,…, hN ), )()1( 39。 39。 39。 tWHtW ijiiij   , 北京理工大学 2020 届本科生毕业设计(论文) 10 )1()()1( 39。 39。 39。  tWtWtW ijijij , )()1( 39。 39。 39。 tt iii   ,)1()()1( 39。 39。 39。  ttt iii 。 其中, )1(39。 tWij 表示当前隐层第 i 个节点关于输入层第 j 个节点的连接权值, )1(39。 ti 表示当前隐层第 i 个节点的阈值, )(39。 tWij 和 )(39。 ti 分别表示上次调整时计算 出的连接权值和阈值, )1(39。  tWij 和 )1(39。  ti 分别表示当前连接权值和阈值的变化量, )(39。 tWij 和 )(39。 ti 分别表示上次调整时连接权值和阈值的变化量, iH 和 39。 i 分别是隐层第 i 个节点的输出值和偏差信号,  和  分别是学习效率和冲量参数。 初始时,所有节点的连接权值的变化量和阈值的变化量都被初始化为 0。 Kp pEKE 11 第七步,计算神经网络的输出误差 Kp pEKE 11。 其中, pE 是训练样例集当中第 P 个训练样例的输出误差。 若 E≤ E (神经网络的平均误差容限 ),或者学习过程达到了指定的迭代次数,则学习过程结束,否则转向第三步,准备进行学习过程的下一次迭代。 北京理工大学 2020 届本科生毕业设计(论文) 11 开 始连 接 权 及 阈 值 初 始 化学 习 模 式 对 提 供 给 网 络计 算 中 间 层 各 单 元 的 输 入 、 输 出计 算 输 出 层 各 单 元 的 输 入 、 输 出计 算 输 出 层 各 单 元 的 校 正 误 差计 算 中 间 层 各 单 元 的 校 正 误 差调 整 中 间 层 至 输 出 层 之 间 的 连 接 权及 输 出 层 各 单 元 的 输 出 阈 值调 整 输 入 层 至 中 间 层 之 间 的 连 接 权及 输 出 层 各 单 元 的 输 出 阈 值更 新 学 习 输 入 模 式更 新 学 习 次 数全 部 模 式 训 练 完。 误 差 ε 或 学 习 次 数 N。 学 习 结 束NNYY 图 25 BP 网络学习过程图 北京理工大学 2020 届本科生毕业设计(论文) 12 第三章 图像的预处理 系统的程序分为图像预的预处理和 BP 神经网络的训练识别两大模块。 本章主要介绍的是图像预处理过程。 在图像的预处理过程中,采用了许多图像处理的技术,最后将每个数字的特征提取出来。 这些技术包括,图像的灰度化、图像的二值化、图像的梯度锐化、去除离散的杂点噪声、图像整体倾斜度的调整、字符分割、图像的归一化处理、图像的紧缩重排等。 图 31 初始读入的 256 色位图 256 色位图灰度化 对于 256 色的位图的调色板内容比较复杂,是的对于图像的处理的许多算法都没有办法展开,因此有必要其进行灰度的处理。 所谓灰度图像就是图像的每一个像素 R, G, B 分量的值是相等的。 彩色图像 R, G, B 的值是不相同的,所有显示出红绿蓝的各种颜色。 灰度图像没有颜色的差异,只有亮度的不同。 灰度值大的像素点比较亮(最大为 255,白色),灰度值小的像素点比较暗(像素值最小为 0,黑色)。 图像的灰度化有各种不同的算法,比较直接的一种就是给像素的 RGB 值各自一个加权系数,然后求和,同时还要对调色板表项进行相应的处理。 根据人眼对红绿蓝三 色的敏感程度,可以使用以下比例式进行转换:  BGRG ra y 经过灰度处理后的 256 色位图如图 32 所示。 图 32 经过灰度处理的文件 灰度图像二值化 进行灰度化的处理后,图像的每个像素均只有一个值,即像素的灰度值。 灰度值的大小决定了像素的明暗程度。 为了更加便利的进行图像处理,还需要做二值化处理。 图像的二值化就是把图像中的像素根据一定的标准划分为两种颜色。 本设计中。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。