This relieves us from the burden of predefining the network's size which is rather determined during the unsupervised training process. The weight vector of this unit is initialized as the average of all input data. Just to summarize the training algorithm, an input pattern is selected randomly and presented to the neural network. Each unit determines its activation according to the distance between its weight vector and the input vector. The unit showing the smallest distance, i.e. the winner, as well as a number of units in the vicinity of the winner are adapted.
Adaptation is performed as a gradual reduction of the difference between the vector's components.
After the adaptation, the winner will be more similar to the input pattern. This training process is repeated for a fixed number l of training iterations. Ever after l training iterations the unit with the largest deviation between its weight vector and the input vectors represented by this very unit is selected as the error unit. In between the error unit and its most dissimilar neighbor in terms of the input space either a new row or a new column of units is inserted. The weight vectors of these new units are initialized as the average of their neighbors.