APP下载

基于离散Hopfield神经网络的数字识别实现

2012-04-29金灿

计算机时代 2012年3期
关键词:方正神经元噪声

金灿

摘要: 介绍了离散Hopfield神经网络的基本概念;以MATLAB为工具,根据Hopfield神经网络的相关知识,设计了一个具有联想记忆功能的离散型Hopfield神经网络,并给出了设计思路、设计步骤和测试结果。实验结果表明,通过联想记忆,对于带有一定噪声的数字点阵,Hopfield网络可以正确地进行识别,且当噪声强度为0.1时的识别效果较好。

关键词: 离散; Hopfield神经网络; 联想记忆; 数字识别

中图法分类号:TP301.6文献标识码:A 文章编号:1006-8228(2012)03-01-03

On numerical recognition using discrete Hopfield neural network

Jin Can1,2

(1. School of Information Science and Engineering, Central South University, Changsha, Hunan 410083, China

2. Modern Education Technology Center, Hunan University of Arts and Science)

Abstract: The author introduces in this paper the basic concept of discrete Hopfield neural network (DHNN), and then designs a discrete Hopfield neural network model with associative memory function using MATLAB according to the related knowledge of DHNN. Specifically, the author presents the idea of designing, designing procedure and the testing results. The simulation shows that DHNN can correctly recognize the numerical dot matrices with noises. When noise intensity is less than 0.1, the recognition ability is satisfactory.

Key words: Discrete; Hopfield neural network; Associative memory; Numeral recognition

1 离散Hopfield神经网络概述

Hopfield网络作为一种全连接型的神经网络,曾经为人工神经网络的发展开辟了新的研究途径。它利用与阶层性神经网络不同的结构特征和学习方法,模拟生物神经网络的记忆机理,获得了令人满意的结果。这一网络及学习算法最初是由美国物理学家J.J Hopfield于1982年首先提出的,故称为Hopfield神经网络[1]。

Hopfield最早提出的网络是二值神经网络,神经元的输出值只取1或-1,所以,也称离散Hopfield神经网络(DHNN, Discrete Hopfield Neural Network)。在离散Hopfield网络中,所采用的神经元是二值神经元,因此,所输出的离散值1和-1分别表示神经元处于激活和抑制状态[2]。

DHNN是一种单层、输出为二值的反馈网络。假设有一个由三个神经元组成的离散Hopfield神经网络[3],其结构如图1所示[4]。

在图1中,第0层仅仅作为网络的输入,它不是实际神经元,所以无计算功能;第1层是神经元,执行对输入信息与权系数的乘积求累加和,并经非线性函数f 处理后产生输出信息。f是一个简单的阈值函数,如果神经元的输出信息大于阈值θ,那么,神经元的输出取值为1;小于阈值θ,则神经元的输出取值为-1。

图1离散Hopfield神经网络结构

对于二值神经元,它的计算公式如下:

式中,xj为外部输入,并且有

一个DHNN的网络状态是输出神经元信息的集合。对于一个输出层是n个神经元的网络,其t时刻的状态为一个n维变量:

因为yi(t)(i=1,2,…,n)可以取值为1或-1,故n维向量Y(t)有2n种状态,即网络有2n种状态。

我们考虑DHNN的一般节点状态。用yj(t)表示第j个神经元,即节点j在时刻t的状态,则节点的下一个时刻(t+1)的状态可以求得:

如果wij在i-j时等于0,说明一个神经元的输出并不会反馈到其输入,这时,DHNN称为无自反馈的网络。如果wij在i=j时不等于0,说明一个神经元的输出会反馈到其输入端,这时,DHNN称为有自反馈的网络[4]。

2 联想记忆网络

联想记忆是神经网络理论的一个重要组成部分,也是神经网络用于模式识别与人工智能等领域的一个重要功能。Hopfield网络模拟了生物神经网络的记忆功能,也常常被称为联想记忆网络。所谓的联想记忆也成为了一种基于内容的存取方法,信息被分布于生物记忆的内容之中,而不是某个确定的地址。联想记忆可分为自联想与异联想两种。Hopfield网络属于自联想网络。自联想能将网络中输入模式映射到存贮在网络中一种模式。联想记忆网络不仅能将输入模式映射为自己所存贮的模式,而且还能对具有缺省噪音的输入模式有一定的容错能力。

设在学习过程中给联想记忆网络存入M个样本:{Xi}i=1,2,……M。若给联想记忆网络加以输入X'=Xm+V,其中Xm是M个学习样本之一,V是偏差项,则通过自联想联想记忆网络的输出为Xm,即使之复原。

Hopfield联想记忆网络运行步骤为:

