The Helmholtz machine is a name used by Geoff Hinton to describe a class of neural networks which learn the hidden structure of a set of data by being trained to create a generative model which can produce the original set of data. The hope is that by learning economical representations of the data, the underlying structure of the generative model should reasonably approximate the hidden structure of the data set. This is an unsupervised learning algorithm.
The networks are characterized by bottomup and topdown (reentrant) connections between layers of stochastic elements. The "WakeSleep" algorithm is an unsupervised learning rule which has been suggested as a means to train the Helmholtz machine.
Helmholtz machines may also be used in applications requiring a supervised learning algorithm (e.g. character recognition, or positioninvariant recognition of an object within a field).
http://www.cs.utoronto.ca/~hinton/helmholtz.html  Hinton's papers on Helmholtz machines
