This work was inspired by various immunological inspired coverage models, specifically models I was reading about in regard to using negative selection for novelty and anomaly detection. The outcome is the software and applet provided on this page that contains a number of Learning Vector Quantisation (LVQ) and Self-Organising Map (SOM) exemplar placement algorithms and volume filling approaches. I'm not sure where I want to take this work - it was simply the outcome of me trying out some ideas. If you are interested in extending this work or have some interesting configurations, please contact me.
The software provides a number of two-dimensional test problems that contain convex regions. The intent of the algorithms is to cover the convex regions of the domains given a set number of point samples from within the convex region - essentially learn the regions from a set number of samples. The algorithms are all SOM and LVQ based for placing and moving exemplars around the domain based on sampling. There are two main types of structures on which the algorithms can operate - conventional SOM structures; a 2D lattice each point with a coordinate on the lattice, and one-dimensional lattice where connectivity (neighbourhoods) are defined by edges and not node coordinates as in conventional SOM. This second approach was implemented to support SOM-like learning on random graphs, small world graphs, and regular graphs. These structures and algorithms were then extended in simple ways to support volume filling using squares and arbitrary adaptive polygons (the vertices of which are called satellites).
Try the latest version of the applet here.
Algorithms
Structures
This section provides example run scenarios with configuration parameters for repeatability. The scenarios provide interesting examples of what the various algorithms are capable of producing.
| Canonical Self-Organizing Map (SOM) Algorithm: SOM, 0.3, 11, 50,000, Bubble Structure: 2DLattice, 9, 11 |
|
| 1-D Lattice SOM Algorithm: Connectivity-SOM, 0.3, 10, 25,000 Structure: 1DLattice, 100, 3, 0, 0 |
|
| Canonical Learning Vector Quantization (LVQ) Algorithm: Connectivity-SOM, 0.3, 1, 25,000 Structure: 1DLattice, 100, 0, 0, 0 |
|
| LVQ with Static Radius Square Volumes Algorithm: ConnectivitySOM, 0.3, 1, 25,000 Structure: SquareVolumeMap, 100, 0, 0, 0, 22 |
|
| LVQ with adaptive Satellite Volumes Algorithm: SatelliteVolumeSOM, 0.3, 1, 50,000, 1 Structure: SatelliteMap, 100, 0, 0, 0, 4 |
|
| SOM with Adaptive Radius Square Volumes Algorithm: SquareVolumeSOM, 0.3, 7, 25,000, 0.3, 0.1 Structure: SquareVolumeMap, 100, 2, 0, 0, 20 |
The following are features I would like to add to this software over time, as well as user-requested features that I'd like to include (time permitting):