K-Means / Neural-Gas
The neural-gas algorithm is a generalization of the k-means algorithm. The difference is, that every example vector is not assigned to a single class but to more than one class. It will be assigned to the closest class with a high weight and to other classes with smaller weights. After an iteration, the mean of a class is replaced by the weighted average of all assigned vectors.
This way, the neural gas algorithm is smoother, every class gets to see all data (some with a very low weight). The neural-gas algorithm uses a temperature value t which defines what weight will be given to the closest class and to the second closest class etc. The weights decay exponentially with the increasing distance-rank of the classes. Such the the n-th-closest class gets a weight of exp(-n/t).
We can clearly see that the closest class (the one ranked n=0) always gets the weight 1.0. If the temperature is higher then the more distant classes get a better weight, if the temperature is infinite, then every class gets the weight 1.0.
In Janus we usually use a very low temperature and decrease the temperature every iteration such that in the end it is virtually zero, and the neural-gas algorithm resembles the k-means algorithm.