numenta / htmresearch

Experimental algorithms. Unsupported.
GNU Affero General Public License v3.0
223 stars 109 forks source link

Preliminary validation of new proposal for temporal pooler #344

Open SaganBolliger opened 8 years ago

SaganBolliger commented 8 years ago

In discussions with @ywcui1990 and @scottpurdy a new proposal for doing temporal pooling has emerged. This proposal involves doing both spatial and temporal pooling simultaneously using the existing spatial pooler as is. The only change is a modification to synapses: physiologically, when a cell fires a miniburst the metabotropic receptors are activated causing the synapse to continue to provide input to its post-synaptic column in the next hierarchical level even after the pre-synaptic cell stops firing. The result of this is that the SP columns see a union pooled input over active-predicted cells.

I see two main advantages of this new proposed mechanism:

  1. Biological plausibility. In the current standard TP it is unclear how a single population of neurons can implement all of the algorithmic steps. @ywcui1990 has proposed that higher-order thalamic nuclei are involved in union pooling. While involving a second population of neurons may provide a satisfactory explanation, it requires an additional level of biological complexity that is not required by the proposed mechanism. Instead, the current proposal uses only the accepted neuronal mechanisms involved in the SP and TM with the single addition of metabotropic receptors in synapses between hierarchical regions to implement the UP. Thus the current proposal has a full neural explanation using known neural properties.
  2. Algorithmic simplicity. If it does turn out that the proposed temporal pooling mechanism exhibits the desired properties, these properties will have been achieved using significantly less algorithmic complexity. The current standard TP algorithm involves three distinct algorithmic steps, 3 learning rules, several pieces of additional state, and a second instantiation of the SP (the "modified SP") for every hierarchical level. In contrast, the proposed temporal pooler requires only one algorithmic step performed on the inputs of the existing SP and no additional learning rules. Only one additional piece of state must be stored beyond that of the SP and TM: the time since the last miniburst of each cell from which we can determine which synapses are active. Occam's razor suggests that we should choose the simplest algorithm that gives the desired properties.

In this issue I am proposing to implement and test the proposed temporal pooling mechanism. Implementation will be straightforward as it involves using the standard SP with a simple temporal convolution on the inputs. Once built, I want to determine whether the proposed temporal pooler exhibits desired properties that are exhibited by the current standard TP. In particular, I wish to test the following.

  1. Whether the standard SP learning rule will cause increased temporal stability. As in the research on the current standard TP, this will be measured as the average duration that a bit remains active.
  2. In addition to overall stability, I want to test that both forward and backward learning occur. Specifically I will test that bits are not only active longer after learning, but that they also become active earlier and cease to be active later than they do before learning.
  3. Finally, I want to test whether the proposed temporal pooling mechanism produces increased uniqueness after learning. In general, the TM produces completely unique representations in response to different learned input sequences. However, in the absence of TM, it would be interesting to see whether the proposed temporal pooler produces increased separation of similar but distinct learned sequences. While this property is not necessary, @scottpurdy and I hypothesize that this property may also hold.
ywcui1990 commented 8 years ago

:+1: Some clarifications: