tl;dr - Nx-based implementation of A Thousand Brains?
I’ve been following Jeff Hawkins’ work for a couple of decades. He thinks well, works hard, and writes clearly. His introductory book, On Intelligence (2005), lays out his goals and motivations in studying how the neocortex works. It also gives an overview of Hierarchical Temporal Memory (HTM) systems.
Quite recently, Jeff released A Thousand Brains, which lays out Numenta’s progress and current theories in this area. The basic notion is that the human neocortex is composed of something like 150K columns of neurons. Each of these stores contextual and descriptive information on hundreds of items. Collectively, these columns “vote” on whether incoming input matches a given item.
While reading the book, I’ve been wondering whether Nx might have a useful role to play in moving this approach forward. There are HTM implementations in several languages, including C++, Clojure, Java, and Python. However, none of these languages has Elixir’s built-in support for distributed processing, pattern matching, etc. With the advent of Nx, it might be time to think about offering a massively scalable implementation.