基于Hopfield神经网络识别0~9
- 格式:doc
- 大小:80.00 KB
- 文档页数:5
五.反馈(Hopfield)神经⽹络 前馈⽹络⼀般指前馈神经⽹络或前馈型神经⽹络。
它是⼀种最简单的神经⽹络,各神经元分层排列。
每个神经元只与前⼀层的神经元相连。
接收前⼀层的输出,并输出给下⼀层,数据正想流动,输出仅由当前的输⼊和⽹络权值决定,各层间没有反馈。
包括:单层感知器,线性神经⽹络,BP神经⽹络、RBF神经⽹络等。
递归神经⽹络(RNN)是两种⼈⼯神经⽹络的总称。
⼀种是时间递归神经⽹络(recurrent neural network),⼜名循环神经⽹络,包括RNN、LSTM、GRU等;另⼀种是结构递归神经⽹络(recursive neural network)。
反馈⽹络(Recurrent Network),⼜称⾃联想记忆⽹络,输出不仅与当前输⼊和⽹络权值有关,还和⽹络之前输⼊有关。
其⽬的是为了设计⼀个⽹络,储存⼀组平衡点,使得当给⽹络⼀组初始值时,⽹络通过⾃⾏运⾏⽽最终收敛到这个设计的平衡点上。
包括Hopfield,Elman,CG,BSB,CHNN、DHNN等。
反馈⽹络具有很强的联想记忆和优化计算能⼒,最重要研究是反馈⽹络的稳定性(即其吸引⼦)离散Hopfield神经⽹络Hopfield神经⽹络是⼀种单层反馈,循环的从输⼊到输出有反馈的联想记忆⽹络。
离散型为DHNN(Discrete Hopfield Neural Network)和连续型CHNN(Continues Hopfield Neural Network)。
Hopfield最早提出的⽹络是⼆值神经⽹络,各神经元的激励函数为阶跃函数或双极值函数,神经元的输⼊、输出只取{0,1}或者{ -1,1},所以也称为离散型Hopfield神经⽹络DHNN(Discrete Hopfiled Neural Network)。
在DHNN中,所采⽤的神经元是⼆值神经元;因此,所输出的离散值1和0或者1和-1分别表⽰神经元处于激活状态和抑制状态。
Hopfield 神经网络前馈(前向)网络和反馈网络是当前人工神经网络研究中最基本的两种网络模型。
1982年到1986年,美国物理学家Hopfield 陆续发表文章报导了对反馈神经网络理论与应用的研究成果,引起了人们广泛的兴趣,并且将这种单层反馈网络称为Hopfield 网络。
在单层全反馈网络中(基本Hopfield 网络中),节点之间相互连接,每个节点接收来自其它节点的输入,同时又输出给其它节点,每个神经元没有到自身的连接。
由于引入反馈,所以它是一个非线性动力学系统。
其结构如下所示:n1n32y y(a ) (b )图1 Hopfield 网络基本结构前馈网络大多表达的是输出与输入间的映射关系,一般不考虑输出与输入间在时间上的滞后效应;反馈网络需要考虑输出与输入间在时间上的延时,需要利用动态方程(差分方程或微分方程)描述神经元和系统的数学模型。
前馈网络的学习(训练)主要采用误差修正法,计算时间较长,收敛速度较慢;反馈网络(如Hopfield 网络)的学习主要采用Hebb 规则,收敛速度较快。
Hopfield 网络在应用上除可作为联想记忆与分类外,还可用于优化计算。
可以认为,Hopfield 网络的联想记忆和优化计算这两种功能是对偶的:当用于联想记忆时,通过样本模式的输入给定网络的稳定状态,经学习求得联接权值W ;当用于优化计算时,以目标函数和约束条件建立系统的能量函数来确定联接权值,当网络演变至稳定状态时即可得出优化计算问题的解。
Hopfield 网络神经元模型可以是离散变量,也可以连续取值。
一.离散Hopfield 网络 1.网络结构及性能描述:离散Hopfield 网络模型如图1所示。
设共有N 个神经元,ij 表示从神经元j 到神经元i 的联接权,j s 表示神经元j 的状态(取+1或-1),j v 表示神经元j 的净输入,有:⎪⎩⎪⎨⎧=+-⋅=∑=)](sgn[)1()()(1t v t s t s t v j j jNi i ji j θω,即:⎩⎨⎧<->+=+0)(,10)(,1)1(t v t v t s j j j (1) 或:⎪⎩⎪⎨⎧<-=>+=+0)(,10)(),(0)(,1)1(t v t v t s t v t s j j j j j当0)(=t v j 时可认为神经元的状态保持不变。
Hopfield神经⽹络综述题⽬: Hopfield神经⽹络综述⼀、概述:1.什么是⼈⼯神经⽹络(Artificial Neural Network,ANN)⼈⼯神经⽹络是⼀个并⾏和分布式的信息处理⽹络结构,该⽹络结构⼀般由许多个神经元组成,每个神经元有⼀个单⼀的输出,它可以连接到很多其他的神经元,其输⼊有多个连接通路,每个连接通路对应⼀个连接权系数。
⼈⼯神经⽹络系统是以⼯程技术⼿段来模拟⼈脑神经元(包括细胞体,树突,轴突)⽹络的结构与特征的系统。
利⽤⼈⼯神经元可以构成各种不同拓扑结构的神经⽹络,它是⽣物神经⽹络的⼀种模拟和近似。
主要从两个⽅⾯进⾏模拟:⼀是结构和实现机理;⼆是从功能上加以模拟。
根据神经⽹络的主要连接型式⽽⾔,⽬前已有数⼗种不同的神经⽹络模型,其中前馈型⽹络和反馈型⽹络是两种典型的结构模型。
1)反馈神经⽹络(Recurrent Network)反馈神经⽹络,⼜称⾃联想记忆⽹络,其⽬的是为了设计⼀个⽹络,储存⼀组平衡点,使得当给⽹络⼀组初始值时,⽹络通过⾃⾏运⾏⽽最终收敛到这个设计的平衡点上。
反馈神经⽹络是⼀种将输出经过⼀步时移再接⼊到输⼊层的神经⽹络系统。
反馈⽹络能够表现出⾮线性动⼒学系统的动态特性。
它所具有的主要特性为以下两点:(1).⽹络系统具有若⼲个稳定状态。
当⽹络从某⼀初始状态开始运动,⽹络系统总可以收敛到某⼀个稳定的平衡状态;(2).系统稳定的平衡状态可以通过设计⽹络的权值⽽被存储到⽹络中。
反馈⽹络是⼀种动态⽹络,它需要⼯作⼀段时间才能达到稳定。
该⽹络主要⽤于联想记忆和优化计算。
在这种⽹络中,每个神经元同时将⾃⾝的输出信号作为输⼊信号反馈给其他神经元,它需要⼯作⼀段时间才能达到稳定。
2.Hopfield神经⽹络Hopfield⽹络是神经⽹络发展历史上的⼀个重要的⾥程碑。
由美国加州理⼯学院物理学家J.J.Hopfield 教授于1982年提出,是⼀种单层反馈神经⽹络。
Hopfield神经⽹络是反馈⽹络中最简单且应⽤⼴泛的模型,它具有联想记忆的功能。
基于Hopfield 神经网络的数字识别原理简介:Hopfield 网络是有反馈的全互联型网络,其形式如图2所示,N 为神经元的数目,V 表示神经元的输入向量,U 表示输出向量,W 为神经元之间的权值。
离散Hopfield 网络中每个神经元的输出只能取“1”或“-1”两种状态,各神经元的状态可用向量V 表示:V={v 1,v 2 ,…v n }。
网络中各神经元彼此互相连接,即每个神经元将自己的输出通过连接权传给其它神经元,同时每个神经元接受其它神经元传来的信息。
图2 有反馈的全互联型网络Hopfield 网络的稳定性是由能量函数来描述的,即对网络的每个状态发生变化时,能量函数E 随网络状态变化而严格单调递减,这样Hopfield 模型的稳定与能量函数E 在状态空间的局部极小点将一一对应。
设有N 个神经元构成的Hopfield 网络,其中第i 个和第j 个神经元节点状态分别记为vi 和vj ;w 是神经元i 和j 的连接权,θ为神经元i 的阈值。
节点的能量可表示为:Ei=-(i i n i j ij v w θ-∑≠)v则整个Hopfield 网络整体能量函数定义为: E=-i ni i j i n i j ij ni v v v w ∑∑∑=≠=+1121θ 设有N 个神经元构成的Hopfield 神经网络,第i 个神经元在t 时刻所接收的来自其它N-1个神经元输入信号的总和记为ui (t ),t+1时刻第i 个神经元的输出值vi (t+1)是符号函数作用于ui (t )的某个阈值 时,该神经元将触发成兴奋状态。
据此可知Hopfield 网络的运行规则为:(1) 在网络中随机地选择一个神经元;(2) 求所选神经元i (1≤i ≤N )的输入总和u i (t)= i i n i j ij vw θ-∑≠;(3) 根据u i (t)的值大小,更新神经元的状态if (u i (t))≥0then v i (t+1)=1else v i (t+1)=0;(4) 神经元i 以外的神经元j 的状态不变化;(5) 转向(1),直到网络达到稳定。
d o i :10.3963/j .i s s n .1674-6066.2022.04.012基于H o pf i e l d 神经网络的有限元模型修正杨昕怡(武汉理工大学土木工程与建筑学院,武汉430070)摘 要: 工程结构的有限元模型对结构的健康监测与可靠性评估有重大意义,但实际工程中测量数据和模型都与结构初始有限元模型有一定的差异,因此有必要对实际结构的有限元模型进行修正㊂首先建立有限元模型修正方程来表达结构响应与待修正参数之间的关系,再通过H o p f i e l d 递归神经网络技术,对模型修正方程进行求解㊂通过一个数值梁模型对提出的方法进行了验证,结果显示H o p f i e l d 神经网络在求解线性模型修正仿真中有较好的效果㊂关键词: H o pf i e l d 神经网络; 模型修正; 线性方程组; 有限元模型F i n i t eE l e m e n tM o d e lM o d i f i c a t i o nB a s e do nH o p f i e l d N e u r a lN e t w o r kY A N G X i n -yi (S c h o o l o fC i v i l E n g i n e e r i n g a n dA r c h i t e c t u r e ,W u h a nU n i v e r s i t y o fT e c h n o l o g y ,W u h a n430000,C h i n a )A b s t r a c t : T h e f i n i t e e l e m e n tm o d e l o f e n g i n e e r i n g s t r u c t u r ew a so f g r e a t s i g n i f i c a n c e t o t h eh e a l t h m o n i t o r i n g a n d r e l i a b i l i t y e v a l u a t i o n o f t h e s t r u c t u r e ,b u t t h em e a s u r e d d a t a a n d t h em o d e l i n t h e a c t u a l e n g i n e e r i n g w e r e d i f f e r e n t f r o m t h e i n i t i a l f i n i t e e l e m e n tm o d e l o f t h es t r u c t u r e ,s o i tw a sn e c e s s a r y t o m o d i f y t h e f i n i t ee l e m e n tm o d e l o f t h ea c t u a l s t r u c t u r e .F i r s t l y ,t h e f i n i t ee l e m e n tm o d e lm o d i f i c a t i o ne q u a t i o n w a se s t a b l i s h e dt oe x p r e s st h er e l a t i o n s h i p b e t w e e n s t r u c t u r a l r e s p o n s e a n d p a r a m e t e r s t o b em o d i f i e d ,a n d t h e n t h eH o p f i e l d r e c u r s i v e n e u r a l n e t w o r k t e c h n o l o g y wa s u s e d t os o l v e t h em o d e lm o d i f i c a t i o n e q u a t i o n .An u m e r i c a lb e a m m o d e lw a s u s e d t o v e r i f y t h e p r o p o s e dm e t h o d ,a n d t h e r e -s u l t s s h o w e d t h a tH o p f i e l dn e u r a l n e t w o r kw a s e f f e c t i v e i n s o l v i n g l i n e a rm o d e lm o d i f i c a t i o n s i m u l a t i o n .K e y wo r d s : H o p f i e l dn e u r a l n e t w o r k ; m o d e lm o d i f i c a t i o n ; l i n e a r e q u a t i o n s ; f i n i t e e l e m e n tm o d e l 收稿日期:2022-04-08.基金项目:武汉理工大学土木工程与建筑学院国家级大学生创新创业训练计划资助(202110497067).作者简介:杨昕怡(2000-),本科生.E -m a i l :y a n g x i n y i @w h u t .e d u .c n 自有限单元元分析法问世至今,一直备受工程界学者的广泛关注㊂利用有限元模型来模拟研究结构响应对结构的设计㊁运营㊁维护㊁监测等活动具有重大作用㊂有限元模型修正主要是用结构实测的响应来反演结构力学参数,如弹性模型㊁质量㊁密度㊁尺寸参数等㊂常用的结构实测响应数据主要有静力数据和动力数据㊂由于结构动力数据种类丰富㊁测量方便,因此基于动力数据的有限元模型修正方法较多㊂国内外很多工程领域的研究人员都对基于动力数据的模型修正方法开展了研究,例如,方圣恩等[1]提出了一种模型修正措施,将建立的响应面模型与应用蒙特卡罗仿真技术得到的结构响应样本相联合,用于结构有限元模型修正㊂姚春柱等[2]采用了贝叶斯模型修正方法,将使用吉布斯抽样的蒙特卡罗马尔科夫链抽样方法得到的数据代入随机模型,应用贝叶斯理论,得到关于模型参数的后验分布动态统计特征,达到对参数进行识别的目标㊂陈辉等[3]结合结构随机响应实测数据列出了能准确表达待修正参数与结构反应之间联系的模型修正方程式,并在求解该方程时运用混合摄动-伽辽金方法,从而获取修正参数的概率统计特征㊂在国际上,美国的B e c k JL 教授[4]在对线弹性土木结构的随机模型修正研究中应用了贝叶斯方法,通过判断所抽取样本对应的响应与测量结果是否吻合来确定修正参数㊂R u i [5]通过响应面法㊁改进的蒙特卡洛统计模拟法和移动最小二乘法求解了模型修正方程㊂模型修正是力学反问题,求解模型修正方程,会涉及大型矩阵反复求逆,或存在多解或者病态问题,导致64建材世界 2022年 第43卷 第4期计算精度不高㊂并且根据目前国内外研究人员的研究成果可以看出学者们对模型修正的研究还在初级阶段,还需克服许多困难㊂因此,在工程界的迫切需求下,提出更为实用和高效的模型修正方法具有必要性㊂使用H o p f i e l d神经网络来求解模型修正方程能有效解决上述问题㊂首先建立基于动力模态数据的模型修正方程,并对H o p f i e l d神经网络解决实际问题的理论解与模型推导进行阐述,然后通过一个两跨连续梁对该方法进行了验证㊂结果表明,该方法能非常准确地求解模型修正方程,使修正结果与预设的工况一致,修正后的结构参数能够复现结构动力响应,具有实际工程意义㊂1理论1.1模型修正方程的建立考虑具有N个自由度的无阻尼结构,初始模型满足以下特征值方程K aφi=λi M aφi(i=1, ,n c)(1)式中,K a和M a分别是初始结构模型的整体刚度矩阵和质量矩阵;λi和φi分别是初始模型的第i阶特征值和特征向量;n c为初始模型的计算模态个数㊂类似地,实际结构的特征方程可以表示为K dφ-j=λ-j M dφ-j(j=1, ,n m)(2)式中,K d和M d分别是实际结构模型的整体刚度矩阵和质量矩阵;λ-j和φ-j分别是实际模型的第j阶特征值和特征向量;n m为实际模型的计算模态的个数㊂初始结构跟实际结构的质量矩阵与刚度矩阵存在以下关系M d=M a+ðN e n=1βn M n(3)K d=K a+ðN e n=1αn K n(4)式中,N e为结构的单元个数;K n和M n分别是结构第n个单元的NˑN单元组装矩阵;αn和βn分别为结构第n个单元的质量和刚度的修正系数,表示为实际结构的单元刚度和质量相对于初始矩阵的变化率㊂将式(1)的每个方程左乘φ-T j,其中j=1, ,n m㊂同样,将式(2)的每个方程左乘φT i,其中i=1, ,n c㊂可以得到φ-T j K aφi=λiφ-T j M aφi(5)φT i K dφ-j=λ-T jφi M dφ-j(6)合并式(5)和式(6)可以得到φT i K dφ-jφT i K aφ-j =λ-jφT i M dφ-jλiφT i M aφ-j(7)将式(3)㊁式(4)代入式(7)可以得到1+ðN e n=1αnφT i K nφ-jφT i K aφ-j =λ-jλi1+ðN e n=1βnφT i M nφ-jφT i M aφ-æèçöø÷j(8)对式(8)进行因式变换可以得到ðN e n=1αnφT i K nφ-jφT i K aφ-j -ðN e n=1βnφT i M nφ-jφT i M aφ-j=λ-jλi-1(9)式(9)可以简写为C(0)E(0[])㊃γ(0)=f(0)(10)式中,C=Φ()i T K nΦj,E=ðN e n=1-λ-jΦ()i T M nΦj,f(0)=λ-jΦ()i T MΦj-Φ()i T KΦj,γ=α[]βT㊂1.2H o p f i e l d神经网络H o p f i e l d神经网络作为一种递归神经网络,具有多反馈回路㊂递归神经网络通过结构递归建立,根据不同形式的递归性应用,产生了许多具有不同结构的递归网络㊂在各种神经网络的学习算法中,梯度下降法应用十分广泛㊂采用H o p f i e l d神经网络来求解现行矩阵方程,根据得到的解与理论解之间的对比,能判断该74建材世界2022年第43卷第4期神经网络模型求解线性矩阵方程的有效性㊂数学矩阵论中求C (0)E (0[])㊃γ(0)=f (0)的方法如下x =C ()0 E ()[]0/f ()0=C ()0 E ()[]0-()1㊃f ()0 下面依据负梯度设计方法推导该神经网络模型:1)构造一个基于矩阵范数的标量误差函数ε(t )= C ()0E ()[]0 22/2=C ()0E ()[](0㊃γ()0-f ())0T C ()0E ()[]0㊃γ()0-f ()()0/2 2)为了使上述误差减小,可采用经典的负梯度方法,因此我们可以得到如下误差函数负梯度方向作为下降方向-∂ε∂χ=-C ()0E ()[]0T C ()0E ()[](0㊃γ()0-f ())0 3)线性的基于负梯度的神经网络模型如下γ㊃()0()t =-γC ()0E ()[]0T C ()0E ()[](0㊃γ()0-f ())0其中参数γ>0决定网络的收敛速度,如条件允许,越大越好㊂2 数值算例下面对一个双跨连续梁进行模型修正研究,跨长和梁截面如图1所示㊂模拟连续梁的有限元模型由12个相同的欧拉-伯努利梁单元组成㊂单元中的每一个节点包括两个自由度㊁一个垂直位移和一个扭转角度㊂假设初始梁模型弹性模量为2.8ˑl 010P a ,密度为2.5ˑ103k g /m 3㊂假设第②㊁⑤㊁⑩三个单元的真实质量分别下降了40%㊁30%和20%,同时第③㊁⑤㊁⑨㊁⑩㊁单元的弹性模量分别减少30%㊁40%㊁35%㊁30%和20%,其他单元的质量与弹性模量保持初始值不变㊂将12个单元的弹性模量和质量认定为修正参数㊂修正后的弹性模量参数从左到右编为1~12号,相应的质量参数为13~24㊂换句话说,修正后的参数总数为24㊂计算得到该两跨连续梁24个参数修正后的神经网络预测值与实际真值结果对比如图2所示㊂由图2可以看出,修正后的H o p f i e l d 识别值与实际真值基本吻合,由此可证明H o p f i e l d 神经网络修正模型的有效性㊂(下转第65页)84建材世界 2022年 第43卷 第4期建材世界2022年第43卷第4期[10]施有志,柴建峰,赵花丽,等.地铁深基坑开挖对邻近建筑物影响分析[J].防灾减灾工程学报,2018,38(6):927-935.[11]郑翔,汤继新,成怡冲,等.软土地区地铁车站深基坑施工全过程对邻近建筑物影响实测分析[J].建筑结构,2021,51(10):128-134.[12]A n JB,S u nCF.S a f e t y A s s e s s m e n t o f t h e I m p a c t s o f F o u n d a t i o nP i t C o n s t r u c t i o n i nM e t r oS t a t i o no nN e a r b y B u i l d i n g s[J].I n t e r n a t i o n a l J o u r n a l o f S a f e t y a n dS e c u r i t y E n g i n e e r i n g,2020,10(3):423-429.[13]王利军,邱俊筠,何忠明,等.超大深基坑开挖对邻近地铁隧道变形影响[J].长安大学学报(自然科学版),2020,40(6):77-85.[14]尚国文,李飒,翟超,等.基坑开挖与邻近地铁结构变形相关性的实测分析[J].防灾减灾工程学报,2020,40(1):107-115.[15]丁智,张霄,金杰克,等.基坑全过程开挖及邻近地铁隧道变形实测分析[J].岩土力学,2019,40(S1):415-423.[16]许四法,周奇辉,郑文豪,等.基坑施工对邻近运营隧道变形影响全过程实测分析[J].岩土工程学报,2021,43(5):804-812.[17]左自波,黄玉林,吴小建,等.基坑施工对下方双线地铁隧道影响的数值模拟[J].北京交通大学学报,2019,43(3):50-56.[18]章润红,刘汉龙,仉文岗.深基坑支护开挖对临近地铁隧道结构的影响分析研究[J].防灾减灾工程学报,2018,38(5):857-866.[19]S u nH S,W a n g,L W,C h e nSW,e t a l.AP r e c i s e P r e d i c t i o n o f T u n n e l D e f o r m a t i o nC a u s e d b y C i r c u l a r F o u n d a t i o nP i t E x-c a v a t i o n[J].A p p l i e dS c i e n c e s,2019,9(11),2275.[20]徐宏增,石磊,王振平,等.深基坑开挖对邻近大直径管线影响的优化分析[J].科学技术与工程,2021,21(2):714-719.[21]贺雷,张亚楠,曹明洋,等.软土区基坑开挖对邻近电缆隧道的影响研究[J].建筑结构,2020,50(S1):1032-1037.[22]施有志,葛修润,李秀芳,等.地铁深基坑施工对周边管线影响数值分析[J].中山大学学报(自然科学版),2017,56(6):83-93.[23]L iWJ,H a nX M,C h e nT,e t a l.R e s e a r c ho n I n f l u n e n c eL a wo f E x i s t i n g P i p e-j a c k i n g T u n n e lA f f e c t e db y A d j a c e n t F o u n-d a t i o nP i tE x c a v a t i o ni nS o f tC l a y S t r a t u m[J].I O P C o n fe r e n c eS e r i e s M a t e r i a l sS c i e n c ea n d E n g i n e e r i n g,2019,688:022041.(上接第48页)3结论该文提出了一种基于H o p f i e l d人工神经网络和模态数据求解有限元模型修正参数的方法㊂基于结构实测响应,通过构建修正方程与H o p f i e l d神经网络对一两跨连续梁质量与弹性模量参数进行修正,修正后得到的有限元模型与结构实际特征基本统一㊂因此可以认为将H o p f i e l d神经网络引入模型参数修正中可以避免大型矩阵求逆和正则化,能更准确的修正结构参数㊂参考文献[1]方圣恩,林友勤,夏樟华.考虑结构参数不确定性的随机模型修正方法[J].振动.测试与诊断,2014,34(5):832-837,973.[2]姚春柱,王红岩,芮强,等.车辆点焊结构有限元模型参数不确定性修正方法[J].机械科学与技术,2014,33(10):1545-1550.[3]陈辉,张衡,李烨君,等.测量模态不确定的梁式结构随机有限元模型修正[J].振动工程学报,2019,32(4):653-659.[4] B e c k JL,K a t a f y g i o t i sLS.U p d a t i n g M o d e l s a n dT h e i rU n c e r t a i n t i e s-I:B a y e s i a nS t a t i s t i c a l F r a m e w o r k[J].J o u r n a l o f E n-g i n e e r i n g M e c h a n i c s,1988,124(4):455-461.[5] R u iQ,O u y a n g H,W a n g H Y.A nE f f i c i e n tS t a t i s t i c a l l y E q u i v a l e n tR e d u c e d M e t h o do nS t o c h a s t i c M o d e lU p d a t i n g[J].A p p l i e d M a t h e m a t i c a lM o d e l l i n g,2013,37(8):6079-6096.56。
3.编程实现BP网络,并利用该程序实现数字(0-9)图片的识别。
解:采用BP进行数字(0-9)图片的识别,并使用MATLAB编程实现。
BP算法原理:输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。
1)算法步骤:1.利用BP神经网络对阿拉伯数字进行识别前,应先对阿拉伯数字位图样本进行预处理,即先将256色位图转为灰度图,然后二值化,最后进行归一化处理,然后进行特征向量提取。
大小为20×20像素。
图像是二值图。
下一步建立神经网络,如图1所示。
2.建立BP网络,训练BP网络。
本设计采用40个训练样本训练BP网络。
训练流程如下:3. 训练完BP网络,就可以用数据进行识别。
识别流程图如下。
图3 数字识别流程2)matlab 代码%预处理clear all;for pcolum=0:39p1=ones(30,30); %建立全为1的样本矩阵m=strcat(‘C:\Users\91082\Desktop\yangben\num\’,int2str(pcolum ),’.jpg’);I=imread(m); %循环读入0-39个样本数字文件I1=im2bw(I,0.3); %对输入图像进行二值化处理采用全局阈值0.3[m,n]=find(I1==0);rowmin=min(m);rowmax=max(m);colummin=min(n);colummax=max(n);I2=I1(rowmin:rowmax,colummin:colummax); %截取是入图像中的数字部分rate=30/max(size(I2));I3=imresize(I2,rate); %对输入文件变尺寸处理[I,j]=size(I3);row=round((30-i)/2);colum=round((30-j)/2);p1(row+1:row+I,colum+1:colum+j)=I3; %建立起30*30的矩阵p1=-1*p1+ones(30,30); %反色处理for hh=1:30p((hh-1)*30+1:(hh-1)*30+30,pcolum+1)=p1(hh,1:30);end %将处理的源样本输入供神经网络训练的样本% pcolum是样本数循环变量switch pcolumcase {0,10,20,30}t(pcolum+1)=0; %数字0case{1,11,21,31}t(pcolum+1)=1 ; %数字1case{2,12,22,32}t(pcolum+1)=2 ; %数字2case{3,13,23,33}t(pcolum+1)=3; %数字3case{4,14,24,34}t(pcolum+1)=4; %数字4case{5,15,25,35}t(pcolum+1)=5 ; %数字5case{6,16,26,36}t(pcolum+1)=6 ; %数字6case{7,17,27,37}t(pcolum+1)=7 ; %数字7case{8,18,28,38}t(pcolum+1)=8 ; %数字8case{9,19,29,39}t(pcolum+1)=9 ; %数字9end %建立与训练样本对应的输出值t endsave 51ET p t;%训练网络代码clear all;load 51ET p t; %加载样本pr(1:900,1)=0;pr(1:900,2)=1;net=newff(pr,[25 1],{'logsig' 'purelin'},'traingdx','learngdm');%创建BP网络net.trainParam.epochs=3000; %设置训练步数net.trainParam.goal=0.005; %设置训练目标net.trainParam.show=10; %设置训练显示格数net.trainParam.lr=0.05; %设置训练学习率net=train(net,p,t); %训练BP网络save ET51net net;%识别0-9过程clear allfor m=0:9c=m;%m=input('请输入测试样本(C:\Users\91082\Desktop\yangben\try\):');I=strcat('C:\Users\91082\Desktop\yangben\try\',int2str(m),'.jpg');U=imread(I);imtool(U); %通过键盘输入添加试验样本load ET51net net; %加载以训练好的BP神经网络p=zeros(900,1); %建立输入样本的空矩阵p1=ones(30,30); %建立临时存放样本的30*30的矩阵I1=im2bw(U,0.3); %对输入图像进行二值化处理采用全局阈值0.3[m,n]=find(I1==0);rowmin=min(m);rowmax=max(m);colummin=min(n);colummax=max(n);I2=I1(rowmin:rowmax,colummin:colummax); %截取是入图像中的数字部分rate=30/max(size(I2));I3=imresize(I2,rate); %对输入文件变尺寸处理[i,j]=size(I3);row=round((30-i)/2);colum=round((30-j)/2);p1(row+1:row+i,colum+1:colum+j)=I3; %建立起30*30的矩阵p1=-1*p1+ones(30,30); %反色处理for hh=1:30p((hh-1)*30+1:(hh-1)*30+30,1)=p1(hh,1:30);end %将处理的源样本输入供神经网络训练的样本x=sim(net,p); %测试网络x=round(x); %输出网络识别结果fprintf('第%d 图片是数字:%d\n',c,x)end3)运行结果及分析训练网络结果如下图:由图可知,训练70次就达到训练目标。
离散型hopfield神经网络的数字识别作者:张林强来源:《科学导报·学术》2019年第18期摘要:近年,人们越来越对人工智能产生兴趣,越来越多的科研人员尝试着将hopfield神经网络在很多方面运用,这是一门能够解决很多传统方法不能够解决的问题,如水的质量评价,发电机运行状态,项目风险预测等。
不同领域的人们,正在利用离散型hopfield神经网络具有的联想记忆的功能来发掘新的思想和新的方法。
人类的进化归根是很多智能科技的进化。
而智能科学反过来对人类的发展起到很大的作用。
我们学习智能的数字识别和智能的控制,目的就是帮助人类的进步而服务。
因此,对智能科学的期待和发展以及应用,是我们人类发展和科学进步的必然结果。
关键词:离散型hopfield;数字识别;联想记忆;工具箱函数1.案例背景1.1项目需求分析在日常生活中,经常会遇到带噪声影响的字符辨别问题,如交通系统中汽车的车牌模糊不清,由于汽车在行驶过程中,要经受自然环境的风吹日晒,造成字体不够清晰,不能够辨别清楚。
作为字符识别的一部分,数字识别在银行,交通及企业票据管理方面有着很方便的应用。
目前,人工神经网络已经在我国的科学研究,企业生产和生活中有很大的影响。
人工神经网络作为生物进化论的一个成果,其延伸到各个工程领域,并吸引不同领域的专家在这方面的研究和开发,目前有很多种方法用于字符识别,主要分为神经网络的识别,概率统计识别和模糊识别等。
传统的数字识别方法在有干扰的情况下不能够很好的对数字识别,而离散型hopfield神经网络具有联系记忆的功能,利用这一功能对数字进行识别可以取得令人满意的效果,并且计算的收敛速度很快。
1.2离散hopfield神经网络概述Hopfield网络是神经网络研究上的一个重要的阶段。
其曾经为人工神经网络开辟了新的天地,Hopfield神经网络属于反馈神经网络类型。
与前向型神经网络不同,前向神经网络不考虑输出与输入之间在时间上的滞后影响,其输出与输入之间仅仅是一种映射关系。
基于Hopfield 神经网络的数字识别 原理简介:
Hopfield 网络是有反馈的全互联型网络,其形式如图2所示,N 为神经元的数目,V 表示神经元的输入向量,U 表示输出向量,W 为神经元之间的权值。
离散Hopfield 网络中每个神经元的输出只能取“1”或“-1”两种状态,各神经元的状态可用向量V 表示:V={v 1,v 2 ,…v n }。
网络中各神经元彼此互相连接,即每个神经元将自己的输出通过连接权传给其它神经元,同时每个神经元接受其它神经元传来的信息。
图2 有反馈的全互联型网络
Hopfield 网络的稳定性是由能量函数来描述的,即对网络的每个状态发生变化时,能量函数E 随网络状态变化而严格单调递减,这样Hopfield 模型的稳定与能量函数E 在状态空间的局部极小点将一一对应。
设有N 个神经元构成的Hopfield 网络,其中第i 个和第j 个神经元节点状态分别记为vi 和vj ;w 是神经元i 和j 的连接权,θ为神经元i 的阈值。
节点的能量可表示为:
Ei=-(i i n i
j ij v w θ-∑≠)v 则整个Hopfield 网络整体能量函数定义为: E=-i n
i i j i n i j ij n
i v v v w ∑∑∑=≠=+1121θ 设有N 个神经元构成的Hopfield 神经网络,第i 个神经元在t 时刻所接收的来自其它N-1个神经元输入信号的总和记为ui (t ),t+1时刻第i 个神经元的输出值vi (t+1)是符号函数作用于ui (t )的某个阈值 时,该神经元将触发成兴奋状态。
据此可知Hopfield 网络的运行规则为:
(1) 在网络中随机地选择一个神经元;
(2) 求所选神经元i (1≤i ≤N )的输入总和
u i (t)= i i n i j ij v
w θ-∑≠;
(3) 根据u i (t)的值大小,更新神经元的状态
if (u i (t))≥0
then v i (t+1)=1
else v i (t+1)=0;
(4) 神经元i 以外的神经元j 的状态不变化;
(5) 转向(1),直到网络达到稳定。
Hopfield 网络作为记忆的学习时,稳定状态是给定的,通过网络的学习求适合的权矩阵W (对称阵),学习完成后以计算的方式进行联想。
对给定的M 个模式,Hopfield 网络可按Hebb 规则来进行学习。
⎪⎩⎪⎨⎧≠==∑=M
k j i ij j i k v k v j i W 1
),()(,0 按上述规则求出权矩阵后,可认为网络已经将这M 个模式存入到网络的连接权中。
问题描述:
设计一个Hopfield 网络,使其具有联想记忆功能,能正确识别阿拉伯数字,当数字被噪声污染后仍可以正确地识别。
程序流程:
先设计好标准的数字点阵(本文采用10*10矩阵表示),根据这些标准的数字点阵创建并训练网络,使网络达到稳定状态,用带噪声的数字测试训练的网络。
噪声有两种形式:一种是固定噪声;另一种是随机噪声,本文对两种噪声都做讨论。
程序:
%数字0-9的标准点阵
zero=load('zero.txt');
one=load('one.txt');
two=load('two.txt');
three=load('three.txt');
four=load('four.txt');
five=load('five.txt');
six=load('six.txt');
seven=load('seven.txt');
eight=load('eight.txt');
nine=load('nine.txt');
%训练样本(目标向量)
T=[zero(:),one(:),two(:),three(:),four(:),five(:),six(:),seven(:),eight(:),nine(:)];
%输出数字0-9
figure
for ii=0:9,
subplot(2,5,ii+1);
imshow(reshape(T(:,ii+1),10,10));
title([' 当前数字:' num2str(ii)])
end
%数字带噪声数字点阵(固定法)
noise_matrix=load('noise_matrix.txt');
%数字带噪声数字点阵(随机法)
%noise_matrix=zero;
%for i=1:100
% a=rand;
% if a<0.1
% noise_matrix(i)=-zero(i);
%end
%end
figure
subplot(2,3,1)
imshow(noise_matrix);
title('带噪声的样本');
%关于hopfield网络的创建和仿真,参数形式参见Matlab的帮助
net=newhop(T);%创建hopfield网络,根据标准样本开始训练学习
No22=sim(net,{1,5},{},{noise_matrix(:)});%仿真5次,只有一个样本noise_matrix for ii=1:5
subplot(2,3,1+ii)
imshow(reshape(No22{ii},10,10));
title(['第' num2str(ii) '仿真结果'])
end
实验结果:
标准数字点阵
当前数字:0 当前数字:1 当前数字:2 当前数字:3 当前数字:4
当前数字:5 当前数字:6 当前数字:7 当前数字:8 当前数字:9
随机噪声的数字识别:(以带随机噪声的0为例)
带噪声的样本第1仿真结果第2仿真结果
第3仿真结果第4仿真结果第5仿真结果
固定噪声的数字识别:(以被污染的2为例)
带噪声的样本第1仿真结果第2仿真结果
第3仿真结果第4仿真结果第5仿真结果
结果分析:
本文对被污染的数字0-9都进行了实验,无论是带随机噪声还是固定噪声,训练过的Hopfield网络在仿真3次后都能被识别出来。
由于用来训练网络的各个样本并不是严格地正交,不符合Hopfield网络联想记忆的条件,当数字在噪声的污染下失真很严重时,Hopfield 网络识别会出现偏差。
改进方法:
当输入的训练样本不满足相互正交的条件时,可以在网络训练时,通过修改连接权值,使网络达到稳定状态,这样的话,Hopfield网络可以训练样本不是相互正交时也可以达到稳定状态,训练后的网络可以很好地识别带噪声的数字。