In the C++ community fork, we’re considering dropping support for several features which are not biologically plausible, but which may be useful nonetheless.
Summary of the features in question:
BacktrackingTM
This is a variant of the Temporal Memory algorithm. It is specialized for anomaly detection, and on the Numenta Anomaly Benchmark it scores approximately 5% higher than the regular Temporal Memory.
- It is not biologically plausible.
- Numenta has stopped working on it in favor of the regular TM.
- It should probably only be used for anomaly detection.
- It is not in the published literature. Details about how it works are hard to find, and even we the maintainers can not explain what all of the code does.
TopDownCompute & Decode
The purpose of both of these methods is to do the inverse of the HTM algorithms. The decode methods reverse the encoding process, taking an encoded SDR and returning which inputs likely created it. The TopDownCompute methods reverse the HTM algorithms, and find the inputs which likely resulted in the output.
- None of the core algorithms currently support these methods.
- The Spatial Pooler process could in theory be reversed, but this is unimplemented and unproven.
- The Temporal Memory can not be inverted, these methods simply can not be implemented for it.
- There are fundemential limitations on the accuracy of these methods, since the HTM discards a significant amount of information.
My questions to you all are:
- Do you use any of these features, currently or maybe in the future?
- If yes, for what applications do you use these features? Tell us about your use cases.
We will leave this discussion open until April 10th before making a decision and acting on it.