learnhd
Hebb with decay weight learning rule
Syntax
[dW,LS] = learnhd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
info = learnhd('code
')
Description
learnhd
is the Hebb weight learning function.
[dW,LS] = learnhd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
takes several inputs,
W |
|
P |
|
Z |
|
N |
|
A |
|
T |
|
E |
|
gW |
|
gA |
|
D |
|
LP | Learning parameters, none, |
LS | Learning state, initially should be = |
and returns
dW |
|
LS | New learning state |
Learning occurs according to learnhd
’s learning parameters, shown here
with default values.
LP.dr - 0.01 | Decay rate |
LP.lr - 0.1 | Learning rate |
info = learnhd('
returns useful
information for each code
')code
character vector:
'pnames' | Names of learning parameters |
'pdefaults' | Default learning parameters |
'needg' | Returns 1 if this function uses |
Examples
Here you define a random input P
, output A
, and
weights W
for a layer with a two-element input and three neurons. Also define
the decay and learning rates.
p = rand(2,1); a = rand(3,1); w = rand(3,2); lp.dr = 0.05; lp.lr = 0.5;
Because learnhd
only needs these values to calculate a weight change
(see “Algorithm” below), use them to do so.
dW = learnhd(w,p,[],[],a,[],[],[],[],[],lp,[])
Network Use
To prepare the weights and the bias of layer i
of a custom network to
learn with learnhd
,
Set
net.trainFcn
to'trainr'
. (net.trainParam
automatically becomestrainr
’s default parameters.)Set
net.adaptFcn
to'trains'
. (net.adaptParam
automatically becomestrains
’s default parameters.)Set each
net.inputWeights{i,j}.learnFcn
to'learnhd'
.Set each
net.layerWeights{i,j}.learnFcn
to'learnhd'
. (Each weight learning parameter property is automatically set tolearnhd
’s default parameters.)
To train the network (or enable it to adapt),
Set
net.trainParam
(ornet.adaptParam
) properties to desired values.Call
train
(adapt
).
Algorithms
learnhd
calculates the weight change dW
for a given
neuron from the neuron’s input P
, output A
, decay rate
DR
, and learning rate LR
according to the Hebb with decay
learning rule:
dw = lr*a*p' - dr*w
Version History
Introduced before R2006a