Self-Organizing Maps (SOMs)
A map that organizes itself
A Self-Organizing Map (SOM), introduced by Teuvo Kohonen in the early 1980s, is one of the oldest unsupervised neural network architectures still taught today. Its goal is simple to state: take high-dimensional data and arrange it onto a low-dimensional grid (usually 2D) such that points that are similar in the original high-dimensional space end up near each other on the grid. It is dimensionality reduction with an explicit spatial, topological structure — unlike PCA or t-SNE, the SOM's output is literally a grid of neurons, each representing a prototype region of the input space.
The architecture: a grid of prototype vectors
A SOM consists of a grid of nodes (e.g., a 10x10 grid = 100 nodes). Each node has a weight vector of the same dimensionality as the input data — effectively, each node is a prototype sitting somewhere in the original high-dimensional space. There are no hidden layers, no backpropagation, and no explicit loss function in the usual deep learning sense — the entire model is just this grid of vectors, updated through a competitive learning rule.
Training: competitive learning and neighborhood updates
For each training example, the SOM finds the single closest node by distance — the Best Matching Unit (BMU). Then it updates not just the BMU but all of its neighbors on the grid, pulling them slightly toward the input vector too, with the strength of the pull decreasing with grid distance from the BMU. This is the mechanism that creates topological organization: neighboring grid nodes are forced to represent similar regions of input space, because they get updated together whenever any of them wins.
Both the neighborhood radius and the learning rate are shrunk over training — early on, large neighborhoods create the map's rough global layout; later, small neighborhoods refine local detail.
Note
SOMs vs. other dimensionality-reduction / clustering tools
| Method | Output structure | Preserves neighborhood topology? | Needs gradient descent? |
|---|---|---|---|
| Self-Organizing Map | Fixed 2D grid of prototypes | Yes, by construction | No — competitive learning |
| PCA | Linear projection to k dimensions | Only approximately, linearly | No — closed-form (eigendecomposition) |
| t-SNE / UMAP | Non-linear 2D/3D embedding | Yes, locally, but no fixed grid | No — specialized optimization |
| Autoencoder | Learned latent vector | Not guaranteed | Yes |
| k-means | Cluster assignment + centroids | No — no spatial relationship between clusters | No — iterative but not gradient-based |
Note
What's next
SOMs show that useful representations don't need gradient descent at all. Capsule Networks return to the gradient-based world but ask a related structural question: instead of a flat grid of prototypes, can a network explicitly represent parts, wholes, and the poses relating them?
I build these systems professionally.
Whether it's a RAG pipeline, analytics migration, or AI workflow — let's talk.