I wasn’t going to post this until I had results to publish, but people are starting to talk about it now. So at the risk of generating a lot of abstract discussion… Really, I’d prefer it if we could ground this in concrete examples, standard test problems. (It is crazy there aren’t standard test problems for spatial pooling.)
–
How is HTM spatial pooling[*] significantly different from mainstream neural networks? I think it is this: that learned patterns are only a positive signal, the “on” bits; there is no negative signal to indicate an anti-match (to a dendrite’s template) as you have in SOM or ANNs:
- SOM units match the input vector to a full template – which input bits should be “on” and which should be “off”.
- Neural network units can have negative synaptic weights, meaning those input bits should be “off” to match.
HTM neurons are like this because they are modelling excitatory connections, leaving inhibitory connections as implicit in the process of k-winner-takes-all selection. Presumably neuroscience has shown that the important neuron-specific learned connections are excitatory. (?)
From a functional perspective, matching on positive-only subsets may seem to be important in recognising patterns from unions of several input patterns, as in:
- visually-occluded objects (spatial pooler)
- matching one of multiple simultaneous predictions (temporal memory)
However, (deep learning) neural networks and SOM seem to do just fine in feature learning and recognition.
I’m not convinced that positive-only matching works well enough.
@subutai’s mathematical work showed that due to sparsity a positive-only match is very likely to be “correct”. However I think it can be misleading to consider random SDRs, the world is defined by richly structured correlations. I’ve started looking at images and natural language for more realistic input.
–
So in HTM any input which has enough overlap will match the same target. Example: an input image of a “3” with only positive pixels can match the learned template for “8” (visually, the shapes overlap). I call this the subset matching problem. And columns will continue to learn on such partial matches; they are greedy, they may agglomerate too much.
Possible responses:
- currently we rely on an indirect mechanism: any different but overlapping pattern will likely have fewer matches to the original template so may lose out in inhibition to other random columns.
- this is supposed to be enhanced by the “boosting” mechanism.
- I remain to be convinced.
- there’s a tension between robust recognition and discrimination here.
- the input could be encoded with a positive representation of empty space or edges/boundaries. However,
- the subset matching problem still applies, to some subset of those edges etc.
- I don’t see how this could apply in general at other levels, from region to region; this isn’t a problem just at the initial input level.
–
Branched from bbHTM Spatial pooler/mapper implementation since @mraptor used Hamming distance like SOM which actively matches “off” bits.
[*] In fact this issue applies to both spatial pooling (proximal dendrite matching) and temporal memory (distal dendrite matching).