📄 demohop2.html
字号:
<!--This HTML is auto-generated from an m-file.Your changes will be overwritten.--><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" style="color:#990000; font-weight:bold; font-size:x-large">A Hopfield Network with Unstable Equilibria</p><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">A Hopfield network is designed with target stable points. However, whileNEWHOP finds a solution with the minimum number of unspecified stable points,they do often occur. The Hopfield network designed here is shown to have anundesired equilibrium point. However, these points are unstable in that anynoise in the system will move the network out of them.</p><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">Copyright 1992-2002 The MathWorks, Inc.$Revision: 1.16 $ $Date: 2002/03/29 19:36:22 $</p><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" style="color:#990000; font-weight:bold; font-size:medium; page-break-before: auto;"><a name=""></a></p><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">We would like to obtain a Hopfield network that has the two stable pointsdefine by the two target (column) vectors in T.</p><pre xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" style="position: relative; left:30px">T = [+1 -1; <span style="color:blue">...</span> -1 +1];</pre><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" style="color:#990000; font-weight:bold; font-size:medium; page-break-before: auto;"><a name=""></a></p><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">Here is a plot where the stable points are shown at the corners. All possiblestates of the 2-neuron Hopfield network are contained within the plotsboundaries.</p><pre xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" style="position: relative; left:30px">plot(T(1,:),T(2,:),<span style="color:#B20000">'r*'</span>)axis([-1.1 1.1 -1.1 1.1])title(<span style="color:#B20000">'Hopfield Network State Space'</span>)xlabel(<span style="color:#B20000">'a(1)'</span>);ylabel(<span style="color:#B20000">'a(2)'</span>);</pre><img xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" src="demohop2_img03.gif"><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" style="color:#990000; font-weight:bold; font-size:medium; page-break-before: auto;"><a name=""></a></p><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">The function NEWHOP creates Hopfield networks given the stable points T.</p><pre xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" style="position: relative; left:30px">net = newhop(T);</pre><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" style="color:#990000; font-weight:bold; font-size:medium; page-break-before: auto;"><a name=""></a></p><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">Here we define a random starting point and simulate the Hopfield network for50 steps. It should reach one of its stable points.</p><pre xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" style="position: relative; left:30px">a = {rands(2,1)};[y,Pf,Af] = sim(net,{1 50},{},a);</pre><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" style="color:#990000; font-weight:bold; font-size:medium; page-break-before: auto;"><a name=""></a></p><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">We can make a plot of the Hopfield networks activity.</p><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">Sure enough, the network ends up in either the upper-left or lower rightcorners of the plot.</p><pre xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" style="position: relative; left:30px">record = [cell2mat(a) cell2mat(y)];start = cell2mat(a);hold onplot(start(1,1),start(2,1),<span style="color:#B20000">'bx'</span>,record(1,:),record(2,:))</pre><img xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" src="demohop2_img06.gif"><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" style="color:#990000; font-weight:bold; font-size:medium; page-break-before: auto;"><a name=""></a></p><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">Unfortunately, the network has undesired stable points at places other thanthe corners. We can see this when we simulate the Hopfield for thefive initial weights, P.</p><p xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">These points are exactly between the two target stable points. The result isthat they all move into the center of the state space, where an undesiredstable point exists.</p><pre xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" style="position: relative; left:30px">plot(0,0,<span style="color:#B20000">'ko'</span>);P = [-1.0 -0.5 0.0 +0.5 +1.0; -1.0 -0.5 0.0 +0.5 +1.0];color = <span style="color:#B20000">'rgbmy'</span>;<span style="color:blue">for</span> i=1:5 a = {P(:,i)}; [y,Pf,Af] = sim(net,{1 50},{},a); record=[cell2mat(a) cell2mat(y)]; start = cell2mat(a); plot(start(1,1),start(2,1),<span style="color:#B20000">'kx'</span>,record(1,:),record(2,:),color(rem(i,5)+1)) drawnow<span style="color:blue">end</span></pre><img xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" src="demohop2_img07.gif"><originalCode xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd" code="%% A Hopfield Network with Unstable Equilibria
% A Hopfield network is designed with target stable points. However, while
% NEWHOP finds a solution with the minimum number of unspecified stable points,
% they do often occur. The Hopfield network designed here is shown to have an
% undesired equilibrium point. However, these points are unstable in that any
% noise in the system will move the network out of them.
% 
% Copyright 1992-2002 The MathWorks, Inc.
% $Revision: 1.16 $ $Date: 2002/03/29 19:36:22 $

%%
% We would like to obtain a Hopfield network that has the two stable points
% define by the two target (column) vectors in T.
T = [+1 -1; ...
 -1 +1];

%%
% Here is a plot where the stable points are shown at the corners. All possible
% states of the 2-neuron Hopfield network are contained within the plots
% boundaries.

plot(T(1,:),T(2,:),'r*')
axis([-1.1 1.1 -1.1 1.1])
title('Hopfield Network State Space')
xlabel('a(1)');
ylabel('a(2)');

%%
% The function NEWHOP creates Hopfield networks given the stable points T.

net = newhop(T);

%%
% Here we define a random starting point and simulate the Hopfield network for
% 50 steps. It should reach one of its stable points.

a = {rands(2,1)};
[y,Pf,Af] = sim(net,{1 50},{},a);

%%
% We can make a plot of the Hopfield networks activity.
%
% Sure enough, the network ends up in either the upper-left or lower right
% corners of the plot.

record = [cell2mat(a) cell2mat(y)];
start = cell2mat(a);
hold on
plot(start(1,1),start(2,1),'bx',record(1,:),record(2,:))

%%
% Unfortunately, the network has undesired stable points at places other than
% the corners. We can see this when we simulate the Hopfield for the
% five initial weights, P.
%
% These points are exactly between the two target stable points. The result is
% that they all move into the center of the state space, where an undesired
% stable point exists.

plot(0,0,'ko');
P = [-1.0 -0.5 0.0 +0.5 +1.0; 
 -1.0 -0.5 0.0 +0.5 +1.0];
color = 'rgbmy';
for i=1:5
 a = {P(:,i)};
 [y,Pf,Af] = sim(net,{1 50},{},a);
 record=[cell2mat(a) cell2mat(y)];
 start = cell2mat(a);
 plot(start(1,1),start(2,1),'kx',record(1,:),record(2,:),color(rem(i,5)+1))
 drawnow
end
"></originalCode>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -