Skip to content
This repository was archived by the owner on Sep 1, 2023. It is now read-only.
This repository was archived by the owner on Sep 1, 2023. It is now read-only.

ETM suggestion: Use apical segments when determining the learning cell #611

@mrcslws

Description

@mrcslws

Relevant code: https://github.com/numenta/nupic.core/blob/8a846d1d897440bc6ca1e46120520da166bc551a/src/nupic/experimental/ExtendedTemporalMemory.cpp#L616

I didn't change the algorithm at all, I just put all the logic for "learning cell" selection in one place.

When a column is bursting, we choose a cell to learn on. The current selection process is:

  • if the column has matching basal segments
    • use the cell with the best matching basal segment
  • else use the least used cell.

We should start also considering apical segments. Here's a trivial addition:

  • if the column has matching basal segments
    • use the cell with the best matching basal segment
  • if the column has matching apical segments
    • use the cell with the best matching apical segment
  • else use the least used cell.

We could go further and give preference to a cell that has both a matching apical and basal segment. Or maybe a different change makes sense. (e.g. allowing multiple learning cells per segment in some cases?)

I haven't thought through the effects on experiments. It just seems pretty clear that this code is incomplete.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions