Hierarchical Temporal Memory in Python
Note: http://www.numenta.com/[Numenta] reserves certain patent rights. See Intellectual Property for details.
== Summary
This project is an unofficial implementation of the Cortical Learning Algorithms version of HTM, as described in v0.2 of the http://www.numenta.com/htm-overview/education.php[writeup]. Ultimately, pyHTM will demonstrate learning and categorization of various sensory inputs, and display the results.
This implementation will favor code readability over optimization when those options are mutually exclusive. If you want to understand what's going on, just dig into src/htm_main.py and trace the code (using the Numenta paper as a reference).
The project is very young, and still remains unproven in terms of correctness. I welcome bug reports, forks and pull requests.
== Quickstart
It's preferred to run this inside a virtualenv:
== Goals
== Status
Mar 23: New API for execution
Feb 20: can have fewer columns than input pixels
Feb 18: Pass all tests again!
Feb 1: Added test for recognition of 4 static images (does not yet pass all tests) @see src/carver/tests/recognition_static.py
== Intellectual Property
Numenta encourages non-commercial experimentation - ``Numenta promises that it will not assert its current patent rights against development or use of independent HTM systems, as long as such development or use is for research purposes only, and not for any commercial or production use. '' (http://www.numenta.com/about-numenta/licensing.php[source])
The license on my code is also non-commercial, so if you want a commercial license, you'll have to work it out with both Numenta and myself.
A section of this code, found in the numenta package, is a direct translation from the pseudocode in their writeup. Despite pretty significant changes in the translation to python, I am assuming the Numenta copyright still holds (I only have a basic understanding of copyright law). The rest of the implementation is in the carver.htm package, and is licensed under the Numenta Non-commercial License; see license.txt for details.
== Markdown Rant
Markdown reliably did everything in ways other than I expected it to, and did it with an ugly smile. You'll notice a commit history on README.markdown with profanity. I was pleasantly surprised to find the alternative: asciidoc. It comes with a http://powerman.name/doc/asciidoc[cheat sheet] and a http://andrewk.webfactional.com/asciidoc.php[web preview], and looks beautiful. Well, it looked beautiful on the web preview, before Github applied their dull-gray css.