Thanks Marcus, that makes a lot of sense, and should inform me when I talk about this in the spatial pooling episodes of HTM School. ;)
--------- Matt Taylor OS Community Flag-Bearer Numenta On Fri, Apr 1, 2016 at 11:13 AM, Marcus Lewis <[email protected]> wrote: > RE: Matt > > Great questions. :) > > I think it's easiest to explain by example. If topology were enabled for > Hotgym, it'd be impossible for a column to represent "42kW at 12pm". The > input consists of side-by-side encodings for timestamp and power > consumption. The columns' receptive fields would be small contiguous > subsections of the input. So columns would tend to represent "the > timestamp" or "the power consumption" but not both. I think this would be a > Bad Thing, not taking full advantage of what the spatial pooler can do. > Yes, there are counterexamples to every sentence in this paragraph. > > Topology is useful when the location of a bit is meaningful. The obvious > example is vision. In V1 of the cortex, topology is very meaningful. Inputs > from the retina are mapped onto the cortex without getting "scrambled". It > makes sense to use topology with the spatial pooler when the input is an > image. But this does limit what features can be represented; if a feature > spans a large space, a column will be unable to detect it. A couple > possible responses to this are: > > 1. Distal connections are still capable of detecting arbitrary > features, assuming your Temporal Memory isn't using topology. > 2. Hierarchy solves all the things. > > > On Fri, Apr 1, 2016 at 9:49 AM, Marcus Lewis <[email protected]> wrote: > >> Ha, not a problem. >> >> (This email assumes global inhibition and no topology.) >> >> If you create a spatial pooler and give it a single input, you >> essentially generate a random SDR. The likelihood of any particular column >> being active is independent of its position and independent of nearness to >> other active columns. >> >> The mapping from inputs to outputs isn't random. And the set of possible >> outputs isn't random either, they'll be interrelated, i.e. some sets of >> outputs are more likely than other sets of outputs. >> >> But if you stumble upon a spatial pooler in the wilderness, its first >> output *is* randomly distributed. >> >> >> On Fri, Apr 1, 2016 at 8:30 AM, cogmission (David Ray) < >> [email protected]> wrote: >> >>> Marcus! >>> >>> My apologies, reading Matt's email I realize I never congratulated you >>> on creating a great blog post - these things take a lot of work and in my >>> rush to right the confusion in my world, I didn't acknowledge that! Again, >>> my apologies! >>> >>> I guess the topic was so riveting I got caught up, eh? >>> >>> (My question(s) still stand though for anyone who can answer? I'd >>> appreciate it) >>> >>> Cheers, >>> David >>> >>> On Fri, Apr 1, 2016 at 9:50 AM, Matthew Taylor <[email protected]> wrote: >>> >>>> Great blog post, Marcus! Of course it begs the question... "how does >>>> topology affect the function of spatial pooling?" >>>> >>>> Also, "when would you want to use topology?" >>>> >>>> --------- >>>> Matt Taylor >>>> OS Community Flag-Bearer >>>> Numenta >>>> >>>> On Fri, Apr 1, 2016 at 12:53 AM, Marcus Lewis <[email protected]> >>>> wrote: >>>> >>>>> Hi all, >>>>> >>>>> Here's a quick post: *The column SDR that wasn't random enough* >>>>> <http://mrcslws.com/blocks/2016/03/31/column-sdr-not-random-enough.html> >>>>> >>>>> I noticed an issue with my spatial pooler, and I couldn't think of why >>>>> it was happening. This blog post is my debugging notes. :) >>>>> >>>>> Marcus >>>>> >>>> >>>> >>> >>> >>> -- >>> *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 >>> >> >> >
