I was reading about Multi Layered Perceptron(MLP) and how can we learn pattern using it. Algorithm was stated as
- Initiate all weight to small values. Compute activation of each neuron
- using sigmoid function. Compute the error at the output layer using
- $\delta_{ok} = (t_{k} - y_{k})y_{k}(1-y_{k})$
- compute error in hidden layer(s) using
- $\delta_{hj} = a_{j}(1 -a_{j})\sum_{k}w_{jk}\delta_{ok}$
- update output layer using using
- $w_{jk} := w_{jk} + \eta\delta_{ok}a_{j} ^{hidden}$
- and hidden layer weight using
- $v_{ij} := v_{ij} + \eta\delta_{hj}x_{i}$
Where $a_{j}$ is activation function, $t_{k}$ is target function,$y_{k}$ is output function and $w_{jk}$ is weight of neuron between $j$ and $k$
My question is that how do we get that $\delta_{ok}$? and from where do we get $\delta_{hj}$? How do we know this is error? where does chain rule from differential calculus plays a role here?