0.0.14 - 2016-07-01
- No more temporal pooling excitation. Instead, synapses from predicted cells excite their target cells over multiple time steps.
- No more union pooling; activation level is constant.
- First level layers are not treated any differently from higher layers.
- Proximal synapses grow to any active synapses, not just stable ones.
- Winner cells remain the same in continuing active columns unless reset; we may rely on an external timing signal to distinguish repeats.
- Learn on winner cells only when they become active (even at first level). But might revisit this to learn auto-associatively for pattern completion.
- Inhibition radius is now full span of receptive field size, not half of it.
- Do not displace synapses when growing; instead wait for them to be culled.
- Spec :spatial-pooling :local-inhibition replaces :global-inhibition? true.
- Spec parameter :stable-activation-steps
- State key :stable-cells-buffer
- Can create 2D regions with 3D inputs.
- Can specify custom spatial pooling function via spec key :spatial-pooling.
- Adjust overlap based on overlap duty cycle, to compare to NuPIC.
- Sampling Linear Encoder
- periodic? option to linear-encoder
- core/segs-proximal-bit-votes
- Spec parameter :inh-radius-scale
- Optional instantaneous lateral synapse graph, eg for learned lateral inhibition.
- Multimethods for customisation of algorithms, selected by spec keys :spatial-pooling and :temporal-pooling.
- Adjust overlap by activation frequency. disable by :float-overlap-duty-ratio 0
- Effective time steps by sufficient difference in columns :transition-similarity.
- Spec parameters :temporal-pooling-max-exc, -fall, -amp
- Spec parameters :activation-level-max, :stable-inbit-frac-threshold
- State keys :engaged?, :newly-engaged?
- temporal-pooling-cells protocol function.
- Spec parameter :global-inhibition?
- coord-distance now uses Chebyshev distance to match neighbours function.
- Local inhibition failed when inhibition-base-distance >= inh-radius.
- Bursting defined by depolarisation; distinguishes bursting when depth=1.
- Distal punishment cells were incorrect.
0.0.13 - 2016-01-12
- Winner cells are not selected in layer-activate phase, only later in the layer-learn phase.
- LayerActiveState no longer has keys :distal-learning, :proximal-learning, etc.
- LayerOfCells now has key :learn-state which is a LayerLearnState record.
- Abandoned the bias against cells with existing inactive segments.
- :matching-[ff-]seg-paths now holds [seg-path exc] tuples instead of just seg-path.
- Removed :well-matching-seg-paths and :well-matching-ff-seg-paths.
- In LayerDistalState renamed :on-bits to :active-bits and :on-lc-bits to :learnable-bits
- 2D and 3D topologies now index across rows first, like image pixels.
- LayerActiveState gains a key :col-active-cells, a map keyed by col id.
- Spec parameter :apical-bias-frac
- NoEncoder to pass in sparse distributed representations directly.
- Segments with connected synapses below :new-synapse-count but above :stimulus-threshold were not automatically chosen, instead falling through to partial matches (including disconnected synapses).
- The wrong segment index was chosen for a partial match when some cells had no segments. (cell-segs was filtered)
0.0.12 - 2015-12-01
- Before this I didn't keep a change log.