Skip to content

leoTiez/htmresearch

 
 

Repository files navigation

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: llze@kth.se and heyder@kth.se.

About

Experimental algorithms. Unsupported.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 67.4%
  • Jupyter Notebook 20.9%
  • Python 9.8%
  • JavaScript 0.6%
  • C# 0.6%
  • TeX 0.3%
  • Other 0.4%