100% found this document useful (1 vote)
152 views

Hopfield Example

This document describes how to update nodes in a 5-node Hopfield network. It provides the weight matrix for storing the patterns (0 1 1 0 1) and (1 0 1 0 1), then shows updating the nodes starting from the state (1 1 1 1 1). The nodes are updated in a fixed order, with some changing values initially before stabilizing on the pattern (0 1 1 0 1).

Uploaded by

Sun Birds
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
152 views

Hopfield Example

This document describes how to update nodes in a 5-node Hopfield network. It provides the weight matrix for storing the patterns (0 1 1 0 1) and (1 0 1 0 1), then shows updating the nodes starting from the state (1 1 1 1 1). The nodes are updated in a fixed order, with some changing values initially before stabilizing on the pattern (0 1 1 0 1).

Uploaded by

Sun Birds
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Hopfield Network Example

We have a 5 node Hopfield network and we want it to recognize the pattern (0 1 1 0 1). Since there
are 5 nodes, we need a matrix of 5 x 5 weights, where the weights from a node back to itsef
are 0. !he weight matrix wi ook ike this"
0
W
12
W
13
W
14
W
15
W
21
0
W
23
W
24
W
25
W
31
W
32
0
W
34
W
35
W
41
W
42
W
43
0
W
45
W
51
W
52
W
53
W
54
0
Where W
ij
= W
ji

