2016 HTM Year in Review



Aside from a new research focus at Numenta, we and the HTM community have done a bunch of other things worth noting over the past year. Here’s a run-down for your information.

NuPIC Windows Builds

We now build NuPIC Core and NuPIC on Windows with every push to master. Thanks to @scott @riccro @vkruglikov for their work on that. This helped us deliver HTM Studio to the public, which allows you to run your local data streams through NuPIC if you get it in a simple CSV format.

Bamboo Linux Builds

We moved our Linux builds from Travis-CI onto a Bamboo server we are running on AWS. The long-term goal is to run all our platform builds (win, darwin, linux) on this CI server we control. It is set up to allow community access if any committer wants to help with pipeline work.

C++ Algorithm Complete

We now have a nupic.core with complete HTM algorithms. Anyone at this point could attempt to build bindings to other languages. This is an old community initiative from our first days of open source. I hope someone still wants to do this now.

HTM.Java & Comportex on the NAB Leaderboard

We are now running both HTM.Java and Comportex HTMs in the Numenta Anomaly Benchmark (NAB). It’s great to have these community-created HTM systems represented here. :thumbsup:

HTM Forum

Goodbye mailing lists, hello Discourse! I’m glad you are all here. If you know someone who is still refusing to migrate from email, please point them towards the 21st century. :wink:

HTM Integrations

There have been two interesting integrations with other software. One by @EronWright called flink-htm. It adds HTM (via HTM.Java) to the Flink architecture, allowing users to pipe data in and out of the HTM in a fast streaming fashion. Lots of potential for innovative work in this space.

Another one I created is InfluxHTM, an integration with the popular time-series database InfluxDB. This project makes most InfluxDB data streams easily processable by any HTM system.

Algorithm Performance Improvements

Now that @mrcslws works for Numenta, he has been hard at work optimizing both Python and C++ implementations of HTM in NuPIC. You want details?! I’ll give you the details!

  • A cleaner Temporal Memory implementation
    • C++ TM: Much faster
    • Python TM: Faster (thanks, @amalta)
  • Faster computation of SpatialPooler neighborhoods
    • C++ SP with topology: Much faster
    • Python SP with topology: Faster
  • SparseMatrix optimizations and new functionality
    • We can now write our synapse learning rules as a series of SparseMatrix batch operations.
    • (Not yet in NuPIC) Python algorithms: Much faster
  • (Not yet in NuPIC) A “loopless” Python Temporal Memory that is described entirely in Numpy and SparseMatrix batch operations.
    • Python TM: Much faster (fast enough that we probably don’t need a C++ TM for research)

HTM Studio

As I mentioned earlier, Numenta released HTM Studio to the public, which allows you to run your local data streams through NuPIC if you get it in a simple CSV format. This has made it a lot easier for people to try HTM on their time-series data streams without any programming experience.

HTM School

I put a lot of my time this past year into creating this educational series about HTM theory with dynamic visualizations of the cortical structures.

In summary, I think it has been a great year. Thanks to all of you for reading this and keeping up with our progress on HTM theory and implementations. This community is important, and I look forward to the discussions we’ll have in 2017.