霍普菲爾得神經網絡(Hopfield Neural Network)


 

設計一個反饋網絡存儲下列目標平衡點:

T = [ 1  -1; -1  1 ];

並用6組任意隨機初始列矢量,包括一組在目標平衡點連線的垂直平分線上的一點作為輸入矢量對所設計的網絡的平衡點進行測試,觀察3次循環的每一次的輸出結果。給出最后收斂到各自平衡點(或不穩定的平衡點)結果的次數。

采用正交化方法設計的霍普菲爾德網絡結構,如下圖:

通過net=newhop(T);操作可得網絡的權值和偏差為:

可見權值是對稱的。

現在選取6組任意隨機初始列矢量,並調整其中一組在目標平衡點連線的垂直平分線上,如下:

循環迭代60次效果如下圖所示:

 

其中(0.5000,0.5000)點60次迭代收斂至不穩定平衡點(0,0),當迭代次數增大至1000時能改變這種情況。

最終收斂情況如下:

 


 

T=[1 -1;-1 1];
P=[ 0.8147    -0.1270    0.6324    0.5000    -0.9575    0.1576;
    0.9058    0.9134    -0.0975    0.5000    0.9649    -0.9706];
net=newhop(T);
W=net.lw{1,1}
b=net.b{1}
plot(T(1,:),T(2,:),'r*');
axis([-1 1 -1 1])

 max_epoes =1000;
[Y,Pf,Af] = sim(net,{6,max_epoes},[],P);    

plot(T(1,:),T(2,:),'*y');
hold on
plot(P(1,:),P(2,:),'+');
hold on
A=zeros(2,max_epoes+1);
for i=1:6
for n=2:(max_epoes+1)
    A(1,n)=Y{n-1}(1,i);
    A(2,n)=Y{n-1}(2,i);
    hold on
end
A(1,1)=P(1,i);
A(2,1)=P(2,i);
title('Hopfield Network State Space')
plot(A(1,:),A(2,:),'*-')
end
% for i=1:30
%    A=sim(net,P);
%    P=A;
% end
% [a(1,i),aa(1,i)]
% hold on
% plot(aa(1,1),aa(2,1),'wx',aa(1,:),aa(2,:))
% Y_fanal=zeros(60,6);
% for i=1:30
% [Y,Pf,Af] =net(6,[],P)
% Y_fanal(i,:)=Y(1,:);
% Y_fanal(i+1,:)=Y(2,:);
% end
% for i=1:6
%    for j=1:2:30
%    plot(Y_fanal(j,i),Y_fanal(j+1,i),'o-');
%    hold on
%    end
% end
View Code

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM