SOM bug fix and periodic boundary conditions #355
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There are two main changes:
-The Kohonen layer is updated with each sample, not just on each iteration. This prevents an issue where if the learning rate * the number of sample was > 1, the Kohonen layer was driven to extreme values.
-The Kohonen layer now has periodic boundaries. This is introduced through precomputing the influence array, then rolling it to the appropriate location for each sample.
(-) a new variable, self._dqdshape, is introduced to make computing the influence layer faster, as it now only needs to be calculated once per iteration and its shape does not change.
Both of these changes have a new test in test_som.py
Hopefully this helps! Apologies if I've done anything wrong, I'm quite new to github.