Java Boltzmann Machine
A Boltzmann machine is a type of neural network developed by Geoffrey Hinton and Terry Sejnowski. It appears identical to a Hopfield neural network except it contains a random nature to its output. A temperature value is present that influences the output from the neural network. As this temperature decreases so does the randomness. This is called simulated annealing. Boltzmann are usually trained in an unsupervised mode, however supervised training can be used to refine what the Boltzmann machine is recognizing.
The Boltzmann Machine modeled in the Encog Workbench looks like this:



