The parameters for the NAB HTM detector are specified here. Notice that
wrapAround is not specified, which means it defaults to True (src/nupic/alogrithms/spatial_pooler.py#L251 – sorry I’m new so I can only post 2 links!).
If I’m understanding this correctly, the purpose of
wrapAround is to tell the spatial pooler that the last bit and the first bit of the input SDR are neighbors (i.e. that the input encoding is circular). Given that the input SDR is an RDSE-encoded scalar value concatenated with a circularly encoded time of day, it doesn’t seem right to me to tell the spatial pooler that the first and last bit are neighbors – they’re encoding completely independent concepts!
Is it just a coincidence that the best-performing model had a spatial pooler with
wrapAround set to True? Is it a mistake? Am I misunderstanding this?