This is not a direct answer but maybe usefull. I had similar problem but in NLP context memorizing phrases. I've developed an special Sequence Memorizer based on CLA which has not this problem. Any repetitive/non-repetitive sequences can be memorized. Just note that in my implementation there is no spatial pooler but just temporal pooler.
View source at: https://github.com/softnhard/Adaptive-Sequence-Memorizer El Mié 06/05/2015, 20:26, cogmission (David Ray) <[email protected]> escribió: > Nevertheless, in this case, it looks like the implementation should >> "protect" that. I.e. don't perform compute() in temporalMemory if >> activeColumns in "t" are equal to "t-1". > > > Repetitions are significant in the sequence. Remember, we're not > "calculating", we're simply activating columns and cells in a pattern; > reinforcing affinities of connections - not doing operations which yield a > "final result". We're modeling neural circuitry not building an equivalent > formula calculator? It takes some getting used to :-) > > Actually, the implementation is *totally* event-driven. If there are no > inputs, nothing happens! :-) > > David > > > On Wed, May 6, 2015 at 10:48 AM, Valentin Puente <[email protected]> > wrote: > >> >> >> 2015-05-06 17:27 GMT+02:00 cogmission (David Ray) < >> [email protected]>: >> >>> Valentin, >>> >>> >>>> Perhaps, I have some crazy idea about what is going on. I think that >>>> the notion of "t" and "t-1", implicitly asumes a synchronous circuit. >>>> Nevertheless, biology don't have any clock around... definitely is >>>> asynchronous. Under such assumption the previous sequence is not possible, >>>> since all the repeated values are the same. Therefore, I think that the "t" >>>> and "t-1" should be redefined as the time where the "input changed". If we >>>> feed the memory with the same input sequence in t and t-1 something is >>>> going to be bad at the end. >>> >>> >>> HTM Theory does not have any real "time" so to speak. We're talking >>> about sequences, and yes in the biology (I just recently overheard this), >>> there are "serial" cell/column events. Now, "t-1" refers to the state the >>> cell/column was left in during the previous activation - cells "depolarize" >>> making them quicker to fire (and subsequently beat out the race against >>> inhibitory cell activations); the resulting "depolarization" is what is >>> modeled as the state in t-1 (AFAIK). >>> >>>> >>> >> Thanks David. I understand now (being used to circuits, this is a bit >> hard for me :-) >> >> Nevertheless, in this case, it looks like the implementation should >> "protect" that. I.e. don't perform compute() in temporalMemory if >> activeColumns in "t" are equal to "t-1". >> >> -- >> vpuente >> >> PS: Perhaps the implementation is too "time-driven". I think that a >> "event-driven" approach could be more close to the reality (besides have >> better performance... especially given the sparsity of the problem). >> > > > > -- > *With kind regards,* > > David Ray > Java Solutions Architect > > *cortical.io <http://cortical.io/>* > Sponsor of: HTM.java <https://github.com/numenta/htm.java> > > [email protected] > http://cortical.io >
