Growing neural gas

The growing neural gas (GNG) algorithm is capable of incrementally learning the topology of arbitrary input data by observing random sample points.

Details

I started out with a simple uniform random distribution sampled from a square, and then tried a more difficult dataset.

Growing neural gas

Growing neural gas

Beautifying the nodes and edges with attenuated lighting.

Growing neural gas

Growing neural gas

Growing neural gas

I then textured each node with its degree, entirely with a shader and texture array.

Growing neural gas

Growing neural gas

Implemented support for a utility factor (GNG-U), in order to handle non-stationary data.

Learning the topology of a sphere.

Growing neural gas

Learning the topology of a torus.

Growing neural gas

Learning the topology of complex and discontinuous piecewise data.

Growing neural gas

Growing neural gas