It does, as shown in all the buckets in above example ... in case of 5 and
50 they are 45 buckets apart so they need to have separate representation.

Two followup questions:

   - Can you please explain to what degree are are we allowed to neglect
   the adjacent bucket sharing bits rule once our encoding space is saturated?
   - While neglecting that rule after saturation, according to me the most
   logical assignments would be to have as many bits that need to be common
   with the closest neighbor ( in my example, for 6, I would prefer selecting
   encoding that gets highest score and is closer to bucket 1 in
   representation rather than the one that gets highest score and is closer
   to bucket 50 in representation ). What are your views on that?


*Regards,*
*Anubhav Chaturvedi*

*Birla Institute of Technology & Science, Pilani*
KK Birla Goa Campus
+91-9637399150

*" You can do anything if you stop doing everything "*


On Thu, Feb 20, 2014 at 12:03 PM, Chetan Surpur <[email protected]> wrote:

> Anubhav,
>
> Does this scheme not ensure that adjacent buckets share w-1 bits?
>
> - Chetan
> On Feb 19, 2014 9:37 AM, "Anubhav Chaturvedi" <[email protected]>
> wrote:
>
>> I will present the code in some time but till then here is an explanation
>> with example.
>>
>> Take n=10, w = 3 and r=1 ( to say that each integer itself constitutes
>> the bucket )
>>
>>  now Initially no bucket is created and the input given is 1
>> Hence any random representation can be taken.
>> *1 --> 100 010 100 0*
>>
>> Next 2 arrives,
>> its window lies from 0 to 4 ( both inclusive ) and everything else is
>> outside
>> 1 is within the window and the only bucket present
>> So it randomly chooses a representation with 2 bits differing ( i.e, 2 1s
>> maintain their place )
>> *2 --> 101 000 100 0*
>>
>>
>>
>> *------------------------------------------------------------------------------------------------------------------------------*
>>
>> *Present map state :*
>> *01 --> 100 010 100 0*
>> *02 --> 101 000 100 0*
>>
>> Now lets say there was a spike and 50 was given as input
>> Its window is from 50-3+1=48 to 50+3-1=52
>> All the existing buckets are outside its window, and it should not have
>> any bits in common with that
>> *01* or *02* = 101 010 100 0   ---- the 0s are the places that this
>> bucket should have an encoding in
>>
>> selecting any 3 bits in random satisfies the condition, with both the
>> existing buckets 1 and 2
>> hence *50 --> 010 000 011 0*
>>
>>
>> *------------------------------------------------------------------------------------------------------------------------------*
>>
>> *Present map state :*
>> *01 --> 100 010 100 0*
>> *02 --> 101 000 100 0*
>> *50 --> 010 000 011 0*
>>
>>  Now let the input be 5
>> Its window is from (5-3+1)=3 to (5+3-1)=7
>> All existing buckets are outside its window
>> *01* or *02* or *50 = *111 010 111 0           ----------  the 0s are
>> the bits this can occupy without conflict
>> Selecting the only possible encoding
>> *05 --> 000 101 000 1*
>>
>>
>> *------------------------------------------------------------------------------------------------------------------------------*
>>
>> *Present map state :*
>> *01 --> 100 010 100 0*
>> *02 --> 101 000 100 0*
>> *05 --> 000 101 000 1*
>> *50 --> 010 000 011 0*
>>
>> Now let the input be 4
>> Its window is from (4-3+1)=2 to (4+3-1)=6
>> 2 and 5 lies within the window and rest are outside
>> *01* or *50* = 110 010 111 0
>> The encoding should occupy the maximum of the places containing 0s
>> Let the possible encoding be 001 101 000 0
>> condition between 4 -- 1 > satisfied ( 2*3 bits differ )
>> condition between 4 -- 2 > satisfied ( 2*2 bits differ )
>> condition between 4 -- 5 > satisfied ( 2*1 bits differ )
>> condition between 4 -- 50 > satisfied ( 2*3 bits differ )
>>
>> Hence its fine to choose this as encoding
>> *04 --> 001 101 000 0*
>>
>>
>> *------------------------------------------------------------------------------------------------------------------------------*
>>
>>  *Present map state :*
>> *01 --> 100 010 100 0*
>> *02 --> 101 000 100 0*
>> *04 --> **001 101 000 0*
>> *05 --> 000 101 000 1*
>> *50 --> 010 000 011 0*
>>
>> Let the input be 3
>> Its window is from (3-3+1)=1 to (3+3-1)=5
>> 1, 2, 4, 5 lie in the window. 50 is outside
>> 50 = 010 000 011 0
>> The encoding should occupy the maximum of the places containing 0s
>>
>> Let the randomly chosen encoding be 101 010 000 0
>> condition between 3 -- 1 > Not satisfied ( 2 bits differ , expected 4 )
>> condition between 3 -- 2 > Satisfied ( 2 bits differ )
>> condition between 3 -- 4 > Not satisfied ( 4 bits differ, expected 2 )
>> condition between 3 -- 5 > Not satisfied ( 6 bits differ, expected 4 )
>> condition between 3 -- 50 > Satisfied ( 6 bits differ )
>> Score = 2 ( #conditions satisfied )
>>
>> Let the next possible encoding be 101 100 000 0
>> condition between 3 -- 1 > Satisfied ( 4 bits differ )
>> condition between 3 -- 2 > Satisfied ( 2 bits differ )
>> condition between 3 -- 4 > Satisfied ( 2 bits differ )
>> condition between 3 -- 5 > Satisfied ( 4 bits differ )
>> condition between 3 -- 50 > Satisfied ( 6 bits differ )
>> Score = 5 ( #conditions satisfied )  == number of existing buckets
>>
>> Hence select the encoding
>> *3 --> 101 100 000 0*
>>
>>
>>
>> *------------------------------------------------------------------------------------------------------------------------------*
>> *Overflow case*
>>
>> *Present map state :*
>> *01 --> 100 010 100 0*
>> *02 --> 101 000 100 0*
>> *03 --> 101 100 000 0*
>> *04 --> **001 101 000 0*
>> *05 --> 000 101 000 1*
>> *50 --> 010 000 011 0*
>>
>> Let the input be 6
>> Its window is from (6-3+1)=4 to (6+3-1)=8
>> 4, 5 lie in the window. 1 ,2 ,3 ,50 are outside
>> *01* or *02* or *03* or *50* = 111 110 111 0
>> The encoding should occupy the maximum of the places containing 0s
>>
>> But this is a tricky case :
>> Encoding 100 001 000 1 gets the lowest score and is closer to bucket
>> 1,2,3 in representation
>>
>> Encoding 000 001 100 1 gets median score and is closer to bucket 1,2 in
>> representation
>>
>> Encoding 010 001 000 1  }
>> Encoding 000 001 010 1  }------  gets highest score and is closer to
>> bucket 50 in representation
>> Encoding 000 001 001 1  }
>>
>> Encoding 000 011 000 1  }------  gets highest score and is closer to
>> bucket 1 in representation.
>>
>>
>> *WHICH TO CHOOSE?? *
>> According to me the last option is better and more logical in this case
>> but we will have to think more carefully the selection condition.
>>
>> This exercise did get a lot more things clear, things i was stuck at
>> while coding.
>>
>> Please provide your feedback.
>>
>> *Regards,*
>> *Anubhav Chaturvedi*
>>
>> *Birla Institute of Technology & Science, Pilani*
>> KK Birla Goa Campus
>> +91-9637399150
>>
>> *" You can do anything if you stop doing everything "*
>>
>>
>> On Wed, Feb 19, 2014 at 12:04 AM, Chetan Surpur <[email protected]>wrote:
>>
>>> To be clear, I don't mean necessarily in code, I mean just a simple
>>> email explanation using a toy example.
>>>
>>>
>>> On Tue, Feb 18, 2014 at 1:28 AM, Anubhav Chaturvedi <
>>> [email protected]> wrote:
>>>
>>>> Sure , I can try that. I will be using the same testing technique as
>>>> used in Fergal Byrne's example (http://fergalbyrne.github.io/rdse.html)
>>>> .
>>>>
>>>> *Regards,*
>>>> *Anubhav Chaturvedi*
>>>>
>>>> *Birla Institute of Technology & Science, Pilani*
>>>> KK Birla Goa Campus
>>>> +91-9637399150
>>>>
>>>> *" You can do anything if you stop doing everything "*
>>>>
>>>>
>>>> On Tue, Feb 18, 2014 at 11:24 AM, Chetan Surpur <[email protected]>wrote:
>>>>
>>>>> Hi Anubhav,
>>>>>
>>>>> Thanks for sharing your thoughts on this. Do you think you can show a
>>>>> small example of your algorithm?
>>>>>
>>>>> Thanks,
>>>>> Chetan
>>>>>
>>>>>
>>>>> On Sat, Feb 15, 2014 at 4:35 PM, Anubhav Chaturvedi <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi
>>>>>>
>>>>>> Chetan Surpur presented a great idea of RDSE. The video got me
>>>>>> thinking if I could optimize it a bit and here is what I came up with.
>>>>>> Please provide your feedback.
>>>>>>
>>>>>> URL :
>>>>>> https://docs.google.com/document/d/1obYHE4-3q-oR1zbazUJWLTXBIzmt3GlG0wcKVT_Ohgg/edit?usp=sharing
>>>>>>
>>>>>> I have tried to optimize it for memory and convergence of two
>>>>>> extremes of representation.
>>>>>>
>>>>>> *Regards,*
>>>>>> *Anubhav Chaturvedi*
>>>>>>
>>>>>> *Birla Institute of Technology & Science, Pilani*
>>>>>> KK Birla Goa Campus
>>>>>> +91-9637399150
>>>>>>
>>>>>> *" You can do anything if you stop doing everything "*
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>>>>
>>>>
>>>
>>> _______________________________________________
>>> 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
>
>
_______________________________________________
nupic mailing list
[email protected]
http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org

Reply via email to