Adjacent buckets should always share w-1 bits, even if the encoding space is being saturated. During saturation, buckets far away are more likely to have unwanted overlapping bits, that's all.
Is that the case with your proposal? On Feb 20, 2014 1:22 AM, "Anubhav Chaturvedi" <[email protected]> wrote: > 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 > >
_______________________________________________ nupic mailing list [email protected] http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
