stephantul / somber Goto Github PK
View Code? Open in Web Editor NEWRecursive Self-Organizing Map/Neural Gas.
License: MIT License
Recursive Self-Organizing Map/Neural Gas.
License: MIT License
All recurrent SOMs would benefit from some kind of batching scheme. I currently have batched code, but it doesn't work. My hunch is that batching the recurrent/recursive/merging SOM is non-trivial because there is no way of making sure the concurrently processed batches converge on the same BMU.
Because we take the mean over batches, this means that updates will generally end up being more noisy as the batch size increases.
Two starting ideas:
A possible solution could be to initialize the context Weights and weights of the SOM to some value which allows for convergence (e.g. the weights are skewed in such a way that the concurrently processed batches all go in the same direction), but this entails setting the parameters in advance, which kind of defeats any purpose the SOM has.
A second solution would be to slowly increase the batch size, allowing the SOM to converge to something stable first, and then increasing batch size.
The PLSOM2 is an interesting candidate for addition to SOMBER, for the following reasons:
It would require changing the updates routine and parameter update routine in the PLSOM.
Dependabot couldn't authenticate with https://pypi.python.org/simple/.
You can provide authentication details in your Dependabot dashboard by clicking into the account menu (in the top right) and selecting 'Config variables'.
The Merge som is working, so we perhaps could implement the Gamma Som, which uses a generalization of the Merge Som context function (see here (behind a paywall unfortunately)).
The Merge Som Best Matching Unit (BMU) calculation takes into account the BMU at the previous time step, together with its context weight, as follows:
context = (1 - self.beta) * self.weights[prev_bmu] + self.beta * self.context_weights[prev_bmu]
As context weights reflect the previous activation, you can use a merge som to "step back in time"
Generalizing over this, the Gamma Som defines a BMU function which takes into account the k
previous BMUs explicitly (so the Merge Som can be defined as a Gamma SOM with k = 1
). This makes the Gamma Som computationally more expensive than the Merge Som, but also more powerful.
Adding the Gamma Som will require relatively few changes, but I don't have any need for it currently.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.