离散Hopfield神经网络及应用举例WhatisArtificalNeuralNetwork?WhatcanANNdoforus?WhencanweuseANN?WhatkindofANNshouldweselect?关于人工神经网络人工神经网络(复习)●人工神经网络是一个并行和分布式的信息处理网络结构,该网络结构一般由许多个神经元组成,每个神经元有一个单一的输出,它可以连接到很多其他的神经元,其输入有多个连接通路,每个连接通路对应一个连接权系数。●人工神经网络系统是以工程技术手段来模拟人脑神经元(包括细胞体,树突,轴突)网络的结构与特征的系统。利用人工神经元可以构成各种不同拓扑结构的神经网络,它是生物神经网络的一种模拟和近似。主要从两个方面进行模拟:一是结构和实现机理;二是从功能上加以模拟。●根据神经网络的主要连接型式而言,目前已有数十种不同的神经网络模型,其中前馈型网络和反馈型网络是两种典型的结构模型。网络属性感知器BP神经网络RBF神经网络SOM神经网络MATLAB函数newpnewffnewrbnewrbenewc应用领域分类逼近、预测、分类逼近、预测分类如何选择神经网络需要注意的两点●虽然人工神经网络有学习、识别、控制、逼近、分类、预测等强大功能,但应该明确的是它不是万能的。想要得到一个什么样子的结果对于是否选择神经网络非常重要,如果想要的结果要求非常精准,那么最好不要选择人工神经网络模型。●如果对结果要求不严格,系统数学模型未知或者很复杂,比较合适选取人工神经网络。因为神经网络对于用户来说,只是一个“黑匣子”,用户不需要知道内部结构,只需确定输入输出即可。反馈神经网络●反馈网络(RecurrentNetwork),又称自联想记忆网络,其目的是为了设计一个网络,储存一组平衡点,使得当给网络一组初始值时,网络通过自行运行而最终收敛到这个设计的平衡点上。反馈神经网络是一种将输出经过一步时移再接入到输入层的神经网络系统。●反馈网络能够表现出非线性动力学系统的动态特性。它所具有的主要特性为以下两点:1.网络系统具有若干个稳定状态。当网络从某一初始状态开始运动,网络系统总可以收敛到某一个稳定的平衡状态;2.系统稳定的平衡状态可以通过设计网络的权值而被存储到网络中。●反馈网络是一种动态网络,它需要工作一段时间才能达到稳定。该网络主要用于联想记忆和优化计算。在这种网络中,每个神经元同时将自身的输出信号作为输入信号反馈给其他神经元,它需要工作一段时间才能达到稳定。Hopfield神经网络●Hopfield网络是神经网络发展历史上的一个重要的里程碑。由美国加州理工学院物理学家J.J.Hopfield教授于1982年提出,是一种单层反馈神经网络。Hopfield神经网络是反馈网络中最简单且应用广泛的模型,它具有联想记忆的功能。●1984年,Hopfield设计并研制了网络模型的电路,并成功地解决了旅行商(TSP)计算难题(快速寻优问题)。●根据网络的输出是离散量或是连续量,Hopfield网络也分为离散和连续的两种。Hello,I’mJohnHopfieldHopfield神经网络Hopfield神经网络模型是一种循环神经网络,从输出到输入有反馈连接。在输入的激励下,会产生不断的状态变化。反馈网络有稳定的,也有不稳定的,如何判别其稳定性也是需要确定的。对于一个Hopfield网络来说,关键是在于确定它在稳定条件下的权系数。右图中,第0层是输入,不是神经元;第二层是神经元。y1y2y3第0层第1层x3x2x1w11w12w13w21w22w23w31w32w33Hopfield神经网络有两种:离散Hopfield网络(DHNN)和连续Hopfield网络(CHNN)。1.离散Hopfield网络(DHNN):神经元的输出只取1和0,分别表示神经元处于激活和抑制状态。对于二值神经元,它的计算公式如下其中,xi为外部输入。并且有:2.连续Hopfield网络(CHNN)拓扑结构和DHNN的结构相同。不同之处在于其函数g不是阶跃函数,而是S形的连续函数。一般取G(u)=1/(1+eu)jijijiuwyx1000iiiiyuyu,当时,当时离散Hopfield网络离散Hopfield网络的结构和工作方式离散Hopfield网络是一个单层网络,有n个神经元节点,每个神经元的输出均接到其它神经元的输入。各节点没有自反馈,每个节点都附有一个阀值。每个节点都可处于一种可能的状态(1或-1),即当该神经元所受的刺激超过其阀值时,神经元就处于一种状态(比如1),否则神经元就始终处于另一状态(比如-1)。一个DHNN的网络状态是输出神经元信息的集合。对于一个输出层是n个神经元的网络,其t时刻的状态为一个n维向量:Y(t)=[y1(t),y2(t),…,yn(t)]T因为yi(t)可以取值为1或0,故n维向量Y(t)有2n种状态,即网络有2n种状态。如图所示:如果Hopfield网络是一个稳定网络,有3个神经元,则有8种状态。右图可直观看出:若在网络的输入端上加入一个输入向量,则网络的状态会产生变化,即从超立方体的一个顶点转向另一个顶点,并且最终稳定于一个特定的顶角。000010110111101001011100●假设一个DHNN,其状态为Y(t):Y(t)=[y1(t),y2(t),…,yn(t)]T如果对于任何△t,当神经网络从t=0开始,有初始状态Y(0)。经过有限时刻t,有:Y(t+△t)=Y(t)则称网络是稳定的。●Hopfield网络稳定的充分条件:权系数矩阵W是对称矩阵,并且对角线元素为0。●无自反馈的权系数对称Hopfield网络是稳定的。y1y2y3x2x1x3w21w12w23w13w31w32应用举例(数字识别)问题设计一个Hopfield网络,使其具有联想记忆功能,能正确识别阿拉伯数字,当数字被噪声污染后仍可以正确地识别。设计思路假设网络由0-9共10个稳态构成,每个稳态由10*10的矩阵构成,该矩阵用于模拟阿拉伯数字点阵。即将每个数字划分成10*10方阵,有数字的部分用1表示,空白处用-1表示。设计步骤(1)设计数字点阵(0-9)(2)创建Hopfield网络(3)设计受到噪声污染的数字点阵(4)数字识别(5)结果分析应用举例(数字识别)%standardnumberarray;矩阵填充,数字模型建立one=[-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1;...-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1;...-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1;...-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1;...-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1];two=[-111111111-1;-111111111-1;...-1-1-1-1-1-1-111-1;-1-1-1-1-1-1-111-1;...-111111111-1;-111111111-1;...-111-1-1-1-1-1-1-1;-111-1-1-1-1-1-1-1;...-111111111-1;-111111111-1];%plotstandardnumberfigure画出标准数字图像-----------------ONE=imresize(one,20);subplot(3,2,1)imshow(ONE)title('standnumber')TWO=imresize(two,20);subplot(3,2,2)imshow(TWO)title('standnumber')%--createhopfieldnet创建Hopfield网络--------------------------T=[one;two]';net=newhop(T);%--noisearray(randnoise)-人为制造噪声----------------rand('state',0);fori=1:100a=rand;ifa0.1one(i)=-one(i);two(i)=-two(i);endendno1=one;no2=two;%--plotnoisyfigure---------------subplot(3,2,3)NO1=imresize(no1,20);imshow(NO1)title('noisynumber')subplot(3,2,4)NO2=imresize(no2,20);imshow(NO2)title('noisynumber')%plotidentifyfigure—noise1={(no1)'};tu1=sim(net,{10,10},{},noise1);tu1{10}‘subplot(3,2,5)imshow(imresize(tu1{10}',20))title('identifynumber')noise2={(no2)'};tu2=sim(net,{10,10},{},noise2);tu2{10}‘subplot(3,2,6)imshow(imresize(tu2{10}',20))title('identifynumber')谢谢大家!