Giter Club home page Giter Club logo

htmresearch's People

Contributors

akhilaananthram avatar andrewmalta13 avatar arhik avatar boltzmannbrain avatar brev avatar breznak avatar cbaranski avatar chetan51 avatar ellapollack avatar epaxon avatar jaredweiss avatar lscheinkman avatar marionleborgne avatar maxaschwarzer avatar maxschwarzer avatar mirkoklukas avatar mrcslws avatar natoromano avatar numenta-ci avatar oxtopus avatar rhyolight avatar saganbolliger avatar scottpurdy avatar subutai avatar tomsilver avatar vincentliuk avatar ywcui1990 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

htmresearch's Issues

Refactor SensorimotorExperimentRunner to allow feeding in one record at a time

SensorimotorExperimentRunner's feedLayers method is optimized for taking sensorimotor sequences. Refactor it to create a separate function that can take a single sensorimotor transition, so that SensorimotorExperimentRunner can be used more easily in an online fashion.

This might warrant a rename to SensorimotorExperimentRunner as well (maybe to SensorimotorModel).

Switch to new temporal_memory code

We want to move the TM code to the new temporal_memory implementation. The goal of this task is to allow us to delete TM_New.py from the repository. Specifically create a base class that adds distal dendrite learning and learn on one cell mode to temporal_memory code. Convert experiments to use this code.

Ensure new temporal memory contains learn on one cell bug fix

Ensure new temporal memory contains learn on one cell bug fix. This is reflect in lines 809 to 825 of TM_SM.py:

        s = None
        if self.learnOnOneCell == True:
          # in learn on one cell mode, always learn on one cell per column
          # unless reset has just been called
          i = self.getSeqLearnCell(c)

        if not i:
          i,s = self.getBestMatchingCell(c,self.activeState['t-1'],
                                         self.distalDendriticInput['t-1'])

          if s is not None and s.isSequenceSegment():
            s.totalActivations += 1      # activationFrequency
            s.lastActiveIteration = self.iterationIdx
          else:
            # if best matching cell does not exist, then get least used cell
            i = self.getLeastUsedCell(c)

Allow running arbitrarily large capacity tests

Currently, there is a limit to how many worlds/elements can be in a capacity test, due to the pretty-printing of the elements. If we exceed this limit, just print ? instead of symbols, and allow running arbitrarily large tests.

Debug sm_test_with_pooling

sm_test_with_pooling is not giving consistently good results on all patterns and with a larger number of patterns. This task is to debug and fix this.

Create metrics for evaluating Layer 4 sensorimotor inference

Implement metrics for sensorimotor inference. For perfect performance two criteria must be met:

Every element in a sensorimotor sequence should get predicted perfectly. This metric would operate on columns. Every sensory column should be predicted and no extra columns should be predicted.

Sensorimotor sequences through distinct static patterns should get completely distinct representations through the course of each sequence. This metric would operate at the level of cells. At every step, the SDR representing context at that point should be different from the SDR representing context at any point in any of the other sequences. We might exclude the very first element in each sequence since that is unpredicted.

Distinctness confusion reading doesn't make sense

Investigate this result:

Setting up a new experiment...
Done setting up experiment.

Training (worlds: 2, elements: 12)...
Fed 10 / 578 elements of the sequence in 0.41 seconds.
Fed 20 / 578 elements of the sequence in 0.38 seconds.
Fed 30 / 578 elements of the sequence in 0.41 seconds.
Fed 40 / 578 elements of the sequence in 0.38 seconds.
Fed 50 / 578 elements of the sequence in 0.40 seconds.
Fed 60 / 578 elements of the sequence in 0.38 seconds.
Fed 70 / 578 elements of the sequence in 0.40 seconds.
Fed 80 / 578 elements of the sequence in 0.41 seconds.
Fed 90 / 578 elements of the sequence in 0.38 seconds.
Fed 100 / 578 elements of the sequence in 0.41 seconds.
Fed 110 / 578 elements of the sequence in 0.42 seconds.
Fed 120 / 578 elements of the sequence in 0.44 seconds.
Fed 130 / 578 elements of the sequence in 0.43 seconds.
Fed 140 / 578 elements of the sequence in 0.43 seconds.
Fed 150 / 578 elements of the sequence in 0.57 seconds.
Fed 160 / 578 elements of the sequence in 0.63 seconds.
Fed 170 / 578 elements of the sequence in 0.64 seconds.
Fed 180 / 578 elements of the sequence in 0.62 seconds.
Fed 190 / 578 elements of the sequence in 0.62 seconds.
Fed 200 / 578 elements of the sequence in 0.62 seconds.
Fed 210 / 578 elements of the sequence in 0.62 seconds.
Fed 220 / 578 elements of the sequence in 0.62 seconds.
Fed 230 / 578 elements of the sequence in 0.62 seconds.
Fed 240 / 578 elements of the sequence in 0.63 seconds.
Fed 250 / 578 elements of the sequence in 0.62 seconds.
Fed 260 / 578 elements of the sequence in 0.65 seconds.
Fed 270 / 578 elements of the sequence in 0.65 seconds.
Fed 280 / 578 elements of the sequence in 0.65 seconds.
Fed 290 / 578 elements of the sequence in 0.52 seconds.
Fed 300 / 578 elements of the sequence in 0.43 seconds.
Fed 310 / 578 elements of the sequence in 0.41 seconds.
Fed 320 / 578 elements of the sequence in 0.44 seconds.
Fed 330 / 578 elements of the sequence in 0.41 seconds.
Fed 340 / 578 elements of the sequence in 0.43 seconds.
Fed 350 / 578 elements of the sequence in 0.40 seconds.
Fed 360 / 578 elements of the sequence in 0.43 seconds.
Fed 370 / 578 elements of the sequence in 0.43 seconds.
Fed 380 / 578 elements of the sequence in 0.41 seconds.
Fed 390 / 578 elements of the sequence in 0.43 seconds.
Fed 400 / 578 elements of the sequence in 0.43 seconds.
Fed 410 / 578 elements of the sequence in 0.43 seconds.
Fed 420 / 578 elements of the sequence in 0.43 seconds.
Fed 430 / 578 elements of the sequence in 0.47 seconds.
Fed 440 / 578 elements of the sequence in 0.61 seconds.
Fed 450 / 578 elements of the sequence in 0.64 seconds.
Fed 460 / 578 elements of the sequence in 0.66 seconds.
Fed 470 / 578 elements of the sequence in 0.65 seconds.
Fed 480 / 578 elements of the sequence in 0.65 seconds.
Fed 490 / 578 elements of the sequence in 0.70 seconds.
Fed 500 / 578 elements of the sequence in 0.74 seconds.
Fed 510 / 578 elements of the sequence in 0.68 seconds.
Fed 520 / 578 elements of the sequence in 0.67 seconds.
Fed 530 / 578 elements of the sequence in 0.66 seconds.
Fed 540 / 578 elements of the sequence in 0.67 seconds.
Fed 550 / 578 elements of the sequence in 0.67 seconds.
Fed 560 / 578 elements of the sequence in 0.67 seconds.
Fed 570 / 578 elements of the sequence in 0.67 seconds.
Done training.

