Consider the following single layer architecture:
where:
Here is the trainning algorothm for a single layer neural network:
Initialize weights \( w_{ij} \) with arbitrary values
Repeat
Pick a training example <\( x \),\( \check{o}\)> (x is the input, \( \check{o} \) is the expected output)
Compute the sum for each neuron: \( S_j = \sum\limits_{i=1}^N w_{ij}x_i \)
Compute outputs (\( o \)) of the network: \( o_j = f(S) \)
For each output, compute the error: \( \delta_j = ( \check{o}_j - o_j ) \)
Update each synaptic weights of the network: \( w_{ij} = w_{ij} + \eta.\delta_j.x_i.\frac{df(S)}{dS} \)
Until the training set is empty