Dale Patterson

dpatte3@cs.umbc.edu
## Description

This page lists two programs backpropagation written in MATLAB take from chapter 3 of .
the textbook, "Elements of Artificial Neural Networks".

Please note that they are generalizations, including momentum and the option to include
as many layers of hidden nodes as desired. If you plan on using either of these, it is
recommended to hard code the number of layers and nodes at each layer (remembering that
more than two is usually undesirable, unrecemmonded, unnessary, and inefficient). Likewise,
if you are not using momentum it is recommended to remove the momentum code as this will
result in a faster algorithm. I have left these as generalizations because they are easy
to use initially when the values of parameters are unknown and you want to determine
appropriated parameters.

## Source Code

per-epoch backpropagation in MATLAB

per-period backpropagation in MATLAB

Both of these files use the hyperbolic tangent function, for bipolar data. If you want
to use a binary sigmoid function, replace the following lines

For the feedforward phase

line 146 in bbackprop.m with a{i+1} = [1./(1+exp(-net{i}(:,1:end-1))) ones(P,1)];

line 148 in bbackprop.m with a{i+1} = 1 ./ (1 + exp(-net{i}));

and

line 131 in backprop.m with a{i+1} = [1./(1+exp(-net{i}(1:end-1))) ; 1];

line 133 in backprop.m with a{i+1} = 1./(1+exp(-net{i}));

For the error propagation phase

line 162 in bbackprop.m with delta = err .* a{end} .* (1 - a{end});

line 166 in bbackprop.m with delta = a{i} .* (1-a{i}) .* (delta*w{i});

and

line 145 in backprop.m with delta = (Dp-a{end}) .* a{end} .* (1-a{end});

line 150 in backprop.m with delta = (1+a{i}) .* a{i}.*(delta'*w{i})';