+---------------------------------------------------------------+--------+--------+----------+---------------+--------------------+
|                             Metric                            |  min   |  max   |   sum    |      mean     | standard deviation |
+---------------------------------------------------------------+--------+--------+----------+---------------+--------------------+
|                      [TP] # active cells                      |   20   |   20   |  11520   |      20.0     |        0.0         |
|                    [TP] stability confusion                   |   0    |   40   | 5747664  | 35.0117199873 |   9.52273451876    |
|                  [TP] distinctness confusion                  |  110   |  110   |   220    |     110.0     |        0.0         |
|             [TP] connections per column (initial)             | 1766.0 | 1934.0 | 942963.0 | 1841.72460938 |   31.2957218622    |
|              [TP] connections per column (final)              | 1768.0 | 2021.0 | 948707.0 | 1852.94335938 |    41.789403127    |
|                     [TM] # active columns                     |   20   |   20   |  11480   |      20.0     |        0.0         |
|          [TM] # predicted => active columns (correct)         |   0    |   20   |   920    | 1.60278745645 |   5.43017693067    |
|          [TM] # predicted => inactive columns (extra)         |   0    |   0    |    0     |      0.0      |        0.0         |
|        [TM] # unpredicted => active columns (bursting)        |   0    |   20   |  10560   | 18.3972125436 |   5.43017693067    |
|           [TM] # predicted => active cells (correct)          |   0    |   20   |   920    | 1.60278745645 |   5.43017693067    |
|           [TM] # predicted => inactive cells (extra)          |   0    |   0    |    0     |      0.0      |        0.0         |
|                        [TM] # segments                        |   0    |  5280  | 1912240  | 3319.86111111 |   1566.42107388    |
|                        [TM] # synapses                        |   0    | 211200 | 76489600 | 132794.444444 |   62656.8429554    |
| [TM] # predicted => active cells per column for each sequence |   1    |   1    |   387    |      1.0      |        0.0         |
|   [TM] # sequences each predicted => active cells appears in  |   1    |   1    |   387    |      1.0      |        0.0         |
+---------------------------------------------------------------+--------+--------+----------+---------------+--------------------+

Demonstrate stability for tiny image setup

Create simple vision experiment where we have a small number of images and small number of fixations. We want to see stable unique representations. This is mostly to test and debug the framework.

Create SP Mixin

Create a spatial pooler mixing class that monitors a few metrics:

The distribution of column activity (are all columns being used equally). This is very similar to the active duty cycle.

What is the average overlap for each column before inhibition?

Are we getting good SDR's? For two patterns that have N bits of overlap, how many bits of overlap do the SDR's have? This could be represented in an NxM overlap count matrix. OverlapCount[i,j] would be the number of times two patterns that had i bits of input overlap had j bits of SDR overlap. We should see a strong diagonal and a gradual drop off as you move away from the diagonal.

Clean up documentation for TemporalPooler

Clean up and update documentation for the TemporalPooler class. Some of the wording in there is a bit old. In particular we should explain exactly why the pooling state helps.

Remove synPermActiveInactiveDec from TemporalPooler

The current TemporalPooler class has a parameter called synPermActiveInactiveDec with the associated rule:

For inactive columns, synapses connected to input bits that are on are
decreased by synPermActiveInactiveDec.

This task is to remove this rule, and all associated data structures such as _permanenceDecCache

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.