I am new to HTM and trying to utilize it for timeseries anomaly detection.
I am confused about how much the temporal memory is actually remembering as it moves through the timeseries.
Is there a certain way to tune the TM’s memory size or lookback window? How can we determine if it’s remembering from a day ago or a week ago etc.?
Thank you for joining the forum.
Something you need to understand is that time is relative to an HTM system (and to all biological intelligence). How far back the TM remember will depend on many things, including the input data interval & permanence increment / decrement values. You can find a lot of these params in the TM API docs. If you are using the BacktrackingTM, there are more params you can use to control this, like maxAge, globalDecay, maxInfBacktrack, maxLrnBacktrack, etc. These are useful for time series anomaly detection.
But the most important thing to keep in mind is how you are encoding time in the input with regards to the interval data flows into the system. If you are
We can’t currently identify the exact sequences that are causing the predictions / anomaly indications without some form of pooling. For lots of discussion on this, see Exploring the "Repeating Inputs" problem.
The TM is a continuous learning algorithm that builds an accumulated memory of the entire history. So at any moment it is remembering any sequential transition in the history that seems relevant given the current input and context.
Thinking about biological brains, they have to be able to remember and draw on whatever time scale is relevant from the total history given the current moment. For instance most of what I do throughout the day is based on memories I’ve formed in the last several months, though some is based just on yesterday and some comes from childhood.