Open
Description
Relevant classes:
- SpatialPooler
- SDR
- Topology
Why?
- when making changes to SP, we don't have ways to meansure the quality of its outputs: SDRs.
Functionality:
SDR = sparse distributed representation
- sparse:
- min, max active bits in SDR, compared to % size
- avg distance between active bits in SDR (should be similar for all SDRs), uses Topology
- distributed:
- uses activeDutyCycles of the active bits (=cols) to see that all cols are used equally
- information/entropy of the bit/SDR
Implementation:
- helper method to SP (SDR?)
Hypothesis:
- what is a "quality" SDR?
- does higher quality SDR translate to better (how?) results? (in what?)
EDIT: latest update 14/01/2019
Update: Implemented in PR #184
- SDR Sparsity Metrics
- SDR Activation Frequency Metrics
- SDR Average Overlap Metrics
- SDR All Metrics Convenience Class
Summary: Ideas which are discussed here but not yet implemented:
- Cell death (via method SDR.killCells)
- SDR topology
- SP noise resistance (via method SDR.addNoise, also the example sp_tutorial will demonstraight this)
- SP long term stability
- TM estimate false positive & negative rates
- Test Hypothesises
- Write about how to measure HTM's using these metrics