Hopfield神经网络设计与应用的关键是对其动力学特性的正确理解:网络的稳定性是其重要性质,而能量函数是判定网络稳定性的基本概念。
本文通过例子解释了Hopfield计算的详细过程,能让初学者对网络的计算过程有更深入的了解。
基础知识可参考百度文库的这个ppt。http://wenku.baidu.com/view/735f472a647d27284b7351dd.html,本例子就是ppt里第一个例子。
先上matlab代码
clear;
clc;
n=0;
E=0;
w=[0 1 2; %coffin
1 0 -3;
2 -3 0];
t=[-5 0 3]; %threshold
p=[0 1 1]; %input
v=p; %output
for i=1:2 %number of circle
for j=1:3 %asynchronous calculate,in the order i to n instead of random order
o=sum(v*w(:,j))-t(j);
v(j)=satlins(o);
v
n=n+1
E=hopenergy(w,v,t)
end
end
可以看出仿真是用的串行工作方式,按书上讲是每一次随机抽取一个输入来计算相应的输出,而我这里是按顺序取的,也就是i变量的作用。
然后根据