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 >> > >
