Self-organising maps (or Kohonen maps) are an fascinating form of neural networks: they don’t observe the identical form of structure and are undoubtedly skilled otherwise from the same old backpropagation strategies. There’s a good motive for this: they’re meant for use for unsupervised learning. They’re to the same old multi-layer neural networks what Okay-Means is to SVM. They create clusters; they discretise the info house. However they’ve one factor that makes them totally different from different clustering strategies: The clusters that they create type 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 house.
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, particularly 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 project: quick SOM coaching on knowledge with hundreds of options. I had tried present libraries, together with these primarily based on PyTorch, and was not fairly happy, so I made my very own: ksom (admittedly additionally as a result of it’s enjoyable to do, particularly as a technique to get higher at utilizing PyTorch).