How to create SP variation?

hi ,i am searching for different varieties of the SP algorithm. Like there’s the Numenta way and a non-Numenta way.Which does the same job of removing redundant information but in a different manar. but up to now I can not find any thing. can any one help me to create a new variation of SP algorithm of Numenta? (for example is it possible to change some of the SP variable in this algorithm and make different SDR output? , if yes which parameters is better to change? I test some off the parameters like seg_threshold and syn_th and nothing change in output).
(I use this code

Basic Spatial Pooler Example contains a simple spatial pooler demonstration written in python)
can any one help me and change this code for different SDR?

You can change a ton of stuff. Have you played around with the parameters here? You can change the potential pool params, k as well as these and see what happens:

Screen Shot 2020-02-07 at 8.44.12 AM

(Actually the “connection distribution” setting is something I added, not sure it is in the original NuPIC.)

@rhyolight I thínk for creating the variations of SP or TP, we need to know the min and max value of each parameter.
Is there any documentation which give us a hint how to set the min and max values?

I do not know of such a resource. It’s an open playground! Let us know if you find something interesting. :smiley:

1 Like

I want to calculate the Rényi divergence between the input data to the Spatial pooling algorithm and the output data from the Spatial pooling algorithm.I used a simple NuPIC code to do this. Now I want to compare the output divergence with the output divergence of the other SP variation method. I tried the parameters mentioned above but the divergence value did not change.Only when I change the number of active columns does the divergence change.But I think it’s not right to change the number of active columns and then compare the divergence.My question is how to create a new variation of SP?
please help me to solve this problem

There are a lot of things you might do. Just off the top of my head (none of these are biologically-inspired):

  • change the potential pool logic
  • change the boosting algorithm
  • change the initial connection parameters and logic
  • modify the k-winners calculation to something different
1 Like

Could you please give me the modified code ?I don’t know any of these things
Please do this

I’m sorry, I can’t. The code doesn’t exist. These are just ideas.

Could you please explain more about these ideas and tell me exactly what to do
For example, how to change the boosting algorithm?
What should I put instead of the k-winners and …?

That’s a big ask. I think you will need to do this research yourself.