该函数用于创建自回归Hopfield网络,其调用格式为:
net=newhop(T)
其中,
T:唯一的输入变量,它是包含Q个变量的R×Q的输入自变量矩阵,R为输入变量的维数。T中的所有元素值必须为+1或-1。
net:返回值,它的稳定点在T中的列向量上。
该函数的功能为仿真一个神经网络,其调用格式为:
[Y,Pf,Af,E,perf] = sim(net,{Q TS},Pi,Ai,T)
其中,
net:神经网络(参考图5-1)。
Q:初始层延迟的变量数,即神经网络第0层输入量Ai的列数。
TS:仿真的迭代次数。
Pi:初始输入延迟,由于Hopfield神经网络没有输入(或者说第1层没有输入),所以这一项为空,即输入{}。
Ai:初始层延迟(即第0层输入,见图5-1),Hopfiled神经网络的初始层延迟为受污染的向量。
T:神经网络的目标向量。其中由于Hopfield神经网络也没有输出,所以这一项不填,或者填{}。
Y:神经网络的输出。
Pf:最终的输入延迟。
Af:最终的层延迟。
E:神经网络的误差。
perf:神经网络的性能。
这里举一例来说明Hopfield神经网络的使用方法。
创建一个新的Hopfield神经网络,输入矩阵T包含三个稳定点。
T的两个点都作为神经网络的初始层延迟,检查这两个点是否均为稳定点,即将这两个点作为输入,如果输出Y与T相等,则说明这两个点都是稳定点。由于Hopfield神经网络没有输入,所以第二个仿真变量Q=2,即T的列数(变量数)。
输出为:
与T一致,即T的两个点均为稳定点。
检查神经网络能否有效地修正受污染的向量,可执行如下代码,即将Hopfield神经网络仿真5次,因为Hopfield神经网络没有输入,因此第二个栅元数组仿真变量{Q TS} = [1 5],Q表示变量的列数,TS表示迭代的次数。
输出结果为:
可见,Y{1}与T的第一列一致,即神经网络已将受污染的向量Ai转换为离它最近的目标变量。