- Connections have permanence and are either connected or not. (there is no notion of a synapse).
- Columns have spatial connections.
- Cells have temporal connections.
- Cells don’t have segments.
Phase 1: Activate cells within active columns.
- For each active column check if there are predictive cells within the column.
- If there are no predictive cells: then activate all cells within the column (burst). Pick a winner cell by choosing a random cell with the least number of temporal connections to other cells.
- If there are predictive cells: then activate only those cells. Pick a winner cell by choosing the cell that is the most predictive, meaning the cell that best represents the transition from the previous active cells to the current predictive cells.
- Form new temporal connections from a subset of the previous winner cells to the current winner cell or strengthen/weaken existing ones by the values temporal_connection_increment / temporal_connection_decrement.
- For each cell that was predictive but didn’t become active weaken the temporal connections that lead to it becoming predictive by the value temporal_connection_predictive_decrement.
Phase 2: Choose cells to become predictive.
- From all currently active cells check which temporal connections are connected. If there are more connected temporal connections leading to a cell than a predetermined activation threshold then make that cell predictive.
- number_of_columns 2000
- number_of_cells_per_column ???
- potential_percent 0.5
- activation_threshold ???
- spatial_connection_threshold 0.1
- spatial_connection_increment 0.05
- spatial_connection_decrement 0.008
- temporal_connection_threshold 0.1
- temporal_connection_increment 0.05
- temporal_connection_decrement 0.008
- temporal_connection_predictive_decrement ???
- max_number_of_connections_per_cell ???
- Is the temporal pooler working properly?
- The number_of_cells_per_column should make up for cells not having segments. For example if a correct value in the vanilla TM is 128 cells per column and 128 segments per cell then for my implementation it should be 128*128 = 16,384 cells per column.
- What should be the value for activation_threshold? Meaning, how many connected temporal connections leading to cell should be enough to make that cell become predictive?
- For predictive cells that didn’t become active by how much should the temporal connections that lead to it becoming predictive be weakened? In other words what should be the value for temporal_connection_predictive_decrement?
- What should be the max_number_of_connections_per_cell ?