Self-organising maps (or Kohonen maps) are an fascinating form of neural networks: they don’t comply with the identical form of structure and are positively skilled otherwise from the standard backpropagation strategies. There’s a good motive for this: they’re meant for use for unsupervised studying. They’re to the standard multi-layer neural networks what Ok-Means is to SVM. They create clusters; they discretise the info area. However they’ve one factor that makes them totally different from different clustering strategies: The clusters that they create kind a map of the info (a grid of clusters) the place the gap between clusters in that map represents the gap that exists between the typical members of these clusters within the knowledge area.
As a result of they’re barely atypical, there has not been as a lot work achieved on creating environment friendly implementations of self-organising maps (SOMs) as for different types of neural networks, specifically with respect to enabling them to deal with extremely dimensional knowledge on GPUs (i.e., they’re usually used on knowledge with not various dozen options). Too dangerous, since that’s precisely what I wanted for a challenge: quick SOM coaching on knowledge with 1000’s of options. I had tried current libraries, together with these based mostly on PyTorch, and was not fairly glad, so I made my very own: ksom (admittedly additionally as a result of it’s enjoyable to do, particularly as a method to get higher at utilizing PyTorch).