Nicholas, do you need any help creating a GitHub issue for the problem you brought up earlier?
https://github.com/numenta/nupic/issues/new --------- Matt Taylor OS Community Flag-Bearer Numenta On Sat, Aug 9, 2014 at 10:28 AM, Chetan Surpur <[email protected]> wrote: > Nick, > > Thanks for looking into this. Please file an issue in GitHub, and someone > will investigate. > > - Chetan > > On Aug 9, 2014 6:55 AM, "Nicholas Mitri" <[email protected]> wrote: >> >> Chetan, >> >> On the topic of encoders and specifically Scalar encoders, there seem to >> be some mistakes in the scalar.py. >> Resolution = (max - min)/(n-w) = range/(n-w) and radius = resolution * w. >> >> In the scalar.py documentation: >> >> You could specify resolution = 0.5, which gives >> 1 -> 11111000... (22 bits total) >> 1.5 -> 011111..... >> 2.0 -> 0011111.... >> [resolution = 0.5; n=22; radius=2.5] >> >> >> It should be 23 bits instead of 22. Same mistake is done in the >> implementation details: >> >> Implementation details: >> >> -------------------------------------------------------------------------- >> range = maxval - minval >> h = (w-1)/2 (half-width) >> resolution = radius / w >> n = w * range/radius (periodic) >> n = w * range/radius + 2 * h (non-periodic) >> >> The last equation for n results in n = range/res + (w-1) => res = >> range/(n-w+1) which is not what the code or the above calculations state. >> I’m not sure if I’m missing a condition that would allow for both >> equations in different scenarios, but I thought I’d bring yours and Matt’s >> attention to this. >> >> best, >> Nick >> >> >> >> On Aug 4, 2014, at 10:45 PM, Nicholas Mitri <[email protected]> wrote: >> >> Chetan, Fergal, and David, >> >> Thank you for your feedback! Your comments are very helpful. >> Really appreciate you taking the time to answer my questions thoroughly. >> >> Best, >> Nick >> >> >> >> >> On Aug 4, 2014, at 9:00 PM, Chetan Surpur <[email protected]> wrote: >> >> Hi Nick, >> >> Great questions. Adding to the other answers that have been sent, here are >> my clarifications to some of your questions (out of order): >> >> 2- The wiki refers to encoder outputs as SDRs. Is that necessarily the >> case and if so, to what properties of encoder design is that requirement >> attributed to? (i.e. why do I need an SDR to be the output of the encoder as >> opposed to a binary vector unconstrained in density?) >> >> >> Not necessarily. Encoders can output any kind of binary vector, and the >> spatial pooler will convert them into SDRs. Most of the encoders that >> currently exist output a sparse binary vector because that makes it easy to >> distinguish between different outputs. But this is not a hard requirement. >> >> 1- Are there any specific properties that encoders need to have when >> designing one? What’s the rationale behind them if they exist? >> >> >> As Fergal mentioned, semantic similarity between inputs should translate >> to overlapping bits in the outputs. The rationale is simply that this will >> allow the CLA to generalize more easily between similar inputs. Otherwise >> learning would be slower. >> >> 3- Is there a biological counterpart for encoders in the general sense? >> >> >> Our biological sensors, like our retinas or cochleas. They have an >> evolutionarily-driven hard-coded way of generating electrical activations >> that have the above properties, and allow the lowest levels of the cortex to >> learn patterns quickly. >> >> - Chetan >> >> On August 2, 2014 at 5:50:47 AM, Nicholas Mitri ([email protected]) >> wrote: >> >> Hey all, >> >> Just a few quick questions about encoders I’d appreciate some feedback to. >> >> 1- Are there any specific properties that encoders need to have when >> designing one? What’s the rationale behind them if they exist? >> 2- The wiki refers to encoder outputs as SDRs. Is that necessarily the >> case and if so, to what properties of encoder design is that requirement >> attributed to? (i.e. why do I need an SDR to be the output of the encoder as >> opposed to a binary vector unconstrained in density?) >> 3- Is there a biological counterpart for encoders in the general sense? >> 4- Encoders perform quantization on the input stream by binning similar >> input patterns into hypercubes in feature space and assigning a single label >> (SDR or binary representation) to each bin. The encoder resolution >> determines the size of the hypercube. The SP essentially performs a very >> similar task by binning the outputs of the encoder in a binary feature space >> instead. City block distance determined by a threshold parameter controls >> the size of the hypercubes/bins. Why is this not viewed as a redundant >> operation by 2 consecutive modules of the HTM design? Is there a strong case >> for allowing for it? >> 5- Finally, is there any benefit to designing an encoding scheme that bins >> inputs into hyperspheres instead of hypercubes? Would the resulting >> combination of bins produce decision boundaries that might possibly allow >> for better binary classification performance for example? >> >> Thanks! >> Nick >> >> >> >> >> _______________________________________________ >> 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
