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

Reply via email to