Giter Site home page Giter Site logo

leotiez / htmresearch Goto Github PK

View Code? Open in Web Editor NEW

This project forked from numenta/htmresearch

0.0 1.0 1.0 373.36 MB

Experimental algorithms. Unsupported.

License: GNU Affero General Public License v3.0

Shell 0.02% Python 9.79% C++ 0.16% Makefile 0.01% C# 0.59% JavaScript 0.65% R 0.01% Jupyter Notebook 20.85% MATLAB 0.21% HTML 67.42% Cap'n Proto 0.01% TeX 0.28% Dockerfile 0.01% CSS 0.01% ShaderLab 0.01%

htmresearch's Introduction

Incorporating A Continuous Bayesian Learning Rule Into A Discrete Hierarchical Temporal Model

This repository contains the Python code that was used to extend Numenta's HTM approach to a continuous stochastical network that embeds a Hebbian-like Bayesian learning rule to adapt to changing input statistics. The project was conducted within the research class DD2465 at KTH, and the report can be found here.

The goal was to compare the approaches regarding their respective convergence. We hypothesised that our network achieves similar results, while increasing interpretability and reducing the number of model parameters that are needed to be tuned.

Unfortunately, we could not verify our claim. The algorithm comes with the drawback of large computational costs for both memory and time. Moreover, we could not obtain a similar performance as the original model (measured in number of sensation-location pairs needed to infer an object correctly).

Nevertheless, we are convinced that the work opens a new way to investigate thoroughly the dynamical behaviour of the network. Moreover, the output activity of the neurons of the object representation can be seen as a measure of confidence. Thus, we believe that with more time it is possible to tune the performance of the Bayesian version to be similar to the original approach, whilst increasing interpretability.

The original README that was published by Numenta can be found here

Installation

To install the project, change to the project directory and run

python2 -m pip install .

Execution

The first file for a large parameter search can be executed via

python experiments.py

To create the plots, run the command

python tests/bayesian/bayesian_conergence_activity_plot.py

Contribution

Please feel free to contribute to the work of Numenta and to our own adaption. Clone, fork and try. For hints and recommendations, don't hesitate to contact us via email: [email protected] and [email protected].

htmresearch's People

Contributors

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

Watchers

James Cloos avatar

Forkers

kaikun213

htmresearch's Issues

Segment count without duplications

At the moment we add a segment each time a column bursts.
However, we only need to add a segment if the cell has less than the current max segments used.
We could keep track of the number of segments used per cell and then compare if an increment is needed.

Experiments/Cleanup/Todos 17/11 Discussion

Issue list from discussion 17/11

[E] = Test in Experiments
[C] = Cleanup
[T] = Todos

  • [T] Compute method in apical temporal memory
  • [T] Getter/Setter redefined to new variables
  • [C] Initial permanence -> can be removed?
  • [E] Basal/Apical weights -> one segment per cell randomly initialized -> better results? (e.g. NN convergence) or hinderly?
  • [E] Use apical input: (1) as tiebreak, (2) not at all, (3) same weights as basal (bias only needed once)
  • [E] Normalization: Threshold is (1) before (independent thresholding), (2) after (competition based on threshold), (3) in-between (2-times normalize)

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.