Restricted Boltzmann Machines Using C#

James McCaffrey. MSDN Magazine. June 2017
A restricted Boltzmann machine (RBM) is a fascinating software component that has some similarities to a basic neural network. An RBM has two sets of nodes—visible and hidden. Each set of nodes can act as either inputs or outputs relative to the other set. Each node has a value of zero or one and these values are calculated using probability rather than deterministically.
Each visible-layer node is conceptually connected to each hidden-­layer node with a numeric constant called a weight, typically a value between -10.0 and +10.0. Each node has an associated numeric constant called a bias. The best way to start to understand what an RBM is is by way of a diagram.

[Restricted Boltzmann Machines Using C#]