HTM Technology Overview


Hierarchical Temporal Memory: What's In a Name?

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 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.


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.
  • 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.