Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SP with global inhibition should always obey numActiveColumnsPerInhArea #3420

Open
mrcslws opened this issue Dec 1, 2016 · 0 comments
Open

Comments

@mrcslws
Copy link
Contributor

mrcslws commented Dec 1, 2016

See discussion: numenta/nupic.core-legacy#1164 (comment)

With local inhibition, the inhibitionRadius varies with the statistics of the input, so if you're using the numActiveColumnsPerInhArea parameter, for certain inputs you might end up with way more active columns than you want, because the inhibition areas might be small. So it's probably better to use the localAreaDensity when using local inhibition. Anyway, the code does some work to minimize this effect: it makes sure to use a density no greater than 0.5. https://github.com/numenta/nupic/blob/fbd7ac40a23a536317c76b85089e90f5bc5f1fe2/src/nupic/research/spatial_pooler.py#L1400

This logic also happens in the boosting code.

So this check is addressing the problem that numActiveColumnsPerInhArea is awkward with local inhibition. We should move this check into the local inhibition code path. The global inhibition path should simply obey the parameters, since the inhibitionRadius is predictable and doesn't change with the statistics of the input.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant