Hello Daniel,

On 11/06/2015 11:27 PM, Daniel McDonald wrote:
Hi Wakan,

It may be helpful for you to study the HTM white paper [1] to understand
the terminology of the HTM algorithms.  My comments presumed that you
understand the basic terminology and algorithms as described in this paper.
I did, but English is not my native language so It is a bit difficult for me.



A "column" refers to a column in the HTM, which is either active or
not.  Input to the HTM may cause a column to become active (think,
binary "1" value) or inactive (think, binary "0" value).  The cells in a
column determine if the HTM predicts the column to become active on the
next step.  The details of this are described clearly in the white paper.
I've seen also Jeff Hawkins -
Principles of Hierarchical Temporal Memory (HTM): Foundations of Machine Intelligence
https://www.youtube.com/watch?v=6ufPpZDmPKA
http://www.slideshare.net/numenta/2014-10-17-numenta-workshop

And several other videos where this was mentioned but never follow how those columns work (slide 21). Need to look at this one more time.


The HTM works on bit patterns, not numbers.  Every number you provide to
the HTM must be translated to a bit pattern.  That is what the encoders
do.  I have never used OPF, so I can't advise you on it.  Similarly, the
prediction of the HTM is a bit pattern (predicted columns are 1's and
not predicted columns are 0's).  To get back to a number, the bit
pattern must be decoded.  You may find it helpful to study the comments
and source code for the Scalar Encoder [2] to get a feel for the
translation of numbers to bit patterns.  It is very important to
understand how that works if you want to understand HTM.
I understand that everything needs to be encoded to SDR. Encoders are responsible for that and if I understand correct then CLA classifier holds some kind of lookup table to translate SDR back to meaningful value. What you are using instead of OPF?


My point was that the HTM may make precise predictions or diffuse
predictions and the anomaly score may be low in both cases.  A precise
prediction corresponds to a small number of predicted columns (a
predicted bit pattern with few 1's).  A diffuse prediction corresponds
to a large number of predicted columns (a bit pattern with many 1's).
In the former case, the HTM only knows of a single or small number of
next possible patterns in the temporal sequence, while in the latter
case, it may know many possible next steps in the sequence.  Both
scenarios can result in a low anomaly score as long as the actual bit
pattern (the active columns in the next step) highly overlaps with the
predicted bit pattern (the predicted columns in the previous step).

[1] http://numenta.org/resources/HTM_CorticalLearningAlgorithms.pdf
[2]
https://github.com/numenta/nupic/blob/master/src/nupic/encoders/scalar.py
You've mentined that you figured out what is going on with your data on NY hackathon. Using do yo have some debugging tools or how?


Thank you very much

Reply via email to