Introduction to Numenta Technology

Slashdot  

Numenta is creating a new computing paradigm that replicates the structure and function of the human neocortex. This Hierarchical Temporal Memory (HTM) technology has the potential to allow computers to solve problems that are currently easily solved for humans but difficult or impossible to solve for machines. Examples include a vision system that can recognize faces or a system that can recognize dangerous traffic situations.

An HTM system is not programmed in the traditional sense; instead it is trained. Sensory data is applied to the bottom of the hierarchy and the HTM system automatically discovers the underlying patterns in the sensor input. You might say it "learns" what objects are in the world and how to recognize them.

The Numenta Platform for Intelligent Computing (NuPIC) allows developers to create HTM applications. NuPIC consists of the Numenta Tools Framework and the Numenta Runtime Engine. A research release became available on March 5, 2007. We chose to call this first release a "research release" for two fundamental reasons: HTMs are new and our NuPIC platform is immature. Jeff discusses this in more detail in his note.


What is HTM Technology?

NuPIC allows developers to build an HTM Network and train the network using their data. After the HTM Network has gone through training, it can not only recognize the objects it has been trained on, but can also recognize and classify related objects. For example, the Pictures HTM Network included with NuPIC has been trained to recognize images that belong to different categories. When an image is submitted that is similar to an existing category, but that the HTM Network has not seen before, the network can recognize the image with fairly high accuracy. This is similar to humans, who can recognize a cup or a dog from different distances, from different angles, and under different lighting conditions.

What's In a Name: Hierarchical Temporal Memory

The name was chosen for a reason:

  • Hierarchical -- HTMs are organized as a tree-shaped hierarchy of nodes. Each node implements a learning and memory function, that is, it encapsulates an algorithm. Lower-level nodes receive large amounts of input and send processed input up to the next level. In that way, the HTM Network abstracts the information as it is passed up the hierarchy.

  • Temporal -- During training, the HTM application must be presented with objects as they change over time. For example, during training of the Pictures application, the images are presented first top to bottom, then left to right as if the image were moving over time. Note that the temporal element is critical: The algorithm has been written to expect input that changes gradually over time.

  • Memory -- An HTM application works in two stages, which can be thought of as training memory and using memory. During training, the HTM Network learns to recognize patterns in the input it receives. Each level in the hierarchy is trained separately. In the fully trained HTM Network, each level in the hierarchy knows -- has in memory -- all the objects in its world. During inference, when the HTM Network is presented with new objects, it can determine the likelihood that an object is one of the already known objects.

HTM Technology and Traditional Computer Application

An HTM application is different from a traditional computer application. Traditionally each program solves a specific problem such as process email or analyze data. In contrast, the HTM algorithms encapsulated by NuPIC can be trained to solve problems from different domains and of different types. The programmer prepares the data for the HTM and trains the HTM Network. The trained network can then analyze new information and act on it.

This is one reason why all Numenta developers must download the NuPIC Platform but only some are expected to use the algorithms source: The ability to learn based on input is already built into the nodes included with the platform. All the example applications use only the nodes that encapsulate the learning algorithm.


HTM Technology and Existing Data Modeling Techniques

A number of other modeling techniques seem to resemble HTM Technology at first glance, but may not have all of the functionality. Some of the distinguishing characteristics of HTMs are:

  • An HTM Network processes both temporal and spatial information. This combination makes it so powerful.
  • The trained HTM Network can generate data, that is, predict forward in time.
  • A strong biological basis.

In his book, On Intelligence, Jeff Hawkins discusses this topic in more detail. In this discussion, he points out the main difference between traditional techniques such as Expert Systems and Neural Networks and HTM: All other technologies attempt to simulate human behavior, but only HTM is based on a theory of how the human brain works.


Problems Suited for HTM Applications

An important aspect of a successful HTM application is working with an appropriate problem and formulating it precisely. The white paper Problems that fit HTMs explores this topic in detail; this section summarizes the most important points.

Some problems aren't a good fit for HTMs: HTM is not suitable for problems that can be solved with a discrete set of rules. HTM is more appropriate for ambiguous and noisy domains. Problems that require specific timing (e.g. music recognition) are also not well suited for the current generation of HTMs.

HTM works best for problems where the data to be modeled are generated by a hierarchy of causes that change over time. Here, a cause is the object that caused the HTM input data. The problem should have both a spatial and a temporal component. Examples include the car monitoring system discussed in the white paper or the Waves sample application, which classifies the state of a river based on input from monitors.

  • Both examples include a temporal element: In the car monitoring system, sensors track information such as engine temperature. In the Waves example, sensors track the temperature of a river.
  • Both examples include a spatial hierarchy: In the car monitoring system, the different systems in the car make up the larger subsystems, which in turn make up the car. In the Waves example, the river state consists of a set of individual temperatures.

Just like the human brain, the HTM Network requires a substantial amount of training data. Given those data, HTM Networks handle ambiguity and noise well and can use input from different sources (temperature, speed, and so on). They also don't require symmetry in the data.

To summarize, the domain should have an inherent hierarchy and the data should have spatial and temporal correlations. Enough data organized in temporal sequences must be available to perform training.