第一步:设定记忆模式。将欲存储的模式进行编码,得到取值为1和-1的记忆模式(m

第二步:设计网络的权值。

其中wij一旦计算完毕,将保持不变。

第三步:初始化网络状态。将欲识别模式设为网络状态的初始状态,为网络中任意神经元i在t=0时刻的状态。

第四步:迭代收敛。随机地更新某一神经元的状态,反复迭代直至网络中所有神经元的状态不变为止。

第五步:网络输出。这时的网络状态(稳定状态)即为网络的输出y=vi(T)。

3 基于Hopfield神经网络的数字识别

根据Hopfield神经网络相关知识,下面设计一个具有联想记忆功能的离散型Hopfield神经网络,要求该网络可以正确识别0~9这10个数字,并且当数字被一定的噪声干扰后,仍具有较好的识别效果。

3.1 设计思路

假设网络由0~9共10个稳态构成,每个稳态用10*10的矩阵表示。该矩阵可直观地描述阿拉伯数字,即把矩阵规分成10*10个单元,有数字轨迹的单元用1表示,空白部分用-1表示,如图2所示。网络对这10个稳态即10个数字(点阵)具有联想记忆的功能,当有带噪声的数字点阵输入到该网络时,网络的输出便可以得到最接近的目标向量(即10个稳态),从而达到正确识别的效果。

图2数字1和2的点阵图

3.2 设计步骤

按照上述思路,设计Hopfield网络需要经过以下几个步骤,如图3所示。

[设计数字点阵

(0-9)][创建Hopfield

网络][产生带

噪声的

数字点阵] [数字识

别测试][结果

分析]

图3Hopfield网络设计流程图

3.3 MATLAB实现

利用MATLAB神经网络工具箱提供的函数,可以按照Hopfield网络设计流程图将设计步骤一一在MATLAB环境下实现。

3.3.1 输入输出设计

如图2所示,有数字的部分用1表示,空白部分用-1表示,即可得到0~9的点阵。将数字点阵以图形的形式呈现出来,如图4所示。

图4数字点阵0~9的实现结果

以数字1、2、3、4为例,利用这四个数字点阵构成训练样本T:

T=[array_one; array_two; array_three; array_four]

3.3.2 网络建立

利用newhop( )函数可以方便地创建一个离散型Hopfield神经网络。

3.3.3 产生带噪声的数字点阵

常见的模拟产生带噪声数字的方法有两种:固定噪声法和随机噪声法。

固定噪声法指的是人工修改的方法改变数字点阵某些位置的值,从而模拟产生带噪声的数字点阵。如果希望产生不同的带噪声的数字矩阵,需要人工做多次的修改,这无疑是比较麻烦的。

相比较而言,随机噪声产生法可以方便地产生各种类型的带噪声的数字矩阵。

随机噪声产生法是利用产生随机数的方法来确定需要修改的点阵位置,进而对数字点阵进行修改。由于数字点阵中的值只有1和-1两种,所以这里的修改就是将1换成-1,-1换成1。

3.3.4 网络仿真

利用sim()函数可对神经网络进行仿真,其调用格式为:

4 实验结果与分析

将带噪声的数字点阵输入已创建好的Hopfield网络,便可对带噪声的数字点阵进行识别,识别结果仍为数字点阵形式。考虑到仿真结果的直观性和可读性,程序中的数字点阵将以图形的形式呈现,如图5所示。

图5噪声强度为0.1时数字识别结果

图5所示的是噪声强度为0.1(即10%的数字点阵位置值发生变化)时的识别效果。从图中可以看出,识别效果较好。进一步的研究发现,随着噪声强度的增加识别效果逐渐下降。噪声强度为0.2和0.3时的识别结果分别如图6和图7所示。从图中不难看出,当噪声强度为0.3时,Hopfield已经很难对数字进行识别了。

图6噪声强度为0.2时的识别结果

图7噪声强度为0.3时的识别结果

5 结束语

通过对实验结果的分析,可以得出结论:对于带一定噪声的数字点阵,Hopfield网络可以正确地进行数字识别。下一步的工作可以将一些优化算法与离散Hopfield神经网络相结合,使神经网络的联想记忆能力更强,应用效果更为突出。

例如,由于一般离散Hopfield神经网络存在很多伪稳定点[1],网络很难得到真正的稳态,为此可以将遗传算法应用到离散Hopfield神经网络中,利用遗传算法的全局搜索能力,对Hopfield联想记忆稳态进行优化,使待联想的模式跳出伪稳定点,从而使Hopfield网络在较高信噪比的情况下保持较高的联想成功率。

参考文献:

[1] 飞思科产品研发中心.神经网络与MATLAB 7实现[M] .电子工业出版社,2005.

[2] MATLAB神经网络与应用(2版)[M].国防工业出版社,2007.

[3] 张良均,曹晶,蒋世忠.神经网络适用教程[M].机械工业出版社,2008.

[4] 史峰,王小川等.MATLAB神经网络30个案例分析[M].北京航空航天大学出版社,2010.

[5] 边肇祺,张学工等.模式识别[M].清华大学出版社,1999.

[6] 张宏林.数字图像模式识别技术及工程实践[M].人民邮电出版社,2004.

[7] 邓丽华,崔志强,张静.基于人工神经网络的手写体数字识别[J].三峡大学学报,2005.6:255~256

[8] 孙兆林.MATLAB6.x 图像处理[M].清华大学出版社,2002.

[9] 付德胜,张学勇.基于Hopfield神经网络噪声数字的识别[J].通信技术,Vol.43,No. 01,2010:126~129

[10] 孟祥武,程虎.基于任意给定训练集的离散型Hopfield网学习算法[J].软件学报,1998.9(03):213~216

[11] 陈文宇,吴跃.Hopfield神经网络参数设置[J].计算机工程与应用,

2006.31.

[12] TALAVAN.YANEZ P M.Parameter setting of the Hopfield network applied to TSP[J].2002

[13] 张涛涛等.基于Hopfield神经网络的WSN分布式拓扑[J].计算机与现代化,2010.1:63~65

[14] 姜惠兰,孔雅明.异联想记忆Hopfield神经网络的模型、算法及性能[J].系统工程理论与实践,2005.5:101~104

猜你喜欢

方正神经元噪声
《从光子到神经元》书评
噪声可退化且依赖于状态和分布的平均场博弈
浅析射阳大米的由来
关于钢铁厂车间动力自动化设备管理应统筹管理的思考
跃动的神经元——波兰Brain Embassy联合办公
控制噪声有妙法
方正
基于二次型单神经元PID的MPPT控制
毫米波导引头预定回路改进单神经元控制
一种基于白噪声响应的随机载荷谱识别方法