Logo name

Competitive learning

From Piki

  • Currently3.00/5
Jump to: navigation, search

Competitive learning is a class of unsupervised learning algorithms based on the idea of adjusting a weight matrix in such a way that the weights represent cluster centers.

Contents

Basic concepts

The basic unit of operation in competitive learning is most commonly known as an "artificial neuron" which is a very misleading name as it has nothing at all in common with either biological neurons or the artificial neurons found in regular artificial neural networks. A more suitable name would perhaps be "artificial particle" or "agent", but in this text we will use another name that is also sometimes used in the literature: "unit". While it may be a very non-descriptive term, it is better than the misleading "artificial neuron" and more convenient than making up new names for it.

These "units" are essentially special type of data points. The big difference between them and the regular data points is that the units are dynamic – they have active behavior and change their position based on rules and algorithms. The most simple type of unit, the basic competitive unit can be seen as a 'magnetic' data point – gravitating towards other data points. It is attracted to data, and the nearer another data point lies, the more attracted the unit gets to it and moves towards it. If a unit is close to a cluster of data points, it will gravitate towards it. Other, more distant clusters will attract it as well, but with a much weaker force.

For the mathematically inclined, the change in the position of the unit for each data point can be expressed as follows:


\Delta{p} = \alpha{(p-x)}d(p,x)}


The vector p is the position of the unit and the vector x is the position of the data point. The \alpha is a factor called “learning rate" and it regulates how fast the unit will move towards the data point. The function d(p,x) is a distance scaling function – the larger the distance between p and x, the smaller d(p,x) will be. Expressed in plain English, it would be something like this: the change in position of the unit equals a learning rate multiplied with the difference between the positions of the unit and the data point scaled by the distance between the unit and the data point.

Observe the animated gif below: the small black dots are data points while the large green dots are the units. Look how they move:

Competitive learning illustrated
Competitive learning illustrated

The time honored tradition in the field of neural networks is that for each slight modification of an existing algorithm, a brand new name is given to the algorithm. Competitive learning is no exception – there are tons of minor varieties that go under different names, but they are all essentially based on the same basic principle of units moving in the general direction of nearby data points.


Algorithm

\Delta W=\sum_{k=1}^R \alpha (X^T-W_k)

where \alpha is the learning rate, X is the input vector and W is the weight vector.

Competitive update rules in Synapse

Synapse includes a numeber of different competitive algorithms including:

See also

This page was last modified 17:32, 30 January 2008.  This page has been accessed 1,842 times.  Disclaimers