There are a couple of problems with NuPIC’s temporal memory system when used as a prediction engine:
-
Temporal pooling is not implemented within the 1-layer SP/TM structure. We don’t understand exactly how to identify what sequences a spatial input has been observed within. The information may be there in the data between the cells, but walking through the neurons to uncover it is prohibitively expensive. Your brain couldn’t be working that way either. So there must be some other way, and that’s one of the things we’ve been researching for the past couple years. In our current research work, we refer to it as a “pooling layer”, and we implement this type of feature using a 2-layer structure. That seems to be how it is done in the brain.
All our NuPIC examples of temporal anomaly detection contain the 1-layer SP/TM configuration, where temporal pooling doesn’t work. That is why predictions are not as good as they should be, because we are not informed about the possible sequences we are currently within at any given time.
-
Sequence start/stop must be manually marked. This is a problem we haven’t solved yet. It may have to do with attention, it may require apical feedback.
That being said, NuPIC is good at anomaly detection, because we can extract anomalies scores from the cellular states without needing #1 or #2 above. An indication that behavior is strange might be more valuable than a somewhat accurate prediction.