Algorithm
Assign each output node j to an existing class label Initialize all weights w∈[0,1] while(network is not converged): Adjust η(t) for xk in dataset: win_j = closest wj to xk for all j for l = 1; i<=n; i++: if x_k.class() == w_j.class: Δwj,l=η(t)(xk,l−wj,l) else: Δwj,l=η(t)(xk,l−wj,l)