Hypothetical TP?

Would the following hypothetical algorithm match somehow the expectation of Temporal-Pooler.
Not the feedback part, only the requirement of stable unique output part.

Let say the TM generate sequence of SDR’s : s1, s2, s3, s4, s5, …

The algorithm is very simple every step we pick randomly 50% of the ON bits of the two neighboring SDRs. f.e. ( let f50() be the operation pick 50% of the ON bits)

   TP1 = f50(s1) | f50(s2)
   TP2 = f50(TP1) | f50(s3)
   TP3 = f50(TP2) | f50(s4)
   TPn = f50(TP_n-1) | f50(s_n+1)

i.e. TP-SDR is a trailing SDR, because f.e. TP2 has 25% of s1, 25% of s2 and 50% of s3TP3 has 12.5% of s1, 12.5% of s2 , 25% of s3 and 50% of s4 … and so on …


Hello mraptor,

I’ve studied this in depth. I too came to your hypothetical solution, tested it, and found that it does not work. The problem is that the overlap** between any two consecutive SDRs should be determined by the underlying data. At the extremes: you could have a stationary input (which should yield nearly 100% overlap); or a completely different input (which should yield very low overlap). But this hypothetical solution has a constant hardcoded overlap, regardless of the situation.

However this does shed light on how to correctly analyze the stability of a temporal pooler.

I have a different theory about how the TP works. I measured the overlap between consecutive SDR’s to verify that it works. Here is my report about it: https://github.com/ctrl-z-9000-times/sdr_algorithms/blob/master/ascii_stability.pdf

I hope this helps.

** The overlap between two SDR’s is the fraction of bits which are ON in both SDRs. It is a measure of similarity.

1 Like

What if the overlap is based on function which somehow calculates the size/ratio of the overlap based on last several SDRs i.e. not 50/50 ?

f.e. the bigger the overlap between current TM and TP, the smaller the portion of current TM used and vs versa.

thinking louldy if overlap is 10% then pick 10% of TM and 90% of TP, !! hmm… cant yet wrap my mind of the logic to select correct percentage, yet

1 Like

I use similarity measure sometimes instead of overlap (it is more stable and is %)

sim = olap(x,y) / |x|

so what about :

pick-random% of TM-sdr = 0.5 * (1-sim)

the bigger the sim the smaller the % from TM-sdr.

=========exp avg =======

this is a different way for % of bits to change/borrow :

%change += rate * ( 1 - %similarity)

I think your new idea is circular. It uses the overlap to determine what the overlap should be.

I also think you misunderstood the different layers in the cortex. The TM & TP are different cell populations.

no… I think of it as … it is using overlap to decide how many bits to copy from both SDR’s … to the final SDR i.e. what portion stays the same and what changes.
if they are similar it changes a little, if they differ then it changes alot …