Since the weights are s#mmetric, we on# have to cac$ate the $pper diagona of weights, and then we
can cop# each weight to its inverse weight. %n this case, & is the vector (0 1 1 0 1), so &
1
' 0, &
(
' 1,
&
)
' 1, &
*
' 0, and &
5
' 1. !h$s the comp$tation of the weights is as foows"
W
12
= (2V
1
1!(2V
2
1! = (0 1!(2 1! = (1!(1! = 1
W
13
= (2V
1
1!(2V
3
1! = (0 1!(2 1! = (1!(1! = 1
W
14
= (2V
1
1!(2V
4
1! = (0 1!(0 1! = (1!(1! = 1
W
15
= (2V
1
1!(2V
5
1! = (0 1!(2 1! = (1!(1! = 1
W
23
= (2V
2
1!(2V
3
1! = (2 1!(2 1! = (1!(1! = 1
W
24
= (2V
2
1!(2V
4
1! = (2 1!(0 1! = (1!(1! = 1
W
25
= (2V
2
1!(2V
5
1! = (2 1!(2 1! = (1!(1! = 1
W
34
= (2V
3
1!(2V
4
1! = (2 1!(0 1! = (1!(1! = 1
W
35
= (2V
3
1!(2V
5
1! = (2 1!(2 1! = (1!(1! = 1
W
45
= (2V
4
1!(2V
5
1! = (0 1!(2 1! = (1!(1! = 1
1
So now o$r weight matrix ooks ike this"
0 1 1 1 1
W
21
0 1 1 1
W
31
W
32
0 1 1
W
41
W
42
W
43
0 1
W
51
W
52
W
53
W
54
0
+# refecting abo$t the diagona, we get the f$ weight matrix"
0 1 1 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0
,or competeness- sake, #o$- remember that the origina form$a was set $p to aow #o$ to have n
patterns. So et-s consider the case where we want o$r 5 node .opfied net to store both the
pattern &
1
' (0 1 1 0 1) and another pattern &
(
' (1 0 1 0 1). /ne wa# #o$ co$d go abo$t
cac$ating the weights is on a weight b# weight basis. ,or exampe, W
1(
co$d be cac$ated
as"
W
12
=

(2V
"
1
1!(2V
"
2
1!
= (2V
1
1
1!(2V
1
2
1! # (2V
2
1
1!(2V
2
2
1!
= (2$0 1!(2$1 1! # (2$1 1!(2$0 1!
(
= (0 1!(2 1! # (2 1!(0 1!
= (1!(1! # (1!(1!
= 1 # 1
= 2
0o$ co$d go thro$gh each weight ike this and cac$ate the new weight matrix. !his is ike# the wa#
#o$ wo$d do it b# comp$ter, b$t % find if %-m cac$ating them b# hand, it-s easier to foc$s on
one pattern at a time and then s$m the res$ting matrices. !o do this, #o$ wo$d cac$ate the
matrix for the first pattern (which we did above), then cac$ate the va$e for the second matrix
and fina# add the two matrices together. .ere-s the weight matrix for the pattern (1 0 1 0 1)"
0 1 1 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0
1ow add this to the previo$s weight matrix and we get"
0 2 0 0 0
2 0 0 0 0
0 0 0 2 2
0 0 2 0 2
0 0 2 2 0
)
How to %pdate a node in a Hopfield network
So now we have a weight matrix for a 5 node .opfied network that-s meant to recognize the patterns
(0 1 1 0 1) and (1 0 1 0 1). /ne thing #o$ might notice is that these patterns on# differ b# (
bits. 2s #o$ might imagine, patterns this cose together might be diffic$t to te apart. +#
anaog#, #o$ might have tro$be discriminating a ower case 3c3 from 3e3 or an $pper case 3/3
from 343 if the# were manged bad# eno$gh. 5et-s start from the pattern (1 1 1 1 1), which
on# differs from each of these patterns b# ( bits, and see what happens.
6pdating a node in a .opfied network is ver# m$ch ike $pdating a perceptron. ,irst #o$ do a
weighted s$m of the inp$ts from the other nodes, then if that va$e is greater than or e7$a to 0,
#o$ o$tp$t 1. /therwise, #o$ o$tp$t 0. %n form$a form"
V
i
in =

W
ji
V
j

V
i
& 1 if V
i
in &= 0
el"e V
i
& 0
So ass$ming we have the fina weight matrix from the previo$s section, and we start from the state (1
1 1 1 1), for the )rd node, we have"
V
3
in =

W
j3
V
j

=
W
13
V
1
# W
23
V
2
# W
43
V
4
# W
53
V
5

= 0$1 # 0$1 # 2$1 # 2$1
= 0
"in'e 0 &= 0(
V
3
= 1
*
%n this case, the va$e of &
)
doesn-t change. %t-s worth noticing that since the weight from node ) to
itsef is 0, we co$d have 8$st cac$ated the dot prod$ct of the )rd co$mn o$t of the weight
matrix and the c$rrent state to cac$ate the weighted s$m"
V
3
in = (0 0 0 2 2! $ (1 1 1 1 1! = 2 # 2 = 0
)e*%en'in+ of node %pdate" in a Hopfield network
0o$ might have noticed b# now that se7$encing the $pdates of the nodes in a .opfied network is
somewhat trick#. .ow can #o$ $pdate a ne$ron if the va$es of its inp$ts are changing9 We,
there are two approaches. !he first is s#nchono$s $pdating, which means a the nodes get
$pdated at the same time, based on the existing state (i.e. not on the va$es the nodes are
changing to). !o $pdate the nodes in this method, #o$ can 8$st m$tip# the weight matrix b#
the vector of the c$rrent state.
!his isn-t ver# reaistic in a ne$ra sense, as ne$rons don-t a $pdate at the same rate. !he# have
var#ing propagation dea#s, var#ing firing times, etc., so a more reaistic ass$mption wo$d be
to $pdate them in random order. !his was the method described b# .opfied, in fact. 0o$
random# seect a ne$ron, and $pdate it. !hen #o$ random# seect another ne$ron and $pdate
it. 0o$ keep doing this $nti the s#stem is in a stabe state (which we- tak abo$t ater).
%n practice, peope code .opfied nets in a semi:random order. !he# $pdate a of the nodes in one
step, b$t within that step the# are $pdated in random order. So it might go ), (, 1, 5, *, (, ), 1,
5, *, etc. !his is 8$st to avoid a bad pse$do:random generator from favoring one of the nodes,
which co$d happen if it was p$re# random" ), (, 1, (, (, (, 5, 1, (, (, *, (, 1, etc.
5
How to tell when ,o% 'an "top %pdatin+ the network
;
!he main reason to want to c#ce thro$gh a the nodes each step is that it-s the on# wa# #o$ can te
when to stop. +asica#, if #o$ go thro$gh a the nodes and none of them changes, #o$ can
stop. %f #o$-re $pdating them in a fixed se7$ence (e.g. 1, (, ), *, 5, 1, (, ), *, 5, 1, (, ), etc.),
this means that if #o$ go thro$gh 5 consec$tive ne$rons witho$t changing an# of their va$es,
then #o$-re at an attractor so #o$ can stop.
<
-ini"hin+ %p the example
=
1ow et-s finish the exampe % started. %n other words, given the weight matrix for a 5 node network
with (0 1 1 0 1) and (1 0 1 0 1) as attractors, start at the state (1 1 1 1 1) and see where it goes.
!o keep it simpe, %-m going to $pdate the nodes in the fixed order ), 1, 5, (, *, ), 1, 5, (, *, etc.
% aread# did the first $pdate of node ), and it didn-t change, so contin$ing"
%pdate node 3 did it( no 'han+e
%pdate node 1
V
1
in = (0 2 0 0 0! . (1 1 1 1 1! = 2
"in'e 2 / 0( V
1
= 0 (it changed)
%pdate node 5
V
5
in = (0 0 2 2 0! . (0 1 1 1 1! = 0
"in'e 0 &= 0( V
5
= 1 (it didn't change)
%pdate node 2
V
2
in = (2 0 0 0 0! . (0 1 1 1 1! = 0
"in'e 0 &= 0( V
2
= 1 (it didn't change)
%pdate node 4
V
4
in = (0 0 2 0 2! . (0 1 1 1 1! = 4
"in'e 4 / 0( V
4
= 0 (it changed)
%pdate node 3
V
3
in = (0 0 0 2 2! . (0 1 1 0 1! = 2
"in'e 2 &= 0( V
3
= 1 (it didn't change)
%pdate node 1
V
1
in = (0 2 0 0 0! . (0 1 1 0 1! = 2
"in'e 2 / 0( V
1
= 0 (it didn't change)
%pdate node 5
V
5
in = (0 0 2 2 0! . (0 1 1 0 1! = 2
"in'e 2 &= 0( V
5
= 1 (it didn't change)
%pdate node 2
V
2
in = (2 0 0 0 0! . (0 1 1 0 1! = 0
"in'e 0 &= 0( V
2
= 1 (it didn't change)
>
10

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy