• Apply inputs to the network, here subscript p is used as the pattern index.

x_{p} = (x_{p1}, x_{p2}, ..., x_{pn})^{t}

• Calculate, the inputs to the hidden layer units (see figure 1)

net_{pj}^{h} = ∑_{i=1}^{N} w_{ji}^{h}x_{pi} + Θ_{j}^{h}

• Calculate the outputs of the hidden layer units.

i_{pj} = f_{j}^{h}(net_{pj}^{h})

• Calculate the inputs to each output layer unit

net_{pk}^{o} = ∑_{j=1}^{L} w_{kj}^{o}x_{pj} + Θ_{k}^{o}

• Calculate output

o_{pk} = f_{k}^{o}(net_{pk}^{o})

• Calculate the error terms for the output units

δ_{pk}^{o} = (y_{pk} − o_{pk})f_{k}^{o′}(net_{pk}^{o})

• Calculate the error terms for the hidden layer units

δ_{pj}^{h} = f_{j}^{h′}(net_{pj}^{h}) ∑_{k} δ_{pk}^{o}w_{pk}^{o}

Error terms on the hidden layer units are calculated before updating the connection weights to the output layer units.

• Calculate the weight updated between the output-hidden layer units

w_{kj}^{o}(t + 1) = w_{kj}^{o}(t) + ηδ_{pk}^{o}i_{pj}

• Calculate the weight updates between the hidden-input layer units

w_{ji}^{h}(t + 1) = w_{ji}^{h}(t) + ηδ_{pj}^{h}x_{i}

The error term is calculated as :

E_{p} = \frac{1}{2} ∑_{k=1}^{M} δ_{pk}^{2}

In the procedure above, i is used as an index for the input layer units, j as an index for the hidden layer units and k as an index over the output layer units.