Learning vector quantization

From Wikipedia, the free encyclopedia
Revision as of 22:46, 19 June 2025 by imported>OAbot (Open access bot: url-access updated in citation with #oabot.)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

In computer science, learning vector quantization (LVQ) is a prototype-based supervised classification algorithm. LVQ is the supervised counterpart of vector quantization systems. LVQ can be understood as a special case of an artificial neural network, more precisely, it applies a winner-take-all Hebbian learning-based approach. It is a precursor to self-organizing maps (SOM) and related to neural gas and the k-nearest neighbor algorithm (k-NN). LVQ was invented by Teuvo Kohonen.[1]

Definition

An LVQ system is represented by prototypes W=(w(i),...,w(n)) which are defined in the feature space of observed data. In winner-take-all training algorithms one determines, for each data point, the prototype which is closest to the input according to a given distance measure. The position of this so-called winner prototype is then adapted, i.e. the winner is moved closer if it correctly classifies the data point or moved away if it classifies the data point incorrectly.

An advantage of LVQ is that it creates prototypes that are easy to interpret for experts in the respective application domain.[2] LVQ systems can be applied to multi-class classification problems in a natural way.

A key issue in LVQ is the choice of an appropriate measure of distance or similarity for training and classification. Recently, techniques have been developed which adapt a parameterized distance measure in the course of training the system, see e.g. (Schneider, Biehl, and Hammer, 2009)[3] and references therein.

LVQ can be a source of great help in classifying text documents.Script error: No such module "Unsubst".

Algorithm

The algorithms are presented as in.[4]

Set up:

  • Let the data be denoted by xiD, and their corresponding labels by yi{1,2,,C}.
  • The complete dataset is {(xi,yi)}i=1N.
  • The set of code vectors is wjD.
  • The learning rate at iteration step t is denoted by αt.
  • The hyperparameters w and ϵ are used by LVQ2 and LVQ3. The original paper suggests ϵ[0.1,0.5] and w[0.2,0.3].

LVQ1

Initialize several code vectors per label. Iterate until convergence criteria is reached.

  1. Sample a datum xi, and find out the code vector wj, such that xi falls within the Voronoi cell of wj.
  2. If its label yi is the same as that of wj, then wjwj+αt(xiwj), otherwise, wjwjαt(xiwj).

LVQ2

LVQ2 is the same as LVQ3, but with this sentence removed: "If wj and wk and xi have the same class, then wjwjαt(xiwj) and wkwk+αt(xiwk).". If wj and wk and xi have the same class, then nothing happens.

LVQ3

File:Apollonian circles.svg
Some Apollonian circles. Every blue circle intersects every red circle at a right angle. Every red circle passes through the two points Template:Mvar, and every blue circle separates the two points.

Initialize several code vectors per label. Iterate until convergence criteria is reached.

  1. Sample a datum xi, and find out two code vectors wj,wk closest to it.
  2. Let dj:=xiwj,dk:=xiwk.
  3. If min(djdk,dkdj)>s, where s=1w1+w, then
    • If wj and xi have the same class, and wk and xi have different classes, then wjwj+αt(xiwj) and wkwkαt(xiwk).
    • If wk and xi have the same class, and wj and xi have different classes, then wjwjαt(xiwj) and wkwk+αt(xiwk).
    • If wj and wk and xi have the same class, then wjwjϵαt(xiwj) and wkwk+ϵαt(xiwk).
    • If wk and xi have different classes, and wj and xi have different classes, then the original paper simply does not explain what happens in this case, but presumably nothing happens in this case.
  4. Otherwise, skip.

Note that condition min(djdk,dkdj)>s, where s=1w1+w, precisely means that the point xi falls between two Apollonian spheres.

References

  1. T. Kohonen. Self-Organizing Maps. Springer, Berlin, 1997.
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "Citation/CS1".
  4. Script error: No such module "citation/CS1".

Further reading

  • Script error: No such module "Citation/CS1".
  • Script error: No such module "Citation/CS1".

External links

  • lvq_pak official release (1996) by Kohonen and his team