Restricted Boltzmann Machine

Restricted Boltzmann machines are implemented in different flavors in NetKet.

RbmSpin

This type of RBM has spin hidden units, and is defined by:

for arbitrary local quantum numbers . The total number of variational parameters is , and all parameters are taken complex-valued. For more information see (1).

Parameter Possible values Description Default value
Alpha Float Alternative to Nhidden, here None
InitFile String If specified, network parameters are loaded from the given file None
InitRandom Boolean Whether to initialize the parameters with random gaussian-distributed values True
Nhidden Integer The number of hidden units None
SigmaRand Float If InitRandom is chosen, this is the standard deviation of the gaussian 0.1
UseHiddenBias Boolean Whether to use the hidden bias True
UseVisibleBias Boolean Whether to use the visible bias True

Example

pars['Machine']={
    'Name'           : 'RbmSpin',
    'Alpha'          : 1.0,
}

RbmSpinSymm

This type of RBM has spin hidden units, and is constructed to be invariant under specific permutations of the graph indices. In particular, , where is the -th permutation of the index , and assuming a total of distinct permutations.

for arbitrary local quantum numbers . The total number of variational parameters is , and all parameters are taken complex-valued. For more information see the translation-invariant RBM used in (1).

Parameter Possible values Description Default value
Alpha Float Hidden unit density None
InitFile String If specified, network parameters are loaded from the given file None
InitRandom Boolean Whether to initialize the parameters with random gaussian-distributed values True
SigmaRand Float If InitRandom is chosen, this is the standard deviation of the gaussian 0.1
UseHiddenBias Boolean Whether to use the hidden bias True
UseVisibleBias Boolean Whether to use the visible bias True

Example

pars['Machine']={
    'Name'           : 'RbmSpinSymm',
    'Alpha'          : 1.0,
}

RbmMultival

This type of RBM has spin hidden units, and couplings dependent on the quantum numbers. It is defined by:

where are local quantum numbers taking possible values. The total number of variational parameters is , and all parameters are taken complex-valued.

Parameter Possible values Description Default value
Alpha Float Alternative to Nhidden, here None
InitFile String If specified, network parameters are loaded from the given file None
InitRandom Boolean Whether to initialize the parameters with random gaussian-distributed values True
Nhidden Integer The number of hidden units None
SigmaRand Float If InitRandom is chosen, this is the standard deviation of the gaussian 0.1
UseHiddenBias Boolean Whether to use the hidden bias True
UseVisibleBias Boolean Whether to use the visible bias True

Example

pars['Machine']={
    'Name'           : 'RbmMultival',
    'Alpha'          : 1.0,
}

References


  1. Hinton, G, & Salakhutdinov, R. (2006). Reducing the Dimensionality of Data with Neural Networks. Science, 313 504
  2. Carleo, G., & Troyer, M. (2017). Solving the quantum many-body problem with artificial neural networks. Science, 355 602