I want to implement HTML operations on natural language processing.
I cannot use both Natural Language Processing libraries and HTM libraries at the same time, due to version incompatibility.

When applying the first overlap for spatial pooling, I will choose the original SDRs (2000 items, each one w <= 4, n = 16), start, ie input sdr, or select random (different wx). If I choose randomly, will my original SDR values ​​not disappear? There should be one for each SDR if I will produce more SDRs. These generated SDRs will be overlap with random vectors.
"Properties of Sparse Distributed Representations
and their Application to Hierarchical Temporal
Memory "In this article, the calculation of Overlap values ​​is given as multiplication.
What is the point? Is the overlap value the match value?

  1. My question is what should I choose the boosting value at startup.

I failed this stage. Thank you. I look forward to your answers.

What do you mean by this? What are you trying to do? How are you generating semantic SDRs for the HTM system?

This is probably a language problem, but I don’t understand this statement. What do you mean by “applying the first overlap”? The SP process takes representations in one space and translates them semantically into another space (active minicolumns). Random input will create random output, but if one random input is semantically similar to another, the SP output for both should have high overlap.

I suggest a low boosting value like 0.2. Definitely between 0 and 1.

1 Like

Thank you very much for your answers.
NLP libraries are working on python version 3 and above. HTM Python libraries are working with version 2.7. I can’t work the two together. I write my own HTM codes.

I’ve created SDRs on sentences for each word. So each word has its own SDRs. For each SDR, I store values ​​such as w, s in the numpy array. (I have read Numenta’s semantic folding article.)

Subutai Ahmet (“Properties of Sparse Distrubuted …” article name) writes input vector. And this input vector is multiplied by a random matrix. Will I write the original SDR of each word instead of this input vector? Or, are these vector subsamples?

I will create input vectors according to your response and overlap with NxC random matrix. In this article (Subutai Ahmet), overlap counts values ​​are given [8 2 … 10 0]. I will calculate the inhibition and active state values ​​for each new SDR.

As a result, I understand. Each original SDR has sub-samples. For each subsample, the overlap count will be calculated separately, respectively. And each sub-sample has inhibiton and active state values.

I would be glad if you help me. I need your help a lot.

For a python 3 HTM implementation, you could also use htm.core. See the python examples.

Just a correction: that is not a Numenta publication. That is from our partner company Cortical.IO.

Are you trying to write your own Spatial Pooler? This is helpful to understand the algorithms. But if you are trying to build something with HTM, I suggest you use an existing implementation.

1 Like