Continuing the discussion from Time nuances in reception of inputs:
I’ve recently been pondering the existence of a type of temporal grid cell module (TGCM) that advances in time in a manner similar to how the SDRs of regular spatial grid cell modules (SGCM) shift in response to spatial (or conceptual) shifts in the current input.
The actual representation for a temporal GCM could be an SDR, similar to the spatial GCM; however, since they are advancing with time, they would be highly dynamic. In fact, they would probably manifest themselves as a set of repeating pulses at one or more characteristic frequencies - a specific time scale for each module (e.g. alpha, beta, theta?) similar to the specific length scales in spatial GCMs. These characteristic frequencies could shift slightly to accommodate small variances in the rate at which the temporal sequences arrive at the input. (This could address the timing problem that @jhawkins mentions occasionally.)
These temporal GCMs could also be subject to certain synchronizing events that anchor the representation. However, rather than responding to spatial patterns, a TGCM will synchronize whenever a familiar temporal sequence is recognized. Perhaps there are even time cells analogous to place cells. (This mechanism might be able to address the restart problem with the current temporal memory implementation. @Paul_Lamb.)
I would be interested in hearing your thoughts on this proposal. I’m also open to collaborating on an implementation of this concept to explore its potential further.
So this would only need to be a 1D module, right?
I like the idea of TGCM but really do not understand what kind of input of TGCM? For continuous learning, it‘s input may be time distance between 2 repeated bucket indices, because it contains information of the sequence length
Perhaps. It would depend on how it is implemented.
At a minimum, you would need to have a population of cells that are simply firing in sequence with some prescribed amount of delay to control the time scale. In this instance, you could imagine it as a 1D grid cell module that just continue to propagate at a specific rate in a given direction with wrapping around.
10000010000010000 -> 01000001000001000 -> 00100000100000100 -> …
For the 1D case, the firing rate could be controlled by the number of cells in the module and/or the spacing between the on cells.
However, if you needed this module to provide a temporal synchronization signal to a 2D cortical column, then I can see the implementation as part of a 2D grid cell module where the orientation and/or spacing of the the cells in the module might be factors influencing the firing rate.
The purpose of the temporal GCM is not necessarily to parse any particular input (although it’s behavior could possibly be modulated by some input signal). It’s purpose is to maintain a consistent representation of the passing of time, similar to how the spatial GCM maintains a representation of location in space. So, when observing some some sequence, a column close to the sensor input will have as part of it’s input to layer 4 (SP/TM) an SDR representing the current time or duration since the last anchoring event.
If this works the way I think it will, we should begin to see a synchronization of this time signal with specific moments in an observed sequence.
For example, hearing an A-note begin would be the temporal trigger to anchor the TGCM to the A-note context. From that moment on, the TGCM continues to propagate forward in time, in essence keeping track of the duration of the context. Depending on the context, after certain durations the column might start generating predictions about the next note in the sequence. (e.g. we might expect one set of subsequent notes after a 1/16 interval, another after an 1/8 inteval, etc.) Thus, the duration of a note becomes part of the sequence context that’s being predicted by the TM.
If for some reason, the duration is not exactly the same as a previous experience, there might be a feedback signal to the TGCM to increase or decrease the rate at which it is advancing. We can adjust our predictions about where we are in space based on feedback cues about how fast we are moving. In a similar manner, we should be able to adjust our expectations of sequences of events based on feedback related to the temporal spacing of events in a known sequence.