Jeff san,

Thank you very much for sharing the information.  Very insightful.

This OS community is the unique place to me where I can gain this kind of
knowledge.


2013/8/30 Jeff Hawkins <[email protected]>

> “Could you expand a little on what biological problem you're referring to
> here?****
>
> -Mike”****
>
> ** **
>
> Ok, but I suspect it is beyond most people’s interest level,  I don’t want
> to confuse anyone.  But for those that are interested….****
>
> ** **
>
> The neurons in the CLA can be in a “predictive state”.  Biologically this
> is a cell that is depolarized.****
>
> The neurons in the CLA can be in an “active state”.  Biologically this is
> equivalent to firing or generating one or more spikes.****
>
> These two states are sufficient for learning sequences, but not for
> temporal pooling.****
>
> The addition of temporal pooling requires a third state which I don’t like
> because it is a little tricky to make it work with real neurons.****
>
> ** **
>
> When we first implemented the CLA we started with sequence memory and
> everything worked fine.  After a bunch of testing we added temporal
> pooling.  With temporal pooling the cells learn to predict their feed
> forward activation earlier and earlier.  It works like this.  First a cell
> becomes active due to a feed forward input.  It then forms synapses that
> allow it to predict its activity one step in advance.  Later it becomes
> active one step in advance and then forms synapses that allow it to predict
> its activity two steps in advance, and so on.  (The system doesn’t require
> discreet steps but it is easier to think about it that way.)  Over repeated
> training, a cell learns to be active over longer and longer sequences of
> patterns.  This is cool for a number of reasons.  A cell will learn to be
> active for as much time as it can correctly predict its future activity.
> If the world consists of a few long repeatable sequences then cells will be
> active over long periods of time.  The data determines how much pooling a
> cell can do.  The more pooling that can be done at one level of the
> hierarchy the easier the job of the next level.  It also suggests why we
> can learn new tasks very quickly (i.e. learn a new sequence) but to master
> something, to make something second nature, requires many repetitions.  I
> mentioned this in On Intelligence when I said with practice knowledge gets
> represented lower and lower in the hierarchy.  As a region gets better at
> temporal pooling it frees the memory in the next region for more advanced
> inference.****
>
> ** **
>
> The problem is cells that are pooling over time must be active/spiking,
> not just depolarized as in sequence learning.  When cells become active by
> pooling in advance of feed forward activation, it messes up the sequence
> memory.  The CLA can’t tell the difference between activation because of a
> real world feed forward input and activation because of pooling.  What
> happens is the CLA doesn’t wait for real input and sequences runaway
> forward in time.****
>
> ** **
>
> For pooling to work the CLA needs to distinguish between cell activation
> due to feed forward input and cell activation due to pooling. We need two
> different states for an active cell.****
>
> ** **
>
> There is an elegant biological solution to this but the evidence is
> equivocal.  The solution is: when a cell is activated due to feedforward
> input it generates a short burst of action potentials, three to five.  It
> does this once and then stops.  When a cell is activated by pooling it
> generates a series of spaced out spikes.  Believe it or not there are quite
> a few papers that suggest this could be happening.  There is evidence of
> short bursts prior to a steady firing pattern.  The mini-bursts are in the
> literature, easy to find.  I spoke to several scientists and they report
> seeing them. Some claim they see them at the beginning of every trace.
> However, others say they never see the mini-busts.  The best evidence for
> mini-bursts is in layer 5 cells (yes the motor ones that also project up
> the hierarchy).  These cells are called “intrinsically bursting” cells to
> reflect this behavior.  For temporal pooling to work I think we also need
> to see this mini-bursting behavior in layer 3.  Mini-bursts are seen in
> layer 3 but not by everybody. The evidence is much spottier.  It is
> possible that all layer 3 cells exhibit this behavior and scientists are
> not reporting them.  Perhaps there are different classes of layer 3 cells
> and only some mini-burst.   I wish the evidence was more conclusive.****
>
> ** **
>
> For the mini-bursting hypothesis to be correct a cell has to behave
> differently when receiving a mini-burst than when receiving regular spaced
> spikes.  Here too the evidence is good.****
>
> ** **
>
> The synapses that form on distal dendrite branches (sequence and pooling
> memory synapses) are far more effective when they get a burst of quick
> spikes in a row.  A thin dendrite amplifies the effect of multiple spikes
> because thin dendrites don’t leak current quickly and they have low
> capacitance.  Thus a burst of spikes on multiple synapses may be necessary
> for our dendrite segment coincidence detector to work.  A single spike
> won’t do it.  If a cell produces single spikes(not mini-bursts) when
> activated by a distal dendrite branch then sequences won’t run away.  This
> is what we need, it solves our problem!****
>
> ** **
>
> Conversely, axons that project up the hierarchy form synapses on proximal
> dendrites (the SP synapses).  Here, because the synapses are close to the
> big cell body and the dendrites have large diameters there is large current
> leakage and low capacitance.  It has been shown that the first arriving
> spike on a proximal synapse has a large effect (depolarization) but
> subsequent spikes in a mini-burst have a much diminished effect.  This is
> good because we don’t want the spatial pooler in the higher region to be
> overly influenced by the mini-bursts.  We want the SP to look at all active
> axons equally, those that are mini-bursting and those that are single
> spiking via pooling.  This is another nice validation of the theory.****
>
> ** **
>
> If you have followed all of this you see that the mini-burst hypothesis
> solves the issues of pooling in a hierarchy and it is supported by a lot
> biological evidence.  It is a pretty cool explanation for why we see
> mini-bursts in layer 5 cells.  My only worry is that the evidence for
> mini-bursting in layer 3 cells is spotty.  If everyone said all layer 3
> cells are intrinsically bursting like forward projecting layer 5 cells I
> would be much happier.  All in all the theory holds together remarkably
> well and I don’t have another one, so I am sticking with it for now.****
>
> ** **
>
> Of course none of this matters for the SW implementation, but I have found
> over and over again that if you stray from the biology you will get lost.*
> ***
>
> Jeff****
>
> ** **
>
> ** **
>
> *From:* nupic [mailto:[email protected]] *On Behalf Of *Michael
> Ferrier
> *Sent:* Thursday, August 29, 2013 11:40 AM
> *To:* NuPIC general mailing list.
> *Subject:* Re: [nupic-dev] Inter-layer plumbing****
>
> ** **
>
> >> There is a biological problem with pooling the way we implemented that
> I never resolved.  So it is a work in progress.****
>
> ** **
>
> Hi Jeff,****
>
> ** **
>
> Could you expand a little on what biological problem you're referring to
> here?****
>
> ** **
>
> Thanks!****
>
> ** **
>
> -Mike****
>
>
> ****
>
> _____________
> Michael Ferrier
> Department of Cognitive, Linguistic and Psychological Sciences, Brown
> University
> [email protected]****
>
> ** **
>
> On Thu, Aug 29, 2013 at 2:29 PM, Jeff Hawkins <[email protected]>
> wrote:****
>
> Here are some thoughts about how to connect CLA’s in a hierarchy.****
>
>  ****
>
> Here are some things we know about the brain.****
>
>  ****
>
> - Layer 3 in the cortex is the primary input layer.  (Sometimes input goes
> to layer 4 and layer 3, but layer 4 projects mostly to layer 3 and layer 4
> doesn’t always exist.  So layer 3 is the primary input layer. It exists
> everywhere.  We will ignore layer 4 for now.)****
>
>  ****
>
> - I believe the CLA represents a good model of what is happening in layer
> 3.****
>
>  ****
>
> - The output (i.e. axons) of layer 3 cells project up the hierarchy
> connecting to the proximal dendrites (SP) of the next region’s layer 3.***
> *
>
>  ****
>
> - This isn’t the complete picture.  The axons  of cells in layer 5 (the
> ones that project to motor areas) spit in two and one branch also projects
> up the hierarchy to layer 3 in the next region.  If we aren’t trying to
> incorporate motor behavior then we can ignore layer 5 and say input goes
> from layer 3 to layer 3 to layer 3, etc.  Or CLA to CLA to CLA, etc.****
>
>  ****
>
> Each cell in layer 3 projects to the next region, so the input to a region
> is the output of all the cells in the previous region’s layer 3.  If we
> consider our default CLA size there would be 64K input bits to the next
> level in the hierarchy.   Because of the distributed nature of knowledge it
> isn’t necessary that all cells in layer 3 project to the next region, as
> long as a good portion do we should be ok.  But assume they all do.****
>
>  ****
>
> 64K is a lot of input bits but the SP in the receiving region can take any
> number of bits and map them onto any number of columns.   That is one of
> the nice features of the SP, it can map an input of any dimension and
> sparsity to an number of columns.****
>
>  ****
>
> That’s it for the “plumbing”.  Now comes the tricky part.****
>
>  ****
>
> We, and many others, believe that a large part of how we recognize things
> in different forms is the brain assumes that patterns that occur next to
> each other in time represent the same thing.  This is where the term
> “temporal pooler” comes from.  We want cells to respond to a sequence of
> patterns that occur over time even though the individual patterns don’t
> have common bits.  The classic case are cells in V1 that respond to a line
> moving across the retina.  These cells have learned to fire for a sequence
> of patterns (a line in different positions as it moves is a sequence).  The
> cell remains active during the sequence.  Thus the outputs of a region are
> changing more slowing than the inputs to a region.  This basic idea is
> assumed to be happening throughout the cortex.  Temporal pooling also makes
> more output bits active at the same time.  So instead of just 40 cells
> active out of 64K you might have hundreds.****
>
>  ****
>
> The CLA was designed to solve the temporal pooling problem.  When we were
> working on vision problems the temporal pooler was the key thing we were
> testing.  We have disabled this feature when using the CLA in a single
> region because makes the system slower.  The temporal pooler without the
> “pooling” is still needed for sequence learning.****
>
>  ****
>
> There is a biological problem with pooling the way we implemented that I
> never resolved.  So it is a work in progress.****
>
>  ****
>
> Conclusion:  to connect two CLAs together in a hierarchy, all the cells in
> the lower region become the input to the next region.  But there are some
> difficult issues you might need to understand to get good results depending
> on the problem.****
>
> Jeff****
>
>  ****
>
>  ****
>
>  ****
>
> *From:* nupic [mailto:[email protected]] *On Behalf Of *Tim
> Boudreau
> *Sent:* Wednesday, August 28, 2013 4:29 PM
> *To:* NuPIC
> *Subject:* [nupic-dev] Inter-layer plumbing****
>
>  ****
>
> Is there a general notion of how layers should be wired together, so that
> one layer becomes input to the next layer?****
>
>  ****
>
> It seems like input into one layer is pretty straightforward - in ascii
> art:****
>
>  ****
>
> bit bit bit bit bit bit bit bit****
>
>  |       |   |       |       |****
>
>  ------proximal dendrite w/ boost factor---> column****
>
>  ****
>
> But it's less clear****
>
>  - If we have the hierarchy input -> layer 1 -> layer 2, what constitutes
> an input bit to layer 2 - the activation of some combination of columns
> from layer 1?****
>
>  - How information about activation in level 2 should reinforce
> connections in layer 1****
>
>  ****
>
> Any thoughts?****
>
>  ****
>
> -Tim****
>
>  ****
>
> -- ****
>
> http://timboudreau.com****
>
>
> _______________________________________________
> nupic mailing list
> [email protected]
> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org****
>
> ** **
>
> _______________________________________________
> nupic mailing list
> [email protected]
> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
>
>
_______________________________________________
nupic mailing list
[email protected]
http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org

Reply via email to