1、第二十六章,MATLAB优化算法案例分析与应用,第26章 基于Hopfield的数字识别,第二十六章,MATLAB优化算法案例分析与应用,26.1 Hopfield网络原理分析,Hopfield网络是神经网络发展历史上的一个重要的里程碑。由美国加州理工学院物理学家J.J.Hopfield教授于1982年提出,是一种单层反馈神经网络。1984年,Hopfield设计并研制了网络模型的电路,并成功地解决了旅行商(TSP)计算难题(优化问题)。Hopfield网络是一种互连型网络,它引入类似于切Lyapunov函数的能量函数概念,在满足条件的情况下,某种“能量函数”的能量在网络运行过程中不断地减少,
2、最后趋于稳定的平衡状态。对于一个非线性动力学系统,系统的状态从某一初值出发经过演变后可能有如下几种结果:渐进稳定点(吸引子)、极限环、混沌、状态发散。因为人工神经网络的变换函数是一个有界函数,故系统的状态不会发生发散现象。目前,人工神经网络经常利用渐进稳定点来解决某些问题。如果把系统的稳定点视为一个记忆的话,第二十六章,MATLAB优化算法案例分析与应用,26.1 Hopfield网络原理分析,,那么从初态朝这个稳定点的演变过程就是一个寻找记忆的过程。如果把系统的稳定点视为一个能量函数的极小点,而把能量函数视为一个优化问题的目标函数,那么从初态朝这个稳定点的演变过程就是一个求解该优化问题的过程
3、。因此,HoPfield神经网络的演变过程是一个计算联想记忆或求解优化问题的过程。实际上,它的解决并不需要真的去计算,而是通过构成反馈神经网络,适当地设计其连接权和输入就可以达到这个目的。Hopfield神经网络模型是一种循环神经网络,从输出到输入有反馈连接。在输入的激励下,会产生不断的状态变化。对于一个Hopfield网络来说,关键是在于确定它在稳定条件下的权系数。反馈网络有稳定的,也有不稳定的。对于Hopfield网络来说,如何判别其稳定性也是需要确定的。,第二十六章,MATLAB优化算法案例分析与应用,26.2 Hopfield数字识别,表26-1 人工神经网络应用领域,第二十六章,MA
4、TLAB优化算法案例分析与应用,26.2 Hopfield数字识别,Hopfield神经网络模型如图26-1所示,它是一种循环神经网络,从输出到输入有反馈连接,通过不断的调整权值,使得系统能量函数不断的趋向于最小,达到系统收敛的目的。,第二十六章,MATLAB优化算法案例分析与应用,26.2 Hopfield数字识别,26.2.1 离散Hopfield网络(DHNN),对于离散Hopfield网络(DHNN)而言,神经元的输出只取1和0,分别表示神经元处于激活和抑制状态。对于二值神经元,它的计算公式如下:,一个DHNN的网络状态是输出神经元信息的集合。对于一个输出层是 n 个神经元的网络,其t
5、 时刻的状态为一个 n 维向量:,第二十六章,MATLAB优化算法案例分析与应用,26.2 Hopfield数字识别,26.2.1 离散Hopfield网络(DHNN),如果Hopfield网络是一个稳定网络,若在网络的输入端加入一个输入向量,则网络的状态会产生变化,如图26-2所示,即从超立方体的一个顶点转向另一个顶点,并且最终稳定于一个特定的顶角。,第二十六章,MATLAB优化算法案例分析与应用,26.2 Hopfield数字识别,26.2.2 连续Hopfield网络,对于连续Hopfield网络(CHNN)而言,拓扑结构和DHNN的结构相同。不同之处在于其函数g不是阶跃函数,而是S形的
6、连续函数。一般取:,MATLAB工具箱Hopfield网络函数形式如下:,第二十六章,MATLAB优化算法案例分析与应用,26.2 Hopfield数字识别,26.2.3 基于DHNN的数字识别,用离散Hopfield网络,使其具有联想记忆功能,能正确识别阿拉伯数字,当数字被噪声污染后仍可以正确地识别。假设网络由0-9共10个稳态构成,每个稳态由 10 x 10 的矩阵构成,该矩阵用于模拟阿拉伯数字点阵。即将数字划分成 10 x 10 方阵,有数字的部分用1表示,空白处用-1表示。,图26-4 数字点阵,第二十六章,MATLAB优化算法案例分析与应用,26.2 Hopfield数字识别,26.
7、2.3 基于DHNN的数字识别,图26-5 离散Hopfield网络算法设计流程图,第二十六章,MATLAB优化算法案例分析与应用,26.2 Hopfield数字识别,26.2.3 基于DHNN的数字识别,% 数字1 one=-1 -1 -1 -1 1 1 -1 -1 -1 -1;-1 -1 -1 -1 1 1 -1 -1 -1 -1;.-1 -1 -1 -1 1 1 -1 -1 -1 -1;-1 -1 -1 -1 1 1 -1 -1 -1 -1;.-1 -1 -1 -1 1 1 -1 -1 -1 -1;-1 -1 -1 -1 1 1 -1 -1 -1 -1;.-1 -1 -1 -1 1 1
8、-1 -1 -1 -1;-1 -1 -1 -1 1 1 -1 -1 -1 -1;.-1 -1 -1 -1 1 1 -1 -1 -1 -1;-1 -1 -1 -1 1 1 -1 -1 -1 -1;ONE=imresize(one,20);subplot(2,5,2)imshow(ONE),第二十六章,MATLAB优化算法案例分析与应用,26.2 Hopfield数字识别,26.2.3 基于DHNN的数字识别,第二十六章,MATLAB优化算法案例分析与应用,26.2 Hopfield数字识别,26.2.3 基于DHNN的数字识别,图26-7 数字1-2识别,第二十六章,MATLAB优化算法案例分析与应用,26.2 Hopfield数字识别,26.2.3 基于DHNN的数字识别,图26-7 数字3-4识别,