Neural Network Toolbox | ![]() ![]() |
Widrow-Hoff weight/bias learning function
Syntax
[dW,LS] = learnwh(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
[db,LS] = learnwh(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)
info = learnwh(code)
Description
learnwh
is the Widrow-Hoff weight/bias learning function, and is also known as the delta or least mean squared (LMS) rule.
learnwh(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
takes several inputs,
W - S
x R
weight matrix (or b, and S
x 1
bias vector).
P - R
x Q
input vectors (or ones(1,Q)
).
Z - S
x Q
weighted input vectors.
N - S
x Q
net input vectors.
A - S
x Q
output vectors.
T - S
x Q
layer target vectors.
E - S
x Q
layer error vectors.
gW - S
x R
weight gradient with respect to performance.
gA - S
x Q
output gradient with respect to performance.
D - S
x S
neuron distances.
LP -
Learning parameters, none, LP = []
.
LS -
Learning state, initially should be = []
.
Learning occurs according to learnwh
's learning parameter shown here with its default value.
LP.lr - 0.01 -
Learning rate.
learnwh(code)
returns useful information for each code
string:
pnames
' - Names of learning parameters.
'pdefaults
' - Default learning parameters.
'needg
' - Returns 1 if this function uses gW
or gA
.
Examples
Here we define a random input P
and error E
to a layer with a two-element input and three neurons. We also define the learning rate LR
learning parameter.
Since learnwh
only needs these values to calculate a weight change (see algorithm below), we will use them to do so.
Network Use
You can create a standard network that uses learnwh
with newlin
.
To prepare the weights and the bias of layer i
of a custom network to learn with learnwh
:
net.trainFcn
to 'trainb
'. net.trainParam
will automatically become trainb
's default parameters.
net.adaptFcn
to 'trains
'. net.adaptParam
will automatically become trains
's default parameters.
net.inputWeights{i,j}.learnFcn
to 'learnwh
'. Set each net.layerWeights{i,j}.learnFcn
to 'learnwh
'. Set net.biases{i}.learnFcn
to 'learnwh
'.
Each weight and bias learning parameter property will automatically be set to learnwh
's default parameters.
To train the network (or enable it to adapt):
See newlin
for adaption and training examples.
Algorithm
learnwh
calculates the weight change dW
for a given neuron from the neuron's input P
and error E
, and the weight (or bias) learning rate LR
, according to the Widrow-Hoff learning rule:
See Also
References
Widrow, B., and M. E. Hoff, "Adaptive switching circuits," 1960 IRE WESCON Convention Record, New York IRE, pp. 96-104, 1960.
Widrow B. and S. D. Sterns, Adaptive Signal Processing, New York: Prentice-Hall, 1985.
![]() | learnsom | linkdist | ![]() |