The concept of competitive learning combined with neighborhood neurons gives us Kohonen SOMs. Every neuron in the output layer has two neighbors. The neuron that fires the greatest value updates its weights in competitive learning, but in SOM, the neighboring neurons also update their weights at a relatively slow rate. The number of neighborhood neurons that the network updates the weights is based on the dimension of the problem.
For a 2D problem, the SOM is represented as follows:
Diagrammatically, this is how the SOM maps different colors into different clusters:
Let us understand the working of Kohonen SOM step-by-step: