Python ETM: Apical segments on predicted cells are reused even if they're not matching
mrcslws opened this issue · comments
Marcus Lewis commented
There are a few big issues here:
- Apical segments are never grown from predicted cells. They're only grown from bursting cells.
- Apical segments on predicted cells will be reused during learning even when they aren't matching. Segments will be overused.
- Additional bug: No learning happens if all of the cell's segments have 0 active synapses. This line should start with
maxActiveSynapses = -1
. Of course, this issue will go away when we start using theminThreshold
.
This code needs to be much different: https://github.com/numenta/nupic.research/blob/5230a39e3adf9f62aa16d146ad8415d0bfb9f7da/htmresearch/algorithms/extended_temporal_memory.py#L425
It should find the best matching segment, and if there are no matching segments it should grow one.