← all experiments

Self-Organizing Map

Experiment № 050 · August 1, 2026

Show the data cloud
Samples seen0 Neighbourhood σ– Learning rate α– Fit error– unfolding…

drag on the canvas to pour new data · the sheet will reach for it · press h to hide the panel

Experiment № 050 · The story

Self-Organizing Map

Why I picked it

Forty-nine experiments in, this collection had physics, chemistry, fractals, flocks and economics — but nothing that learns. The self-organizing map, which Teuvo Kohonen published in 1982, is the oldest neural network I know that you can watch with your own eyes rather than read off a loss curve, because its weights are coordinates: every neuron is literally a point on the screen. The training rule is three lines. Show it one random data point; find the single neuron nearest to that point; drag that neuron a little way toward it — and drag its lattice neighbours along too, by a hair, because they are wired to it. Repeat, shrinking the pull and the neighbourhood as you go. I wanted the fiftieth piece to be the one where a knot of nonsense in the middle of the screen teaches itself the shape of the world around it.

What I enjoy about it

The unfolding. It always starts as a tangled ball — every neuron initialised to almost the same place — and for the first few seconds it thrashes, then it opens, like a paper flower dropped in water, and settles onto the cloud. Two things keep me watching. The first is that the mesh never crosses itself once it has untangled: neurons that are neighbours in the lattice stay neighbours on the screen, which is the whole point and also the whole difficulty. The second is what happens with the Ring — the sheet has to cover a shape with a hole in it, and since it can only stretch, never tear, it ends up wasting a band of neurons across the empty middle, visibly stretched thin. Switch to Chain and the same rule becomes a travelling-salesman solver, a single thread threading the cloud. Best of all: drag anywhere to pour fresh data, and watch the map lean bodily out of shape to go and cover it.

Something you might take away

Every map of something complicated is a compromise between two things it can't both keep — who is near whom, and how far apart everything is. The SOM chooses neighbourhoods and sacrifices distances, which is exactly the bargain that t-SNE and UMAP make in every embedding plot you have ever squinted at: the clusters are trustworthy, the gaps between them mostly are not. You can see the lie here, in the stretched band across the ring's hole — neurons sitting on emptiness because their neighbours needed them to. So when you are handed a two-dimensional picture of a many-dimensional thing, the useful question isn't "is this accurate?" but "what did it choose to preserve, and what did it have to stretch to do it?"