Skip to content

kaikun213/htm-bayesian-learning

 
 

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.

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

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

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 a larger time frame it is possible to tune the performance of the Bayesian version to be similar to the original approach, while 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

pip install .

Execution

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

python experiments.py

The other file that creates the plots is run through the command

python tests/bayesian/bayesian_conergence_activity_plot.py

Contribution

Please feel free to contribute the work of Numenta and to our own adaptions. 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%