Introduction
In competitive learning, we have inhibitory connections between nodes but in this we also have excitatory connections. Also we utilize topology in SOMs, we define some neighbourhood distance metric that defines the region around each node grouping it with its neighbours.
Algorithm
So if the neighbourhood Nj(t)={j}∪{\mboxneighboursofj\mboxattimet} where j is the winner node, and i is the input vector at time t, then the weight change rule is: wl(t+1)={wl(t)+η(t)(i−wl(t)),wl(t),\mboxifl∈Nj(t)\mboxifl∈Nj(t) 1. select network topology 2. initialize weights randomly, and select D(0)>0 (this is the neighbourhood distance metric at time 0) 4. while (computation bounds not exceeded): 1. select i from dataset 2. find winner node j 3. update weights for each l∈Nj(t): wl(t+1)={wl(t)+η(t)(i−wl(t)),wl(t),\mboxifl∈Nj(t)\mboxifl∈Nj(t)where 0<η(t)<η(t−1)<1 and weights of all non-neighbouring nodes are unchanged. 4. Reduce D(t) and η after a time interval t′