Self-Organized Map

SOM is the way that our prototypes are project onto one or two dimensional space. KK prototypes mjRp,  j=1,...,Km_j \in \mathbb{R}^p, \;j=1,...,K are parametrized with respect to an integer coordinate pair ljQ1×Q2,  Q1={1,2,...,q1},  Q2={1,2,...,q2},  K=q1q2l_j \in Q_1\times Q_2, \; Q_1=\{1,2,...,q_1\},\;Q_2=\{1,2,...,q_2\},\;K=q_1\cdot q_2 . In this setting, prototypes can be viewed as "buttons" on the principal component plane in a regular pattern. At first, the prototypes mjm_j are initialized, and these are updated. For all neighbors mkm_k of the closest prototype mjm_j to xix_i, we have mkm_k move toward xix_i via this update.

mkmk+α(ximk)m_k \leftarrow m_k+\alpha(x_i-m_k)

The neighbors of mjm_j are defined to be all mkm_k such that the distance between ljl_j and lkl_k is small. The small is determined by a threshold rr. This distance is defined in the space Q1×Q2Q_1 \times Q_2. The sophisticated version is as follows.

mkmk+αh(ljlk)(ximk)m_k \leftarrow m_k +\alpha h(||l_j-l_k||)(x_i-m_k)

If we set the threshold rr small enough so that each neighborhood contains only one point, then the spatial connection between prototypes is lost. In that case SOM algorithms becomes an online version of K-means clustering. Thus, we can call SOM a constraint version of K-means, and the constraint is that the prototypes are projected on lower dimension.

Last updated

Was this helpful?