Machine Understanding


More Tech Stuff:

Indexing Books: Lessons in Language Computations

Client-Side Frame Manipulation Inside the Microsoft Internet Explorer Object Model with Visual Basic .NET

Replacing a PC power supply

Constructing a Mandelbrot Set Based Logo with Visual Basic.NET and Fireworks

June 14, 2010

Counting Nodes: A Framework for Updating Expectations

On page 155 of Judea Pearl's Probabilistic Reasoning he gives a simple example for a node system that does not involve calculating probabilities (or, more accurately, expectations or beliefs). While it may seem trivial, it provides a framework for understanding how information can be passed both up and down a network of nodes. This is a key feature of the model presented in Jeff Hawkins' On Intelligence, and is also present in the Numenta HTM (hierarchical temporal memory) model.

Imagine a line of peace activists walking together, in a line, to vote in an election (Pearl uses a line of soldiers, but in the end we are talking about abstract nodes, not humans, so type of person is not relevant). One gets a call asking how many of them there are. These activists are well organized so she just says "count" in a loud voice.

The person behind her ascertains she is not at the end of the line, so she says "count back." The person ahead, also not being at the front of the line, says "count forward." I will focus on the back of the line; the front works by a similar process. The "count back" data gets repeated until it reaches the last person in line. With no one behind her, she says "1 back." The person ahead of her says "2 back," and this communications gets up the line until the originator hears the person behind her say "n back," n being one of our favorite high school algebra variables, meaning number.

Meanwhile, the same process has gone to the front of the line and back. The originator gets "m forward." Including herself in the count, the total in line is n + m + 1.

She could update everyone in the line by saying "the count is C" and allowing that to propagate. But what will be cooler for our process is continously updating the count, because groups are joining or leaving the line at intervals. The back count and forward count just keep bouncing from beginning to end of the line. Any node can get the latest count as n + m + 1.

That is all there is to it: a line of nodes and a method for updating a particular piece of information that requires information from each direction. In network speak each the front of the line could be designated the root node, which is parent to its child node. Each node has a parent and child node until you reach the last child, which only has a parent node.

It is simple, but it gives a framework for the more complex Bayes expectation updating process for a simple chain of nodes, and then for more complex network configurations.