Some beginner questions

  • is there is an aggregation thread for small questions like these? It seems wasteful to start a new topic for small questions like these
  • I was looking at these lines in the scalar encoding source. As I am rebuilding some stuff in nodejs (you only understand it properly if you can build it), I figured the number of bits for w=5, resolution=0.5, min=1, max=10 would be 23, rather than 22:
    1.0 11111000000000000000000
    1.5 01111100000000000000000
    2.0 00111110000000000000000
    2.5 00011111000000000000000
    3.0 00001111100000000000000
    3.5 00000111110000000000000
    4.0 00000011111000000000000
    4.5 00000001111100000000000
    5.0 00000000111110000000000
    5.5 00000000011111000000000
    6.0 00000000001111100000000
    6.5 00000000000111110000000
    7.0 00000000000011111000000
    7.5 00000000000001111100000
    8.0 00000000000000111110000
    8.5 00000000000000011111000
    9.0 00000000000000001111100
    9.5 00000000000000000111110
    10.0 00000000000000000011111
  • For an adaptive scalar encoder, would it make sense to not adjust the min and max value, but just add more bits. For spatial pooling you would need to add more connections to the newly created bits when that happens, but I would guess the impact on the already learned permanences would be less.
  • I feel quite a bit of intelligence is hidden in creating an appropriate encoder for your domain (much like the problem of the universal problem solver was that you needed the rules to begin with). Are there any efforts to create encoders using, for example, a DNN autoencoder?

As I mentioned, I started recreating the HTM basics in Typescript in Nodejs. Following the HTM School videos, implementing SDRs and Encoders. Next bit is a Spatial Pooler, followed by a Temporal Pooler (waiting for the HTML School video…) These can be found here:

1 Like

I don’t have time to answer your questions right now (sorry I am packing for a trip to the Midwest for a funeral), but here’s my JS source code for HTM School (SDRs and encoders, etc).

This repo just holds the JavaScript client codebase, which serves pages to a browser and proxies HTM commands to another server that runs NuPIC and stores cellular state history in Redis.

So can anyone else help @rikkertkoppes out with the questions in my absence? :smile: