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

Reply via email to