From e040afc35ad514ffbe12e156b119708f5ce4830f Mon Sep 17 00:00:00 2001 From: mhjensen Date: Wed, 28 Nov 2018 22:20:13 +0100 Subject: [PATCH] update on BM slides --- doc/pub/BM/html/._BM-bs000.html | 86 ++++---- doc/pub/BM/html/._BM-bs001.html | 84 ++++---- doc/pub/BM/html/._BM-bs002.html | 84 ++++---- doc/pub/BM/html/._BM-bs003.html | 86 ++++---- doc/pub/BM/html/._BM-bs004.html | 84 ++++---- doc/pub/BM/html/._BM-bs005.html | 84 ++++---- doc/pub/BM/html/._BM-bs006.html | 84 ++++---- doc/pub/BM/html/._BM-bs007.html | 84 ++++---- doc/pub/BM/html/._BM-bs008.html | 84 ++++---- doc/pub/BM/html/._BM-bs009.html | 84 ++++---- doc/pub/BM/html/._BM-bs010.html | 84 ++++---- doc/pub/BM/html/._BM-bs011.html | 84 ++++---- doc/pub/BM/html/._BM-bs012.html | 84 ++++---- doc/pub/BM/html/._BM-bs013.html | 84 ++++---- doc/pub/BM/html/._BM-bs014.html | 84 ++++---- doc/pub/BM/html/._BM-bs015.html | 84 ++++---- doc/pub/BM/html/._BM-bs016.html | 84 ++++---- doc/pub/BM/html/._BM-bs017.html | 84 ++++---- doc/pub/BM/html/._BM-bs018.html | 84 ++++---- doc/pub/BM/html/._BM-bs019.html | 84 ++++---- doc/pub/BM/html/._BM-bs020.html | 84 ++++---- doc/pub/BM/html/._BM-bs021.html | 84 ++++---- doc/pub/BM/html/._BM-bs022.html | 84 ++++---- doc/pub/BM/html/._BM-bs023.html | 84 ++++---- doc/pub/BM/html/._BM-bs024.html | 84 ++++---- doc/pub/BM/html/._BM-bs025.html | 84 ++++---- doc/pub/BM/html/._BM-bs026.html | 84 ++++---- doc/pub/BM/html/._BM-bs027.html | 84 ++++---- doc/pub/BM/html/._BM-bs028.html | 84 ++++---- doc/pub/BM/html/._BM-bs029.html | 84 ++++---- doc/pub/BM/html/._BM-bs030.html | 84 ++++---- doc/pub/BM/html/._BM-bs031.html | 84 ++++---- doc/pub/BM/html/._BM-bs032.html | 84 ++++---- doc/pub/BM/html/._BM-bs033.html | 84 ++++---- doc/pub/BM/html/._BM-bs034.html | 84 ++++---- doc/pub/BM/html/._BM-bs035.html | 84 ++++---- doc/pub/BM/html/._BM-bs036.html | 84 ++++---- doc/pub/BM/html/._BM-bs037.html | 84 ++++---- doc/pub/BM/html/._BM-bs038.html | 84 ++++---- doc/pub/BM/html/._BM-bs039.html | 84 ++++---- doc/pub/BM/html/._BM-bs040.html | 84 ++++---- doc/pub/BM/html/._BM-bs041.html | 84 ++++---- doc/pub/BM/html/._BM-bs042.html | 84 ++++---- doc/pub/BM/html/._BM-bs043.html | 84 ++++---- doc/pub/BM/html/._BM-bs044.html | 84 ++++---- doc/pub/BM/html/._BM-bs045.html | 84 ++++---- doc/pub/BM/html/._BM-bs046.html | 84 ++++---- doc/pub/BM/html/._BM-bs047.html | 84 ++++---- doc/pub/BM/html/._BM-bs048.html | 115 +++++++---- doc/pub/BM/html/._BM-bs049.html | 120 +++++++---- doc/pub/BM/html/._BM-bs050.html | 104 +++++----- doc/pub/BM/html/._BM-bs051.html | 110 +++++----- doc/pub/BM/html/._BM-bs052.html | 109 ++++++---- doc/pub/BM/html/._BM-bs053.html | 118 ++++++----- doc/pub/BM/html/._BM-bs054.html | 118 ++++++----- doc/pub/BM/html/._BM-bs055.html | 128 +++++++----- doc/pub/BM/html/._BM-bs056.html | 114 ++++++----- doc/pub/BM/html/._BM-bs057.html | 112 +++++++---- doc/pub/BM/html/._BM-bs058.html | 108 ++++++---- doc/pub/BM/html/._BM-bs059.html | 130 ++++++------ doc/pub/BM/html/._BM-bs060.html | 112 ++++++----- doc/pub/BM/html/._BM-bs061.html | 129 ++++++++---- doc/pub/BM/html/._BM-bs062.html | 122 +++++++----- doc/pub/BM/html/._BM-bs063.html | 94 +++++---- doc/pub/BM/html/._BM-bs064.html | 146 ++++++-------- doc/pub/BM/html/._BM-bs065.html | 112 +++++------ doc/pub/BM/html/._BM-bs066.html | 142 +++++++------ doc/pub/BM/html/._BM-bs067.html | 116 ++++++----- doc/pub/BM/html/._BM-bs068.html | 105 +++++----- doc/pub/BM/html/._BM-bs069.html | 112 +++++------ doc/pub/BM/html/BM-bs.html | 86 ++++---- doc/pub/BM/html/BM-reveal.html | 216 ++++++++++++++++++-- doc/pub/BM/html/BM-solarized.html | 254 ++++++++++++++++++++---- doc/pub/BM/html/BM.html | 254 ++++++++++++++++++++---- doc/pub/BM/ipynb/BM.ipynb | 287 ++++++++++++++++++++++++++- doc/pub/BM/ipynb/ipynb-BM-src.tar.gz | Bin 36992 -> 56343 bytes doc/pub/BM/pdf/BM-minted.pdf | Bin 577367 -> 664046 bytes doc/src/BoltzmannMachines/BM.do.txt | 134 ++++++++++++- 78 files changed, 4827 insertions(+), 3016 deletions(-) diff --git a/doc/pub/BM/html/._BM-bs000.html b/doc/pub/BM/html/._BM-bs000.html index dbed0cb69..d01b0b80f 100644 --- a/doc/pub/BM/html/._BM-bs000.html +++ b/doc/pub/BM/html/._BM-bs000.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -343,7 +355,7 @@ MathJax.Hub.Config({
    Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University and Department of Physics, University of Oslo, Norway

    -

    Nov 23, 2018

    +

    Nov 28, 2018


    @@ -367,7 +379,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs001.html b/doc/pub/BM/html/._BM-bs001.html index f2659c400..ed4802047 100644 --- a/doc/pub/BM/html/._BM-bs001.html +++ b/doc/pub/BM/html/._BM-bs001.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -370,7 +382,7 @@ Some of the most common tasks are:
  • 10
  • 11
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs002.html b/doc/pub/BM/html/._BM-bs002.html index cb748fc57..774e5bcf6 100644 --- a/doc/pub/BM/html/._BM-bs002.html +++ b/doc/pub/BM/html/._BM-bs002.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -355,7 +367,7 @@ Furthermore, they have been used to solve complicated quantum mechanical many-pa
  • 11
  • 12
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs003.html b/doc/pub/BM/html/._BM-bs003.html index 77e3b3ed9..ebc0e5a21 100644 --- a/doc/pub/BM/html/._BM-bs003.html +++ b/doc/pub/BM/html/._BM-bs003.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -328,7 +340,7 @@ MathJax.Hub.Config({

    An intermediate step, the Hopfield network and links to the Ising and Potts models

    -More material on Hopfield networks will come here +More material on Hopfield networks will come here later.

    @@ -349,7 +361,7 @@ More material on Hopfield networks will come here

  • 12
  • 13
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs004.html b/doc/pub/BM/html/._BM-bs004.html index 6c41955ac..a1e476a34 100644 --- a/doc/pub/BM/html/._BM-bs004.html +++ b/doc/pub/BM/html/._BM-bs004.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -360,7 +372,7 @@ MathJax.Hub.Config({
  • 13
  • 14
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs005.html b/doc/pub/BM/html/._BM-bs005.html index 715e21166..29488179f 100644 --- a/doc/pub/BM/html/._BM-bs005.html +++ b/doc/pub/BM/html/._BM-bs005.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -366,7 +378,7 @@ its most likely state at a given temperature of the surroundings.
  • 14
  • 15
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs006.html b/doc/pub/BM/html/._BM-bs006.html index 2ecaa2033..8ab21c02b 100644 --- a/doc/pub/BM/html/._BM-bs006.html +++ b/doc/pub/BM/html/._BM-bs006.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -363,7 +375,7 @@ the interpretation of random walks and Markov processes.
  • 15
  • 16
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs007.html b/doc/pub/BM/html/._BM-bs007.html index 64523edda..b6aa520c1 100644 --- a/doc/pub/BM/html/._BM-bs007.html +++ b/doc/pub/BM/html/._BM-bs007.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -368,7 +380,7 @@ This sequence of steps forms a chain.
  • 16
  • 17
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs008.html b/doc/pub/BM/html/._BM-bs008.html index 0c272f456..59bc1b2c3 100644 --- a/doc/pub/BM/html/._BM-bs008.html +++ b/doc/pub/BM/html/._BM-bs008.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -357,7 +369,7 @@ MathJax.Hub.Config({
  • 17
  • 18
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs009.html b/doc/pub/BM/html/._BM-bs009.html index bd394572d..c565b95df 100644 --- a/doc/pub/BM/html/._BM-bs009.html +++ b/doc/pub/BM/html/._BM-bs009.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -371,7 +383,7 @@ The list of applications is endless.
  • 18
  • 19
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs010.html b/doc/pub/BM/html/._BM-bs010.html index 2311d6067..a352f3144 100644 --- a/doc/pub/BM/html/._BM-bs010.html +++ b/doc/pub/BM/html/._BM-bs010.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -372,7 +384,7 @@ We can regard the discretized PDF as a vector.
  • 19
  • 20
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs011.html b/doc/pub/BM/html/._BM-bs011.html index f7453fcb8..351bfdc97 100644 --- a/doc/pub/BM/html/._BM-bs011.html +++ b/doc/pub/BM/html/._BM-bs011.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -386,7 +398,7 @@ PDF with equal probability of jumping left or right.
  • 20
  • 21
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs012.html b/doc/pub/BM/html/._BM-bs012.html index 09dc2b2fe..db65058de 100644 --- a/doc/pub/BM/html/._BM-bs012.html +++ b/doc/pub/BM/html/._BM-bs012.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -383,7 +395,7 @@ not necessarily equal zero.
  • 21
  • 22
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs013.html b/doc/pub/BM/html/._BM-bs013.html index 1bc6d8446..009254233 100644 --- a/doc/pub/BM/html/._BM-bs013.html +++ b/doc/pub/BM/html/._BM-bs013.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -391,7 +403,7 @@ $$
  • 22
  • 23
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs014.html b/doc/pub/BM/html/._BM-bs014.html index 2ea9085a8..a4725c333 100644 --- a/doc/pub/BM/html/._BM-bs014.html +++ b/doc/pub/BM/html/._BM-bs014.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -384,7 +396,7 @@ $$
  • 23
  • 24
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs015.html b/doc/pub/BM/html/._BM-bs015.html index ed39a7cff..c2c93ec89 100644 --- a/doc/pub/BM/html/._BM-bs015.html +++ b/doc/pub/BM/html/._BM-bs015.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -381,7 +393,7 @@ $$
  • 24
  • 25
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs016.html b/doc/pub/BM/html/._BM-bs016.html index b5bd1531d..6d88a625b 100644 --- a/doc/pub/BM/html/._BM-bs016.html +++ b/doc/pub/BM/html/._BM-bs016.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -380,7 +392,7 @@ Note that the vector \( \hat{w} \) is always normalized to \( 1 \).
  • 25
  • 26
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs017.html b/doc/pub/BM/html/._BM-bs017.html index 6243f8bc9..0ce1bbc6d 100644 --- a/doc/pub/BM/html/._BM-bs017.html +++ b/doc/pub/BM/html/._BM-bs017.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -395,7 +407,7 @@ $$
  • 26
  • 27
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs018.html b/doc/pub/BM/html/._BM-bs018.html index 9c44716b4..e1d03b71b 100644 --- a/doc/pub/BM/html/._BM-bs018.html +++ b/doc/pub/BM/html/._BM-bs018.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -392,7 +404,7 @@ time steps. After twelve iterations we have reached the exact value with six le
  • 27
  • 28
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs019.html b/doc/pub/BM/html/._BM-bs019.html index 0e658e359..41287e47e 100644 --- a/doc/pub/BM/html/._BM-bs019.html +++ b/doc/pub/BM/html/._BM-bs019.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -373,7 +385,7 @@ transition probability matrix.
  • 28
  • 29
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs020.html b/doc/pub/BM/html/._BM-bs020.html index fe4a63987..89f5a63a0 100644 --- a/doc/pub/BM/html/._BM-bs020.html +++ b/doc/pub/BM/html/._BM-bs020.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -388,7 +400,7 @@ If we assume that \( \lambda_0 \) is the largest eigenvector we see that in the
  • 29
  • 30
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs021.html b/doc/pub/BM/html/._BM-bs021.html index 05086e4fe..395d46932 100644 --- a/doc/pub/BM/html/._BM-bs021.html +++ b/doc/pub/BM/html/._BM-bs021.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -394,7 +406,7 @@ $$
  • 30
  • 31
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs022.html b/doc/pub/BM/html/._BM-bs022.html index a8bdbf06a..9e41edeee 100644 --- a/doc/pub/BM/html/._BM-bs022.html +++ b/doc/pub/BM/html/._BM-bs022.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -385,7 +397,7 @@ Here we have written the previous matrix \( W_{ij}=W(j\rightarrow i) \).
  • 31
  • 32
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs023.html b/doc/pub/BM/html/._BM-bs023.html index 4e87fccd2..655b532f8 100644 --- a/doc/pub/BM/html/._BM-bs023.html +++ b/doc/pub/BM/html/._BM-bs023.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -384,7 +396,7 @@ we have reached the most likely state of the system, the so-called steady state
  • 32
  • 33
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs024.html b/doc/pub/BM/html/._BM-bs024.html index ac72c7617..d79f66f8e 100644 --- a/doc/pub/BM/html/._BM-bs024.html +++ b/doc/pub/BM/html/._BM-bs024.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -368,7 +380,7 @@ $$
  • 33
  • 34
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs025.html b/doc/pub/BM/html/._BM-bs025.html index 077b42ce7..d3c73c41d 100644 --- a/doc/pub/BM/html/._BM-bs025.html +++ b/doc/pub/BM/html/._BM-bs025.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -376,7 +388,7 @@ The algorithm can then be expressed as
  • 34
  • 35
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs026.html b/doc/pub/BM/html/._BM-bs026.html index 4ed860462..84b9e6121 100644 --- a/doc/pub/BM/html/._BM-bs026.html +++ b/doc/pub/BM/html/._BM-bs026.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -369,7 +381,7 @@ to the probability of being in a state \( j \) and performing a transition to th
  • 35
  • 36
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs027.html b/doc/pub/BM/html/._BM-bs027.html index 058a5a102..3bd49d612 100644 --- a/doc/pub/BM/html/._BM-bs027.html +++ b/doc/pub/BM/html/._BM-bs027.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -373,7 +385,7 @@ $$
  • 36
  • 37
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs028.html b/doc/pub/BM/html/._BM-bs028.html index a6d322bef..04fb60988 100644 --- a/doc/pub/BM/html/._BM-bs028.html +++ b/doc/pub/BM/html/._BM-bs028.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -383,7 +395,7 @@ $$
  • 37
  • 38
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs029.html b/doc/pub/BM/html/._BM-bs029.html index 25082292b..9ccd61b2f 100644 --- a/doc/pub/BM/html/._BM-bs029.html +++ b/doc/pub/BM/html/._BM-bs029.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -381,7 +393,7 @@ $$
  • 38
  • 39
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs030.html b/doc/pub/BM/html/._BM-bs030.html index 9a243e1e1..af9f38482 100644 --- a/doc/pub/BM/html/._BM-bs030.html +++ b/doc/pub/BM/html/._BM-bs030.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -391,7 +403,7 @@ which is nothing but the standard equation for a Markov chain when the steady st
  • 39
  • 40
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs031.html b/doc/pub/BM/html/._BM-bs031.html index 0c0c37a83..9b6c4ec94 100644 --- a/doc/pub/BM/html/._BM-bs031.html +++ b/doc/pub/BM/html/._BM-bs031.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -385,7 +397,7 @@ $$
  • 40
  • 41
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs032.html b/doc/pub/BM/html/._BM-bs032.html index ae5f78164..8aa5d4ec4 100644 --- a/doc/pub/BM/html/._BM-bs032.html +++ b/doc/pub/BM/html/._BM-bs032.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -369,7 +381,7 @@ $$
  • 41
  • 42
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs033.html b/doc/pub/BM/html/._BM-bs033.html index 987e4b240..f777e79b8 100644 --- a/doc/pub/BM/html/._BM-bs033.html +++ b/doc/pub/BM/html/._BM-bs033.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -384,7 +396,7 @@ $$
  • 42
  • 43
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs034.html b/doc/pub/BM/html/._BM-bs034.html index aa6f36fdd..9c5921eb5 100644 --- a/doc/pub/BM/html/._BM-bs034.html +++ b/doc/pub/BM/html/._BM-bs034.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -386,7 +398,7 @@ we never need to evaluate the partition function \( Z \).
  • 43
  • 44
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs035.html b/doc/pub/BM/html/._BM-bs035.html index 9acf0f427..a74188dbd 100644 --- a/doc/pub/BM/html/._BM-bs035.html +++ b/doc/pub/BM/html/._BM-bs035.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -379,7 +391,7 @@ $$
  • 44
  • 45
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs036.html b/doc/pub/BM/html/._BM-bs036.html index 965c8a38b..97838c6ec 100644 --- a/doc/pub/BM/html/._BM-bs036.html +++ b/doc/pub/BM/html/._BM-bs036.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -374,7 +386,7 @@ one place to another in space, we 'jump' from one microstate to another.
  • 45
  • 46
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs037.html b/doc/pub/BM/html/._BM-bs037.html index 527a3640c..c96a86231 100644 --- a/doc/pub/BM/html/._BM-bs037.html +++ b/doc/pub/BM/html/._BM-bs037.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -382,7 +394,7 @@ the transition probability \( T(i\rightarrow j) \) is symmetric, implying that \
  • 46
  • 47
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs038.html b/doc/pub/BM/html/._BM-bs038.html index a4dfc60e9..56a034ec2 100644 --- a/doc/pub/BM/html/._BM-bs038.html +++ b/doc/pub/BM/html/._BM-bs038.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -376,7 +388,7 @@ Our desired energy is \( E_0 \).
  • 47
  • 48
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs039.html b/doc/pub/BM/html/._BM-bs039.html index 3071bdf95..bbaa35be2 100644 --- a/doc/pub/BM/html/._BM-bs039.html +++ b/doc/pub/BM/html/._BM-bs039.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -375,7 +387,7 @@ we simulate long enough it should be included in our computation of an expectati
  • 48
  • 49
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs040.html b/doc/pub/BM/html/._BM-bs040.html index 29e3f2d41..36644f24d 100644 --- a/doc/pub/BM/html/._BM-bs040.html +++ b/doc/pub/BM/html/._BM-bs040.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -374,7 +386,7 @@ to this constraint.
  • 49
  • 50
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs041.html b/doc/pub/BM/html/._BM-bs041.html index ef84a92c5..cba7ca947 100644 --- a/doc/pub/BM/html/._BM-bs041.html +++ b/doc/pub/BM/html/._BM-bs041.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -373,7 +385,7 @@ $$
  • 50
  • 51
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs042.html b/doc/pub/BM/html/._BM-bs042.html index 4d92af66f..b1394dddc 100644 --- a/doc/pub/BM/html/._BM-bs042.html +++ b/doc/pub/BM/html/._BM-bs042.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -377,7 +389,7 @@ If the ratio is smaller than a given random number we accept the move to a highe
  • 51
  • 52
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs043.html b/doc/pub/BM/html/._BM-bs043.html index 8242f312c..169cce4ee 100644 --- a/doc/pub/BM/html/._BM-bs043.html +++ b/doc/pub/BM/html/._BM-bs043.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -371,7 +383,7 @@ fewer accepted moves.
  • 52
  • 53
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs044.html b/doc/pub/BM/html/._BM-bs044.html index fad0f4148..9bc78d94d 100644 --- a/doc/pub/BM/html/._BM-bs044.html +++ b/doc/pub/BM/html/._BM-bs044.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -380,7 +392,7 @@ $$
  • 53
  • 54
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs045.html b/doc/pub/BM/html/._BM-bs045.html index 274d4f3df..ef974cf52 100644 --- a/doc/pub/BM/html/._BM-bs045.html +++ b/doc/pub/BM/html/._BM-bs045.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -356,7 +368,7 @@ More text to come.
  • 54
  • 55
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs046.html b/doc/pub/BM/html/._BM-bs046.html index 182334f5a..67c7903ae 100644 --- a/doc/pub/BM/html/._BM-bs046.html +++ b/doc/pub/BM/html/._BM-bs046.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -367,7 +379,7 @@ Why use a generative model rather than the more well known discriminative deep n
  • 55
  • 56
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs047.html b/doc/pub/BM/html/._BM-bs047.html index 4e43a466b..4c276ee26 100644 --- a/doc/pub/BM/html/._BM-bs047.html +++ b/doc/pub/BM/html/._BM-bs047.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -361,7 +373,7 @@ History: The RBM was developed by amongst others Geoffrey Hinton, called by some
  • 56
  • 57
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs048.html b/doc/pub/BM/html/._BM-bs048.html index c25206634..458c3ed30 100644 --- a/doc/pub/BM/html/._BM-bs048.html +++ b/doc/pub/BM/html/._BM-bs048.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,10 +337,37 @@ MathJax.Hub.Config({ -

    The structure of the RBM network

    +

    Boltzmann machines (BM)

    -



    +
    +
    +

    +A BM is what we would call an undirected probabilistic graphical model +with stochastic continuous or discrete units. +

    +
    + +
    +
    +

    +It is interpreted as a stochastic recurrent neural network where the +state of each unit(neurons/nodes) depends on the units it is connected +to. The weights in the network represent thus the strength of the +interaction between various units/nodes. +

    +
    + +
    +
    +

    +It turns into a Hopfield network if we choose deterministic rather +than stochastic units. In contrast to a Hopfield network, a BM is a +so-called generative model. It allows us to generate new samples from +the learned distribution. +

    +
    +

    @@ -356,7 +395,7 @@ MathJax.Hub.Config({

  • 57
  • 58
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs049.html b/doc/pub/BM/html/._BM-bs049.html index f01e332e8..d87038b5a 100644 --- a/doc/pub/BM/html/._BM-bs049.html +++ b/doc/pub/BM/html/._BM-bs049.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,16 +337,40 @@ MathJax.Hub.Config({ -

    The network

    +

    A standard BM setup

    -The network layers: +

    +
    +

    +A standard BM network is divided into a set of observable and visible units \( \hat{x} \) and a set of unknown hidden units/nodes \( \hat{h} \). +

    +
    -
      -
    1. A function \( \mathbf{x} \) that represents the visible layer, a vector of \( M \) elements (nodes). This layer represents both what the RBM might be given as training input, and what we want it to be able to reconstruct. This might for example be the pixels of an image, the spin values of the Ising model, or coefficients representing speech.
    2. -
    3. The function \( \mathbf{h} \) represents the hidden, or latent, layer. A vector of \( N \) elements (nodes). Also called "feature detectors".
    4. -
    +

    +

    +
    +

    +Additionally there can be bias nodes for the hidden and visible layers. These biases are normally set to \( 1 \). +

    +
    + + +

    +

    +
    +

    +BMs are stackable, meaning they cwe can train a BM which serves as input to another BM. We can construct deep networks for learning complex PDFs. The layers can be trained one after another, a feature which makes them popular in deep learning +

    +
    + + +

    +However, they are often hard to train. This leads to the introduction of so-called restricted BMs, or RBMS. +Here we take away all lateral connections between nodes in the visible layer as well as connections between nodes in the hidden layer. The network is illustrated in the figure below. + +

    diff --git a/doc/pub/BM/html/._BM-bs050.html b/doc/pub/BM/html/._BM-bs050.html index 797909147..bba970f2c 100644 --- a/doc/pub/BM/html/._BM-bs050.html +++ b/doc/pub/BM/html/._BM-bs050.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,28 +337,12 @@ MathJax.Hub.Config({ -

    Goals

    +

    The structure of the RBM network

    -The goal of the hidden layer is to increase the model's expressive power. We encode complex interactions between visible variables by introducing additional, hidden variables that interact with visible degrees of freedom in a simple manner, yet still reproduce the complex correlations between visible degrees in the data once marginalized over (integrated out). +



    -Examples of this trick being employed in physics: - -

      -
    1. The Hubbard-Stratonovich transformation
    2. -
    3. The introduction of ghost fields in gauge theory
    4. -
    5. Shadow wave functions in Quantum Monte Carlo simulations
    6. -
    - -The network parameters, to be optimized/learned: - -
      -
    1. \( \mathbf{a} \) represents the visible bias, a vector of same length as \( \mathbf{x} \).
    2. -
    3. \( \mathbf{b} \) represents the hidden bias, a vector of same lenght as \( \mathbf{h} \).
    4. -
    5. \( W \) represents the interaction weights, a matrix of size \( M\times N \).
    6. -
    -

    diff --git a/doc/pub/BM/html/._BM-bs051.html b/doc/pub/BM/html/._BM-bs051.html index 1217b8bef..68374fd23 100644 --- a/doc/pub/BM/html/._BM-bs051.html +++ b/doc/pub/BM/html/._BM-bs051.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,26 +337,16 @@ MathJax.Hub.Config({ -

    Joint distribution and the Energy function

    -The restricted Boltzmann machine is described by a Bolztmann distribution -$$ -\begin{align} - P_{rbm}(\mathbf{x},\mathbf{h}) = \frac{1}{Z} e^{-\frac{1}{T_0}E(\mathbf{x},\mathbf{h})}, -\tag{5} -\end{align} -$$ - -where \( Z \) is the normalization constant or partition function, defined as -$$ -\begin{align} - Z = \int \int e^{-\frac{1}{T_0}E(\mathbf{x},\mathbf{h})} d\mathbf{x} d\mathbf{h}. -\tag{6} -\end{align} -$$ - -It is common to ignore \( T_0 \) by setting it to one. +

    The network

    +The network layers: + +

      +
    1. A function \( \mathbf{x} \) that represents the visible layer, a vector of \( M \) elements (nodes). This layer represents both what the RBM might be given as training input, and what we want it to be able to reconstruct. This might for example be the pixels of an image, the spin values of the Ising model, or coefficients representing speech.
    2. +
    3. The function \( \mathbf{h} \) represents the hidden, or latent, layer. A vector of \( N \) elements (nodes). Also called "feature detectors".
    4. +
    +

    diff --git a/doc/pub/BM/html/._BM-bs052.html b/doc/pub/BM/html/._BM-bs052.html index 3c998c9d7..361b13e76 100644 --- a/doc/pub/BM/html/._BM-bs052.html +++ b/doc/pub/BM/html/._BM-bs052.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,17 +337,28 @@ MathJax.Hub.Config({ -

    Network Elements

    +

    Goals

    -The function \( E(\mathbf{x},\mathbf{h}) \) gives the energy of a -configuration (pair of vectors) \( (\mathbf{x}, \mathbf{h}) \). The lower -the energy of a configuration, the higher the probability of it. This -function also depends on the parameters \( \mathbf{a} \), \( \mathbf{b} \) and -\( W \). Thus, when we adjust them during the learning procedure, we are -adjusting the energy function to best fit our problem. +The goal of the hidden layer is to increase the model's expressive power. We encode complex interactions between visible variables by introducing additional, hidden variables that interact with visible degrees of freedom in a simple manner, yet still reproduce the complex correlations between visible degrees in the data once marginalized over (integrated out).

    +Examples of this trick being employed in physics: + +

      +
    1. The Hubbard-Stratonovich transformation
    2. +
    3. The introduction of ghost fields in gauge theory
    4. +
    5. Shadow wave functions in Quantum Monte Carlo simulations
    6. +
    + +The network parameters, to be optimized/learned: + +
      +
    1. \( \mathbf{a} \) represents the visible bias, a vector of same length as \( \mathbf{x} \).
    2. +
    3. \( \mathbf{b} \) represents the hidden bias, a vector of same lenght as \( \mathbf{h} \).
    4. +
    5. \( W \) represents the interaction weights, a matrix of size \( M\times N \).
    6. +
    +

    diff --git a/doc/pub/BM/html/._BM-bs053.html b/doc/pub/BM/html/._BM-bs053.html index 450ae601e..52919ba29 100644 --- a/doc/pub/BM/html/._BM-bs053.html +++ b/doc/pub/BM/html/._BM-bs053.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,42 +337,24 @@ MathJax.Hub.Config({ -

    Defining different types of RBMs

    -There are different variants of RBMs, and the differences lie in the types of visible and hidden units we choose as well as in the implementation of the energy function \( E(\mathbf{x},\mathbf{h}) \). - -

    -

    -
    -

    - -

    -RBMs were first developed using binary units in both the visible and hidden layer. The corresponding energy function is defined as follows: +

    Joint distribution

    +The restricted Boltzmann machine is described by a Bolztmann distribution $$ \begin{align} - E(\mathbf{x}, \mathbf{h}) = - \sum_i^M x_i a_i- \sum_j^N b_j h_j - \sum_{i,j}^{M,N} x_i w_{ij} h_j, -\tag{7} + P_{rbm}(\mathbf{x},\mathbf{h}) = \frac{1}{Z} e^{-\frac{1}{T_0}E(\mathbf{x},\mathbf{h})}, +\tag{5} \end{align} $$ -where the binary values taken on by the nodes are most commonly 0 and 1. -
    -
    - -
    -
    -

    - -

    -Another varient is the RBM where the visible units are Gaussian while the hidden units remain binary: +where \( Z \) is the normalization constant or partition function, defined as $$ \begin{align} - E(\mathbf{x}, \mathbf{h}) = \sum_i^M \frac{(x_i - a_i)^2}{2\sigma_i^2} - \sum_j^N b_j h_j - \sum_{i,j}^{M,N} \frac{x_i w_{ij} h_j}{\sigma_i^2}. -\tag{8} + Z = \int \int e^{-\frac{1}{T_0}E(\mathbf{x},\mathbf{h})} d\mathbf{x} d\mathbf{h}. +\tag{6} \end{align} $$ -

    -
    +It is common to ignore \( T_0 \) by setting it to one.

    @@ -388,7 +382,7 @@ $$

  • 62
  • 63
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs054.html b/doc/pub/BM/html/._BM-bs054.html index 6560a5359..18ca94de2 100644 --- a/doc/pub/BM/html/._BM-bs054.html +++ b/doc/pub/BM/html/._BM-bs054.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,22 +337,32 @@ MathJax.Hub.Config({ -

    More about RBMs

    +

    Network Elements, the energy function

    -
      -
    1. Useful when we model continuous data (i.e., we wish \( \mathbf{x} \) to be continuous)
    2. -
    3. Requires a smaller learning rate, since there's no upper bound to the value a component might take in the reconstruction
    4. -
    +

    +The function \( E(\mathbf{x},\mathbf{h}) \) gives the energy of a +configuration (pair of vectors) \( (\mathbf{x}, \mathbf{h}) \). The lower +the energy of a configuration, the higher the probability of it. This +function also depends on the parameters \( \mathbf{a} \), \( \mathbf{b} \) and +\( W \). Thus, when we adjust them during the learning procedure, we are +adjusting the energy function to best fit our problem. -Other types of units include: +

    +An expression for the energy function is +$$ +E(\hat{x},\hat{h}) = -\sum_{ia}^{NA}b_i^a \alpha_i^a(x_i)-\sum_{jd}^{MD}c_j^d \beta_j^d(h_j)-\sum_{ijad}^{NAMD}b_i^a \alpha_i^a(x_i)c_j^d \beta_j^d(h_j)w_{ij}^{ad}. +$$ -

      -
    1. Softmax and multinomial units
    2. -
    3. Gaussian visible and hidden units
    4. -
    5. Binomial units
    6. -
    7. Rectified linear units
    8. -
    +

    +Here \( \beta_j^d(h_j) \) and \( \alpha_i^a(x_j) \) are so-called transfer functions that map a given input value to a desired feature value. The labels \( a \) and \( d \) denote that there can be multiple transfer functions per variable. The first sum depends only on the visible units. The second on the hidden ones. Note that there is no connection between nodes in a layer. +

    +The quantities \( b \) and \( c \) can be interpreted as the visible and hidden biases, respectively. + +

    +The connection between the nodes in the two layers is given by the weights \( w_{ij} \). + +

    diff --git a/doc/pub/BM/html/._BM-bs055.html b/doc/pub/BM/html/._BM-bs055.html index dde2da421..b3463aa67 100644 --- a/doc/pub/BM/html/._BM-bs055.html +++ b/doc/pub/BM/html/._BM-bs055.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,28 +337,43 @@ MathJax.Hub.Config({ -

    Sampling: Metropolis sampling

    -In order to sample from the RBM probability distribution it is common to use Markov Chain Monte Carlo (MCMC) algorithms such as Metropolis-Hastings or Gibbs sampling. +

    Defining different types of RBMs

    +There are different variants of RBMs, and the differences lie in the types of visible and hidden units we choose as well as in the implementation of the energy function \( E(\mathbf{x},\mathbf{h}) \).

    -Metropolis sampling starts by suggesting a new configuration \( \boldsymbol{x}^{k+1} \). In the brute force method this is done by some random change of the visible units. The new configuration is then accepted with the acceptance probability -$$ -\begin{align} - A(\boldsymbol{x}^k \rightarrow \boldsymbol{x}^{k+1}) = \text{min} (1, \frac{P(\boldsymbol{x}^{k+1})}{P(\boldsymbol{x}^k)}), -\tag{9} -\end{align} -$$ +

    +
    +

    -where we need the marginalized probability +

    +RBMs were first developed using binary units in both the visible and hidden layer. The corresponding energy function is defined as follows: $$ \begin{align} - P(\boldsymbol{x}) &= \sum_\mathbf{h} P_{rbm}(\mathbf{x}, \mathbf{h}) -\tag{10}\\ - &= \frac{1}{Z}\sum_\mathbf{h} e^{-E(\mathbf{x}, \mathbf{h})}. -\tag{11} + E(\mathbf{x}, \mathbf{h}) = - \sum_i^M x_i a_i- \sum_j^N b_j h_j - \sum_{i,j}^{M,N} x_i w_{ij} h_j, +\tag{7} \end{align} $$ +where the binary values taken on by the nodes are most commonly 0 and 1. +

    +
    + +
    +
    +

    + +

    +Another varient is the RBM where the visible units are Gaussian while the hidden units remain binary: +$$ +\begin{align} + E(\mathbf{x}, \mathbf{h}) = \sum_i^M \frac{(x_i - a_i)^2}{2\sigma_i^2} - \sum_j^N b_j h_j - \sum_{i,j}^{M,N} \frac{x_i w_{ij} h_j}{\sigma_i^2}. +\tag{8} +\end{align} +$$ +

    +
    + +

    @@ -371,6 +398,9 @@ $$

  • 62
  • 63
  • 64
  • +
  • 65
  • +
  • ...
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs056.html b/doc/pub/BM/html/._BM-bs056.html index 1577b29ad..f51d1511d 100644 --- a/doc/pub/BM/html/._BM-bs056.html +++ b/doc/pub/BM/html/._BM-bs056.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,26 +337,22 @@ MathJax.Hub.Config({ -

    Sampling: Gibbs sampling

    +

    More about RBMs

    -

    -In this method we sample from the joint probability \( P_{rbm} (\mathbf{x}, \mathbf{h}) \) by way of a two step sampling process. We alternately update the visible and hidden units. -New samples are generated according to the conditional probabilities \( P(x_i|\mathbf{h}) \) and \( P(h_j|\mathbf{x}) \) respectively and accepted with the probability of \( 1 \). While the the visible nodes are dependent on the hidden nodes and vice versa, the nodes are independent of other nodes within the same layer. This is due to there being no intra layer interactions in the restricted Boltzmann machine. +

      +
    1. Useful when we model continuous data (i.e., we wish \( \mathbf{x} \) to be continuous)
    2. +
    3. Requires a smaller learning rate, since there's no upper bound to the value a component might take in the reconstruction
    4. +
    -

    -The conditional probabilities are often referred to as the activitation functions in the neural networks context due to their role in determining the node outputs. For the binary-binary RBM they are -$$ -\begin{align} - P(h_j = 1 | \boldsymbol{x}) &= \frac{1}{1 + e^{-b_j - \sum_i x_i w_{ij}}} -\tag{12}\\ - P(x_i = 1 | \boldsymbol{h}) &= \frac{1}{1 + e^{-a_j - \sum_j h_j w_{ij}}}, -\tag{13} -\end{align} -$$ +Other types of units include: -where we recognize the logistic sigmoid function \( \sigma (x) = 1/(1+exp(-x)) \). +

      +
    1. Softmax and multinomial units
    2. +
    3. Gaussian visible and hidden units
    4. +
    5. Binomial units
    6. +
    7. Rectified linear units
    8. +
    -

    diff --git a/doc/pub/BM/html/._BM-bs057.html b/doc/pub/BM/html/._BM-bs057.html index 76edbecd6..20051d66f 100644 --- a/doc/pub/BM/html/._BM-bs057.html +++ b/doc/pub/BM/html/._BM-bs057.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,18 +337,27 @@ MathJax.Hub.Config({ -

    Gaussian RBM

    -For the Gaussian-Binary RBM the conditional probabilities are +

    Sampling: Metropolis sampling

    +In order to sample from the RBM probability distribution it is common to use Markov Chain Monte Carlo (MCMC) algorithms such as Metropolis-Hastings or Gibbs sampling. + +

    +Metropolis sampling starts by suggesting a new configuration \( \boldsymbol{x}^{k+1} \). In the brute force method this is done by some random change of the visible units. The new configuration is then accepted with the acceptance probability $$ \begin{align} - P(x_i|\mathbf{h}) &= \mathcal{N}(x_i; a_i+ \sum_j h_j w_{ij}, \sigma^2) -\tag{14}\\ - P(h_j=1|\mathbf{x}) &= \frac{1}{1+e^{-b_j-\frac{1}{\sigma^2} \sum_i x_i w_{ij}}}, -\tag{15} -\end{align} + A(\boldsymbol{x}^k \rightarrow \boldsymbol{x}^{k+1}) = \text{min} (1, \frac{P(\boldsymbol{x}^{k+1})}{P(\boldsymbol{x}^k)}), +\tag{9} +\end{align} $$ -while the visible units now follow a normal distribution, we see the hidden units again follow the logistic sigmoid function. +where we need the marginalized probability +$$ +\begin{align} + P(\boldsymbol{x}) &= \sum_\mathbf{h} P_{rbm}(\mathbf{x}, \mathbf{h}) +\tag{10}\\ + &= \frac{1}{Z}\sum_\mathbf{h} e^{-E(\mathbf{x}, \mathbf{h})}. +\tag{11} +\end{align} +$$

    @@ -360,6 +381,11 @@ while the visible units now follow a normal distribution, we see the hidden unit

  • 62
  • 63
  • 64
  • +
  • 65
  • +
  • 66
  • +
  • 67
  • +
  • ...
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs058.html b/doc/pub/BM/html/._BM-bs058.html index 5a3283a64..bfd056fb3 100644 --- a/doc/pub/BM/html/._BM-bs058.html +++ b/doc/pub/BM/html/._BM-bs058.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,22 +337,24 @@ MathJax.Hub.Config({ -

    Cost function

    +

    Sampling: Gibbs sampling

    -When working with a training dataset, the most common training approach is maximizing the log-likelihood of the training data. The log likelihood characterizes the log-probability of generating the observed data using our generative model. Using this method our cost function is chosen as the negative log-likelihood. The learning then consists of trying to find parameters that maximize the probability of the dataset, and is known as Maximum Likelihood Estimation (MLE). -Denoting the parameters as \( \boldsymbol{\theta} = a_1,...,a_M,b_1,...,b_N,w_{11},...,w_{MN} \), the log-likelihood is given by +In this method we sample from the joint probability \( P_{rbm} (\mathbf{x}, \mathbf{h}) \) by way of a two step sampling process. We alternately update the visible and hidden units. +New samples are generated according to the conditional probabilities \( P(x_i|\mathbf{h}) \) and \( P(h_j|\mathbf{x}) \) respectively and accepted with the probability of \( 1 \). While the the visible nodes are dependent on the hidden nodes and vice versa, the nodes are independent of other nodes within the same layer. This is due to there being no intra layer interactions in the restricted Boltzmann machine. + +

    +The conditional probabilities are often referred to as the activitation functions in the neural networks context due to their role in determining the node outputs. For the binary-binary RBM they are $$ \begin{align} - \mathcal{L}(\{ \theta_i \}) &= \langle \text{log} P_\theta(\boldsymbol{x}) \rangle_{data} -\tag{16}\\ - &= - \langle E(\boldsymbol{x}; \{ \theta_i\}) \rangle_{data} - \text{log} Z(\{ \theta_i\}), -\tag{17} + P(h_j = 1 | \boldsymbol{x}) &= \frac{1}{1 + e^{-b_j - \sum_i x_i w_{ij}}} +\tag{12}\\ + P(x_i = 1 | \boldsymbol{h}) &= \frac{1}{1 + e^{-a_j - \sum_j h_j w_{ij}}}, +\tag{13} \end{align} $$ -where we used that the normalization constant does not depend on the data, \( \langle \text{log} Z(\{ \theta_i\}) \rangle = \text{log} Z(\{ \theta_i\}) \) -Our cost function is the negative log-likelihood, \( \mathcal{C}(\{ \theta_i \}) = - \mathcal{L}(\{ \theta_i \}) \) +where we recognize the logistic sigmoid function \( \sigma (x) = 1/(1+exp(-x)) \).

    @@ -363,6 +377,12 @@ Our cost function is the negative log-likelihood, \( \mathcal{C}(\{ \theta_i \})

  • 62
  • 63
  • 64
  • +
  • 65
  • +
  • 66
  • +
  • 67
  • +
  • 68
  • +
  • ...
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs059.html b/doc/pub/BM/html/._BM-bs059.html index d820433ab..3e8932a6f 100644 --- a/doc/pub/BM/html/._BM-bs059.html +++ b/doc/pub/BM/html/._BM-bs059.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,45 +337,18 @@ MathJax.Hub.Config({ -

    Optimization / Training

    -The training procedure of choice often is Stochastic Gradient Descent (SGD). It consists of a series of iterations where we update the parameters according to the equation +

    Gaussian RBM

    +For the Gaussian-Binary RBM the conditional probabilities are $$ \begin{align} - \boldsymbol{\theta}_{k+1} = \boldsymbol{\theta}_k - \eta \nabla \mathcal{C} (\boldsymbol{\theta}_k) -\tag{18} + P(x_i|\mathbf{h}) &= \mathcal{N}(x_i; a_i+ \sum_j h_j w_{ij}, \sigma^2) +\tag{14}\\ + P(h_j=1|\mathbf{x}) &= \frac{1}{1+e^{-b_j-\frac{1}{\sigma^2} \sum_i x_i w_{ij}}}, +\tag{15} \end{align} $$ -at each \( k \)-th iteration. There are a range of variants of the algorithm which aim at making the learning rate \( \eta \) more adaptive so the method might be more efficient while remaining stable. - -

    -We now need the gradient of the cost function in order to minimize it. We find that -$$ -\begin{align} - \frac{\partial \mathcal{C}(\{ \theta_i\})}{\partial \theta_i} - &= \langle \frac{\partial E(\boldsymbol{x}; \theta_i)}{\partial \theta_i} \rangle_{data} - + \frac{\partial \text{log} Z(\{ \theta_i\})}{\partial \theta_i} -\tag{19}\\ - &= \langle O_i(\boldsymbol{x}) \rangle_{data} - \langle O_i(\boldsymbol{x}) \rangle_{model}, -\tag{20} -\end{align} -$$ - -where in order to simplify notation we defined the "operator" -$$ -\begin{align} - O_i(\boldsymbol{x}) = \frac{\partial E(\boldsymbol{x}; \theta_i)}{\partial \theta_i}, -\tag{21} -\end{align} -$$ - -and used the statistical mechanics relationship between expectation values and the log-partition function: -$$ -\begin{align} - \langle O_i(\boldsymbol{x}) \rangle_{model} = \text{Tr} P_\theta(\boldsymbol{x})O_i(\boldsymbol{x}) = - \frac{\partial \text{log} Z(\{ \theta_i\})}{\partial \theta_i}. -\tag{22} -\end{align} -$$ +while the visible units now follow a normal distribution, we see the hidden units again follow the logistic sigmoid function.

    @@ -385,6 +370,13 @@ $$

  • 62
  • 63
  • 64
  • +
  • 65
  • +
  • 66
  • +
  • 67
  • +
  • 68
  • +
  • 69
  • +
  • ...
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs060.html b/doc/pub/BM/html/._BM-bs060.html index b9fd3b967..50f8e3235 100644 --- a/doc/pub/BM/html/._BM-bs060.html +++ b/doc/pub/BM/html/._BM-bs060.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -323,28 +335,24 @@ MathJax.Hub.Config({

     

     

     

    - + -

    More on RBMs

    +

    Cost function

    -The data-dependent term in the gradient is known as the positive phase of the gradient, while the model-dependent term is known as the negative phase of the gradient. The aim of the training is to lower the energy of configurations that are near observed data points (increasing their probability), and raising the energy of configurations that are far from observed data points (decreasing their probability). - -

    -The gradient of the negative log-likelihood cost function of a Binary-Binary RBM is then +When working with a training dataset, the most common training approach is maximizing the log-likelihood of the training data. The log likelihood characterizes the log-probability of generating the observed data using our generative model. Using this method our cost function is chosen as the negative log-likelihood. The learning then consists of trying to find parameters that maximize the probability of the dataset, and is known as Maximum Likelihood Estimation (MLE). +Denoting the parameters as \( \boldsymbol{\theta} = a_1,...,a_M,b_1,...,b_N,w_{11},...,w_{MN} \), the log-likelihood is given by $$ \begin{align} - \frac{\partial \mathcal{C} (w_{ij}, a_i, b_j)}{\partial w_{ij}} =& \langle x_i h_j \rangle_{data} - \langle x_i h_j \rangle_{model} -\tag{23}\\ - \frac{\partial \mathcal{C} (w_{ij}, a_i, b_j)}{\partial a_{ij}} =& \langle x_i \rangle_{data} - \langle x_i \rangle_{model} -\tag{24}\\ - \frac{\partial \mathcal{C} (w_{ij}, a_i, b_j)}{\partial b_{ij}} =& \langle h_i \rangle_{data} - \langle h_i \rangle_{model}. -\tag{25}\\ -\tag{26} + \mathcal{L}(\{ \theta_i \}) &= \langle \text{log} P_\theta(\boldsymbol{x}) \rangle_{data} +\tag{16}\\ + &= - \langle E(\boldsymbol{x}; \{ \theta_i\}) \rangle_{data} - \text{log} Z(\{ \theta_i\}), +\tag{17} \end{align} $$ -To get the expecation values with respect to the data, we set the visible units to each of the observed samples in the training data, then update the hidden units according to the conditional probability found before. We then average over all samples in the training data to calculate expectation values with respect to the data. +where we used that the normalization constant does not depend on the data, \( \langle \text{log} Z(\{ \theta_i\}) \rangle = \text{log} Z(\{ \theta_i\}) \) +Our cost function is the negative log-likelihood, \( \mathcal{C}(\{ \theta_i \}) = - \mathcal{L}(\{ \theta_i \}) \)

    @@ -365,6 +373,12 @@ To get the expecation values with respect to the data, we set the visib

  • 62
  • 63
  • 64
  • +
  • 65
  • +
  • 66
  • +
  • 67
  • +
  • 68
  • +
  • 69
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs061.html b/doc/pub/BM/html/._BM-bs061.html index 102c6c1e1..176c69a9f 100644 --- a/doc/pub/BM/html/._BM-bs061.html +++ b/doc/pub/BM/html/._BM-bs061.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,10 +337,47 @@ MathJax.Hub.Config({ -

    Which sampling to use

    +

    Optimization / Training

    -To get the expectation values with respect to the model, we use Gibbs sampling. We can either initialize the \( \boldsymbol{x} \) randomly or with a training sample. While we ideally want a large number of Gibbs iterations \( n\rightarrow n \), one might decide to truncate it earlier for efficiency. Doing this while having intialized \( \boldsymbol{x} \) with a training data vector is referred to as contrastive divergence (CD), because one is then closer to approximating the gradient of this function than the negative log-likelihood. The contrastive divergence function is the difference between two Kullback-Leibler divergences (also called relative entropy), which measure how one probability distribution diverges from a second, expected probability distribution (in this case the estimated one from the ground truth one). +The training procedure of choice often is Stochastic Gradient Descent (SGD). It consists of a series of iterations where we update the parameters according to the equation +$$ +\begin{align} + \boldsymbol{\theta}_{k+1} = \boldsymbol{\theta}_k - \eta \nabla \mathcal{C} (\boldsymbol{\theta}_k) +\tag{18} +\end{align} +$$ + +at each \( k \)-th iteration. There are a range of variants of the algorithm which aim at making the learning rate \( \eta \) more adaptive so the method might be more efficient while remaining stable. + +

    +We now need the gradient of the cost function in order to minimize it. We find that +$$ +\begin{align} + \frac{\partial \mathcal{C}(\{ \theta_i\})}{\partial \theta_i} + &= \langle \frac{\partial E(\boldsymbol{x}; \theta_i)}{\partial \theta_i} \rangle_{data} + + \frac{\partial \text{log} Z(\{ \theta_i\})}{\partial \theta_i} +\tag{19}\\ + &= \langle O_i(\boldsymbol{x}) \rangle_{data} - \langle O_i(\boldsymbol{x}) \rangle_{model}, +\tag{20} +\end{align} +$$ + +where in order to simplify notation we defined the "operator" +$$ +\begin{align} + O_i(\boldsymbol{x}) = \frac{\partial E(\boldsymbol{x}; \theta_i)}{\partial \theta_i}, +\tag{21} +\end{align} +$$ + +and used the statistical mechanics relationship between expectation values and the log-partition function: +$$ +\begin{align} + \langle O_i(\boldsymbol{x}) \rangle_{model} = \text{Tr} P_\theta(\boldsymbol{x})O_i(\boldsymbol{x}) = - \frac{\partial \text{log} Z(\{ \theta_i\})}{\partial \theta_i}. +\tag{22} +\end{align} +$$

    @@ -348,6 +397,12 @@ To get the expectation values with respect to the model, we use Gibbs s

  • 62
  • 63
  • 64
  • +
  • 65
  • +
  • 66
  • +
  • 67
  • +
  • 68
  • +
  • 69
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/._BM-bs062.html b/doc/pub/BM/html/._BM-bs062.html index 2322c9e79..0c03d461b 100644 --- a/doc/pub/BM/html/._BM-bs062.html +++ b/doc/pub/BM/html/._BM-bs062.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -323,30 +335,30 @@ MathJax.Hub.Config({

     

     

     

    - + -

    Recent examples: RBMs for the quantum many body problem

    +

    More on RBMs

    -The idea of applying RBMs to quantum many body problems was presented by G. Carleo and M. Troyer, working with ETH Zurich and Microsoft Research. +The data-dependent term in the gradient is known as the positive phase of the gradient, while the model-dependent term is known as the negative phase of the gradient. The aim of the training is to lower the energy of configurations that are near observed data points (increasing their probability), and raising the energy of configurations that are far from observed data points (decreasing their probability).

    -Some of their motivation included +The gradient of the negative log-likelihood cost function of a Binary-Binary RBM is then +$$ +\begin{align} + \frac{\partial \mathcal{C} (w_{ij}, a_i, b_j)}{\partial w_{ij}} =& \langle x_i h_j \rangle_{data} - \langle x_i h_j \rangle_{model} +\tag{23}\\ + \frac{\partial \mathcal{C} (w_{ij}, a_i, b_j)}{\partial a_{ij}} =& \langle x_i \rangle_{data} - \langle x_i \rangle_{model} +\tag{24}\\ + \frac{\partial \mathcal{C} (w_{ij}, a_i, b_j)}{\partial b_{ij}} =& \langle h_i \rangle_{data} - \langle h_i \rangle_{model}. +\tag{25}\\ +\tag{26} +\end{align} +$$ -

    +To get the expecation values with respect to the data, we set the visible units to each of the observed samples in the training data, then update the hidden units according to the conditional probability found before. We then average over all samples in the training data to calculate expectation values with respect to the data. +

    diff --git a/doc/pub/BM/html/._BM-bs063.html b/doc/pub/BM/html/._BM-bs063.html index 064423b3e..eeaaa99f1 100644 --- a/doc/pub/BM/html/._BM-bs063.html +++ b/doc/pub/BM/html/._BM-bs063.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -325,13 +337,12 @@ MathJax.Hub.Config({ -

    Choose the right RBM

    +

    Which sampling to use

    -Carleo and Troyer applied the RBM to the quantum mechanical spin lattice systems of the Ising model and Heisenberg model, with encouraging results. Our goal is to test the method on systems of moving particles. For the spin lattice systems it was natural to use a binary-binary RBM, with the nodes taking values of 1 and -1. For moving particles, on the other hand, we want the visible nodes to be continuous, representing position coordinates. Thus, we start by choosing a Gaussian-binary RBM, where the visible nodes are continuous and hidden nodes take on values of 0 or 1. If eventually we would like the hidden nodes to be continuous as well the rectified linear units seem like the most relevant choice. +To get the expectation values with respect to the model, we use Gibbs sampling. We can either initialize the \( \boldsymbol{x} \) randomly or with a training sample. While we ideally want a large number of Gibbs iterations \( n\rightarrow n \), one might decide to truncate it earlier for efficiency. Doing this while having intialized \( \boldsymbol{x} \) with a training data vector is referred to as contrastive divergence (CD), because one is then closer to approximating the gradient of this function than the negative log-likelihood. The contrastive divergence function is the difference between two Kullback-Leibler divergences (also called relative entropy), which measure how one probability distribution diverges from a second, expected probability distribution (in this case the estimated one from the ground truth one).

    -

    diff --git a/doc/pub/BM/html/._BM-bs064.html b/doc/pub/BM/html/._BM-bs064.html index b2cf6a620..f235e2b3d 100644 --- a/doc/pub/BM/html/._BM-bs064.html +++ b/doc/pub/BM/html/._BM-bs064.html @@ -188,37 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), + ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), - ('RBMs for the quantum many body problem', 2, None, '___sec61'), - ('Choose the right RBM', 2, None, '___sec62'), - ('Representing the wave function', 2, None, '___sec63'), - ('Choose the cost function', 2, None, '___sec64'), - ('Running the codes', 2, None, '___sec65'), + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), ('Energy as function of iterations, $N=2$ electrons', 2, None, - '___sec66'), - ('Energy as function of iterations, $N=6$ electrons', - 2, - None, - '___sec67'), - ('Conclusions and where do we stand', 2, None, '___sec68')]} + '___sec68')]} end of tocinfo --> @@ -303,28 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • -
  • Representing the wave function
  • -
  • Choose the cost function
  • -
  • Running the codes
  • -
  • Energy as function of iterations, \( N=2 \) electrons
  • -
  • Energy as function of iterations, \( N=6 \) electrons
  • -
  • Conclusions and where do we stand
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -340,41 +337,28 @@ MathJax.Hub.Config({ -

    Representing the wave function

    -The wavefunction should be a probability amplitude depending on \( \boldsymbol{x} \). The RBM model is given by the joint distribution of \( \boldsymbol{x} \) and \( \boldsymbol{h} \) -$$ -\begin{align} - F_{rbm}(\mathbf{x},\mathbf{h}) = \frac{1}{Z} e^{-\frac{1}{T_0}E(\mathbf{x},\mathbf{h})}. -\tag{27} -\end{align} -$$ - -To find the marginal distribution of \( \boldsymbol{x} \) we set: -$$ -\begin{align} - F_{rbm}(\mathbf{x}) &= \sum_\mathbf{h} F_{rbm}(\mathbf{x}, \mathbf{h}) -\tag{28}\\ - &= \frac{1}{Z}\sum_\mathbf{h} e^{-E(\mathbf{x}, \mathbf{h})}. -\tag{29} -\end{align} -$$ - -Now this is what we use to represent the wave function, calling it a neural-network quantum state (NQS) -$$ -\begin{align} - \Psi (\mathbf{X}) &= F_{rbm}(\mathbf{x}) -\tag{30}\\ - &= \frac{1}{Z}\sum_{\boldsymbol{h}} e^{-E(\mathbf{x}, \mathbf{h})} -\tag{31}\\ - &= \frac{1}{Z} \sum_{\{h_j\}} e^{-\sum_i^M \frac{(x_i - a_i)^2}{2\sigma^2} + \sum_j^N b_j h_j + \sum_{i,j}^{M,N} \frac{x_i w_{ij} h_j}{\sigma^2}} -\tag{32}\\ - &= \frac{1}{Z} e^{-\sum_i^M \frac{(x_i - a_i)^2}{2\sigma^2}} \prod_j^N (1 + e^{b_j + \sum_i^M \frac{x_i w_{ij}}{\sigma^2}}). -\tag{33}\\ -\tag{34} -\end{align} -$$ +

    Recent examples: RBMs for the quantum many body problem

    +The idea of applying RBMs to quantum many body problems was presented by G. Carleo and M. Troyer, working with ETH Zurich and Microsoft Research. + +

    +Some of their motivation included + +

    +

    @@ -340,23 +337,10 @@ MathJax.Hub.Config({ -

    Choose the cost function

    -Now we don't necessarily have training data (unless we generate it by using some other method). However, what we do have is the variational principle which allows us to obtain the ground state wave function by minimizing the expectation value of the energy of a trial wavefunction (corresponding to the untrained NQS). Similarly to the traditional variational Monte Carlo method then, it is the local energy we wish to minimize. The gradient to use for the stochastic gradient descent procedure is -$$ -\begin{align} - G_i = \frac{\partial \langle E_L \rangle}{\partial \theta_i} - = 2(\langle E_L \frac{1}{\Psi}\frac{\partial \Psi}{\partial \theta_i} \rangle - \langle E_L \rangle \langle \frac{1}{\Psi}\frac{\partial \Psi}{\partial \theta_i} \rangle ), -\tag{35} -\end{align} -$$ +

    Choose the right RBM

    -where the local energy is given by -$$ -\begin{align} - E_L = \frac{1}{\Psi} \hat{\mathbf{H}} \Psi. -\tag{36} -\end{align} -$$ +

    +Carleo and Troyer applied the RBM to the quantum mechanical spin lattice systems of the Ising model and Heisenberg model, with encouraging results. Our goal is to test the method on systems of moving particles. For the spin lattice systems it was natural to use a binary-binary RBM, with the nodes taking values of 1 and -1. For moving particles, on the other hand, we want the visible nodes to be continuous, representing position coordinates. Thus, we start by choosing a Gaussian-binary RBM, where the visible nodes are continuous and hidden nodes take on values of 0 or 1. If eventually we would like the hidden nodes to be continuous as well the rectified linear units seem like the most relevant choice.

    diff --git a/doc/pub/BM/html/._BM-bs066.html b/doc/pub/BM/html/._BM-bs066.html index 984197c81..69b15ca6e 100644 --- a/doc/pub/BM/html/._BM-bs066.html +++ b/doc/pub/BM/html/._BM-bs066.html @@ -188,37 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), + ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), - ('RBMs for the quantum many body problem', 2, None, '___sec61'), - ('Choose the right RBM', 2, None, '___sec62'), - ('Representing the wave function', 2, None, '___sec63'), - ('Choose the cost function', 2, None, '___sec64'), - ('Running the codes', 2, None, '___sec65'), + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), ('Energy as function of iterations, $N=2$ electrons', 2, None, - '___sec66'), - ('Energy as function of iterations, $N=6$ electrons', - 2, - None, - '___sec67'), - ('Conclusions and where do we stand', 2, None, '___sec68')]} + '___sec68')]} end of tocinfo --> @@ -303,28 +300,28 @@ MathJax.Hub.Config({

  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • -
  • Representing the wave function
  • -
  • Choose the cost function
  • -
  • Running the codes
  • -
  • Energy as function of iterations, \( N=2 \) electrons
  • -
  • Energy as function of iterations, \( N=6 \) electrons
  • -
  • Conclusions and where do we stand
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -340,22 +337,43 @@ MathJax.Hub.Config({ -

    Running the codes

    -
    -
    -

    -You can find the codes for the simple two-electron case at the Github repository https://github.com/mhjensenseminars/MachineLearningTalk/tree/master/doc/Programs/MLcpp/src. Python codes to come, only c++ as of now. +

    Representing the wave function

    +The wavefunction should be a probability amplitude depending on \( \boldsymbol{x} \). The RBM model is given by the joint\ + distribution of \( \boldsymbol{x} \) and \( \boldsymbol{h} \) +$$ +\begin{align} + F_{rbm}(\mathbf{x},\mathbf{h}) = \frac{1}{Z} e^{-\frac{1}{T_0}E(\mathbf{x},\mathbf{h})}. +\tag{27} +\end{align} +$$ + +To find the marginal distribution of \( \boldsymbol{x} \) we set: +$$ +\begin{align} + F_{rbm}(\mathbf{x}) &= \sum_\mathbf{h} F_{rbm}(\mathbf{x}, \mathbf{h}) +\tag{28}\\ + &= \frac{1}{Z}\sum_\mathbf{h} e^{-E(\mathbf{x}, \mathbf{h})}. +\tag{29} +\end{align} +$$

    -The trial wave function is based on the product of a Slater determinant with Gaussian orbitals, a simple Jastrow factor \( \exp{(r_{ij})} \) and the reduced Boltzmann machines. - -

    -The Broyden-Fletcher-Goldfarb-Shanno algorithm was used to perform the minimization. We used \( 14 \) hidden nodes in the calculations below. - -

    -

    -
    - +Now this is what we use to represent the wave function, calling it a neural-network quantum state (NQS) +$$ +\begin{align} + \Psi (\mathbf{X}) &= F_{rbm}(\mathbf{x}) +\tag{30}\\ + &= \frac{1}{Z}\sum_{\boldsymbol{h}} e^{-E(\mathbf{x}, \mathbf{h})} +\tag{31}\\ + &= \frac{1}{Z} \sum_{\{h_j\}} e^{-\sum_i^M \frac{(x_i - a_i)^2}{2\sigma^2} + \sum_j^N b_j h_j + \sum_\ +{i,j}^{M,N} \frac{x_i w_{ij} h_j}{\sigma^2}} +\tag{32}\\ + &= \frac{1}{Z} e^{-\sum_i^M \frac{(x_i - a_i)^2}{2\sigma^2}} \prod_j^N (1 + e^{b_j + \sum_i^M \frac{x\ +_i w_{ij}}{\sigma^2}}). +\tag{33}\\ +\tag{34} +\end{align} +$$

    diff --git a/doc/pub/BM/html/._BM-bs067.html b/doc/pub/BM/html/._BM-bs067.html index 3c894f39b..9952b0373 100644 --- a/doc/pub/BM/html/._BM-bs067.html +++ b/doc/pub/BM/html/._BM-bs067.html @@ -188,37 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), + ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), - ('RBMs for the quantum many body problem', 2, None, '___sec61'), - ('Choose the right RBM', 2, None, '___sec62'), - ('Representing the wave function', 2, None, '___sec63'), - ('Choose the cost function', 2, None, '___sec64'), - ('Running the codes', 2, None, '___sec65'), + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), ('Energy as function of iterations, $N=2$ electrons', 2, None, - '___sec66'), - ('Energy as function of iterations, $N=6$ electrons', - 2, - None, - '___sec67'), - ('Conclusions and where do we stand', 2, None, '___sec68')]} + '___sec68')]} end of tocinfo --> @@ -303,28 +300,28 @@ MathJax.Hub.Config({

  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • -
  • Representing the wave function
  • -
  • Choose the cost function
  • -
  • Running the codes
  • -
  • Energy as function of iterations, \( N=2 \) electrons
  • -
  • Energy as function of iterations, \( N=6 \) electrons
  • -
  • Conclusions and where do we stand
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -340,14 +337,23 @@ MathJax.Hub.Config({ -

    Energy as function of iterations, \( N=2 \) electrons

    -
    -
    -

    -



    -
    -
    +

    Choose the cost function

    +Now we don't necessarily have training data (unless we generate it by using some other method). However, what we do have is the variational principle which allows us to obtain the ground state wave function by minimizing the expectation value of the energy of a trial wavefunction (corresponding to the untrained NQS). Similarly to the traditional variational Monte Carlo method then, it is the local energy we wish to minimize. The gradient to use for the stochastic gradient descent procedure is +$$ +\begin{align} + G_i = \frac{\partial \langle E_L \rangle}{\partial \theta_i} + = 2(\langle E_L \frac{1}{\Psi}\frac{\partial \Psi}{\partial \theta_i} \rangle - \langle E_L \rangle \langle \frac{1}{\Psi}\frac{\partial \Psi}{\partial \theta_i} \rangle ), +\tag{35} +\end{align} +$$ +where the local energy is given by +$$ +\begin{align} + E_L = \frac{1}{\Psi} \hat{\mathbf{H}} \Psi. +\tag{36} +\end{align} +$$

    diff --git a/doc/pub/BM/html/._BM-bs068.html b/doc/pub/BM/html/._BM-bs068.html index df2e0a530..5ddb54b96 100644 --- a/doc/pub/BM/html/._BM-bs068.html +++ b/doc/pub/BM/html/._BM-bs068.html @@ -188,37 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), + ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), - ('RBMs for the quantum many body problem', 2, None, '___sec61'), - ('Choose the right RBM', 2, None, '___sec62'), - ('Representing the wave function', 2, None, '___sec63'), - ('Choose the cost function', 2, None, '___sec64'), - ('Running the codes', 2, None, '___sec65'), + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), ('Energy as function of iterations, $N=2$ electrons', 2, None, - '___sec66'), - ('Energy as function of iterations, $N=6$ electrons', - 2, - None, - '___sec67'), - ('Conclusions and where do we stand', 2, None, '___sec68')]} + '___sec68')]} end of tocinfo --> @@ -303,28 +300,28 @@ MathJax.Hub.Config({

  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • -
  • Representing the wave function
  • -
  • Choose the cost function
  • -
  • Running the codes
  • -
  • Energy as function of iterations, \( N=2 \) electrons
  • -
  • Energy as function of iterations, \( N=6 \) electrons
  • -
  • Conclusions and where do we stand
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -340,11 +337,19 @@ MathJax.Hub.Config({ -

    Energy as function of iterations, \( N=6 \) electrons

    +

    Running the codes

    -



    +You can find the codes for the simple two-electron case at the Github repository https://github.com/mhjensenseminars/MachineLearningTalk/tree/master/doc/Programs/MLcpp/src. Python codes to come, only c++ as of now. + +

    +The trial wave function is based on the product of a Slater determinant with Gaussian orbitals, a simple Jastrow factor \( \exp{(r_{ij})} \) and the reduced Boltzmann machines. + +

    +The Broyden-Fletcher-Goldfarb-Shanno algorithm was used to perform the minimization. We used \( 14 \) hidden nodes in the calculations below. + +

    diff --git a/doc/pub/BM/html/._BM-bs069.html b/doc/pub/BM/html/._BM-bs069.html index 7a12d4688..de86ebcd5 100644 --- a/doc/pub/BM/html/._BM-bs069.html +++ b/doc/pub/BM/html/._BM-bs069.html @@ -188,37 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), + ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), - ('RBMs for the quantum many body problem', 2, None, '___sec61'), - ('Choose the right RBM', 2, None, '___sec62'), - ('Representing the wave function', 2, None, '___sec63'), - ('Choose the cost function', 2, None, '___sec64'), - ('Running the codes', 2, None, '___sec65'), + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), ('Energy as function of iterations, $N=2$ electrons', 2, None, - '___sec66'), - ('Energy as function of iterations, $N=6$ electrons', - 2, - None, - '___sec67'), - ('Conclusions and where do we stand', 2, None, '___sec68')]} + '___sec68')]} end of tocinfo --> @@ -303,28 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • -
  • Representing the wave function
  • -
  • Choose the cost function
  • -
  • Running the codes
  • -
  • Energy as function of iterations, \( N=2 \) electrons
  • -
  • Energy as function of iterations, \( N=6 \) electrons
  • -
  • Conclusions and where do we stand
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -340,26 +337,11 @@ MathJax.Hub.Config({ -

    Conclusions and where do we stand

    +

    Energy as function of iterations, \( N=2 \) electrons

    - -

      -
    • A simple extension of the work of G. Carleo and M. Troyer, Science 355, Issue 6325, pp. 602-606 (2017) gives excellent results for two-electron systems as well as good agreement with standard VMC calculations for \( N=6 \) and \( N=12 \) electrons.
    • -
    • Minimization problem can be tricky.
    • -
    • Anti-symmetry dealt with multiplying the trail wave function with an optimized Slater determinant.
    • -
    • To come: Analysis of wave function from ML and compare with diffusion and Variational Monte Carlo calculations as well as the analytical results of Taut for the two-electron case.
    • -
    • Extend to more fermions. How do we deal with the antisymmetry of the multi-fermion wave function? - -
        -
      1. Here we used standard Hartree-Fock theory to define an optimal Slater determinant. Takes care of the antisymmetry. What about constructing an anti-symmetrized network function?
      2. -
      3. Use thereafter ML to determine the correlated part of the wafe function (including a standard Jastrow factor).
      4. -
      5. Test this for multi-fermion systems and compare with other many-body methods.
      6. -
      - -
    • Can we use ML to find out which correlations are relevant and thereby diminish the dimensionality problem in say CC or SRG theories?
    • -
    +



    diff --git a/doc/pub/BM/html/BM-bs.html b/doc/pub/BM/html/BM-bs.html index dbed0cb69..d01b0b80f 100644 --- a/doc/pub/BM/html/BM-bs.html +++ b/doc/pub/BM/html/BM-bs.html @@ -188,28 +188,34 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -294,22 +300,28 @@ MathJax.Hub.Config({
  • Gibbs sampling
  • Boltzmann Machines
  • Some similarities and differences from DNNs
  • -
  • The structure of the RBM network
  • -
  • The network
  • -
  • Goals
  • -
  • Joint distribution and the Energy function
  • -
  • Network Elements
  • -
  • Defining different types of RBMs
  • -
  • More about RBMs
  • -
  • Sampling: Metropolis sampling
  • -
  • Sampling: Gibbs sampling
  • -
  • Gaussian RBM
  • -
  • Cost function
  • -
  • Optimization / Training
  • -
  • More on RBMs
  • -
  • Which sampling to use
  • -
  • Recent examples: RBMs for the quantum many body problem
  • -
  • Choose the right RBM
  • +
  • Boltzmann machines (BM)
  • +
  • A standard BM setup
  • +
  • The structure of the RBM network
  • +
  • The network
  • +
  • Goals
  • +
  • Joint distribution
  • +
  • Network Elements, the energy function
  • +
  • Defining different types of RBMs
  • +
  • More about RBMs
  • +
  • Sampling: Metropolis sampling
  • +
  • Sampling: Gibbs sampling
  • +
  • Gaussian RBM
  • +
  • Cost function
  • +
  • Optimization / Training
  • +
  • More on RBMs
  • +
  • Which sampling to use
  • +
  • Recent examples: RBMs for the quantum many body problem
  • +
  • Choose the right RBM
  • +
  • Representing the wave function
  • +
  • Choose the cost function
  • +
  • Running the codes
  • +
  • Energy as function of iterations, \( N=2 \) electrons
  • @@ -343,7 +355,7 @@ MathJax.Hub.Config({
    Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University and Department of Physics, University of Oslo, Norway

    -

    Nov 23, 2018

    +

    Nov 28, 2018


    @@ -367,7 +379,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 64
  • +
  • 70
  • »
  • diff --git a/doc/pub/BM/html/BM-reveal.html b/doc/pub/BM/html/BM-reveal.html index 703656134..ac5114524 100644 --- a/doc/pub/BM/html/BM-reveal.html +++ b/doc/pub/BM/html/BM-reveal.html @@ -147,7 +147,7 @@ MathJax.Hub.Config({
    Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University and Department of Physics, University of Oslo, Norway

     
    -

    Nov 23, 2018

    +

    Nov 28, 2018


    @@ -209,7 +209,7 @@ Furthermore, they have been used to solve complicated quantum mechanical many-pa

    An intermediate step, the Hopfield network and links to the Ising and Potts models

    -More material on Hopfield networks will come here +More material on Hopfield networks will come here later. @@ -1502,7 +1502,68 @@ History: The RBM was developed by amongst others Geoffrey Hinton, called by some

    -

    The structure of the RBM network

    +

    Boltzmann machines (BM)

    + +

    +

    + +

    +A BM is what we would call an undirected probabilistic graphical model +with stochastic continuous or discrete units. +

    + +
    + +

    +It is interpreted as a stochastic recurrent neural network where the +state of each unit(neurons/nodes) depends on the units it is connected +to. The weights in the network represent thus the strength of the +interaction between various units/nodes. +

    + +
    + +

    +It turns into a Hopfield network if we choose deterministic rather +than stochastic units. In contrast to a Hopfield network, a BM is a +so-called generative model. It allows us to generate new samples from +the learned distribution. +

    +
    + + +
    +

    A standard BM setup

    + +

    +

    + +

    +A standard BM network is divided into a set of observable and visible units \( \hat{x} \) and a set of unknown hidden units/nodes \( \hat{h} \). +

    + +

    +

    + +

    +Additionally there can be bias nodes for the hidden and visible layers. These biases are normally set to \( 1 \). +

    + +

    +

    + +

    +BMs are stackable, meaning they cwe can train a BM which serves as input to another BM. We can construct deep networks for learning complex PDFs. The layers can be trained one after another, a feature which makes them popular in deep learning +

    + +

    +However, they are often hard to train. This leads to the introduction of so-called restricted BMs, or RBMS. +Here we take away all lateral connections between nodes in the visible layer as well as connections between nodes in the hidden layer. The network is illustrated in the figure below. +

    + + +
    +

    The structure of the RBM network





    @@ -1510,7 +1571,7 @@ History: The RBM was developed by amongst others Geoffrey Hinton, called by some
    -

    The network

    +

    The network

    The network layers: @@ -1523,7 +1584,7 @@ History: The RBM was developed by amongst others Geoffrey Hinton, called by some

    -

    Goals

    +

    Goals

    The goal of the hidden layer is to increase the model's expressive power. We encode complex interactions between visible variables by introducing additional, hidden variables that interact with visible degrees of freedom in a simple manner, yet still reproduce the complex correlations between visible degrees in the data once marginalized over (integrated out). @@ -1549,7 +1610,7 @@ Examples of this trick being employed in physics:

    -

    Joint distribution and the Energy function

    +

    Joint distribution

    The restricted Boltzmann machine is described by a Bolztmann distribution

     
    $$ @@ -1575,7 +1636,7 @@ It is common to ignore \( T_0 \) by setting it to one.

    -

    Network Elements

    +

    Network Elements, the energy function

    The function \( E(\mathbf{x},\mathbf{h}) \) gives the energy of a @@ -1584,11 +1645,28 @@ the energy of a configuration, the higher the probability of it. This function also depends on the parameters \( \mathbf{a} \), \( \mathbf{b} \) and \( W \). Thus, when we adjust them during the learning procedure, we are adjusting the energy function to best fit our problem. + +

    +An expression for the energy function is +

     
    +$$ +E(\hat{x},\hat{h}) = -\sum_{ia}^{NA}b_i^a \alpha_i^a(x_i)-\sum_{jd}^{MD}c_j^d \beta_j^d(h_j)-\sum_{ijad}^{NAMD}b_i^a \alpha_i^a(x_i)c_j^d \beta_j^d(h_j)w_{ij}^{ad}. +$$ +

     
    + +

    +Here \( \beta_j^d(h_j) \) and \( \alpha_i^a(x_j) \) are so-called transfer functions that map a given input value to a desired feature value. The labels \( a \) and \( d \) denote that there can be multiple transfer functions per variable. The first sum depends only on the visible units. The second on the hidden ones. Note that there is no connection between nodes in a layer. + +

    +The quantities \( b \) and \( c \) can be interpreted as the visible and hidden biases, respectively. + +

    +The connection between the nodes in the two layers is given by the weights \( w_{ij} \).

    -

    Defining different types of RBMs

    +

    Defining different types of RBMs

    There are different variants of RBMs, and the differences lie in the types of visible and hidden units we choose as well as in the implementation of the energy function \( E(\mathbf{x},\mathbf{h}) \).

    @@ -1625,7 +1703,7 @@ $$

    -

    More about RBMs

    +

    More about RBMs

    1. Useful when we model continuous data (i.e., we wish \( \mathbf{x} \) to be continuous)
    2. @@ -1645,7 +1723,7 @@ Other types of units include:
      -

      Sampling: Metropolis sampling

      +

      Sampling: Metropolis sampling

      In order to sample from the RBM probability distribution it is common to use Markov Chain Monte Carlo (MCMC) algorithms such as Metropolis-Hastings or Gibbs sampling.

      @@ -1674,7 +1752,7 @@ $$

      -

      Sampling: Gibbs sampling

      +

      Sampling: Gibbs sampling

      In this method we sample from the joint probability \( P_{rbm} (\mathbf{x}, \mathbf{h}) \) by way of a two step sampling process. We alternately update the visible and hidden units. @@ -1698,7 +1776,7 @@ where we recognize the logistic sigmoid function \( \sigma (x) = 1/(1+exp(-x)) \

      -

      Gaussian RBM

      +

      Gaussian RBM

      For the Gaussian-Binary RBM the conditional probabilities are

       
      $$ @@ -1716,7 +1794,7 @@ while the visible units now follow a normal distribution, we see the hidden unit

      -

      Cost function

      +

      Cost function

      When working with a training dataset, the most common training approach is maximizing the log-likelihood of the training data. The log likelihood characterizes the log-probability of generating the observed data using our generative model. Using this method our cost function is chosen as the negative log-likelihood. The learning then consists of trying to find parameters that maximize the probability of the dataset, and is known as Maximum Likelihood Estimation (MLE). @@ -1738,7 +1816,9 @@ Our cost function is the negative log-likelihood, \( \mathcal{C}(\{ \theta_i \})

      -

      Optimization / Training

      +

      Optimization / Training

      + +

      The training procedure of choice often is Stochastic Gradient Descent (SGD). It consists of a series of iterations where we update the parameters according to the equation

       
      $$ @@ -1789,7 +1869,7 @@ $$

      -

      More on RBMs

      +

      More on RBMs

      The data-dependent term in the gradient is known as the positive phase of the gradient, while the model-dependent term is known as the negative phase of the gradient. The aim of the training is to lower the energy of configurations that are near observed data points (increasing their probability), and raising the energy of configurations that are far from observed data points (decreasing their probability). @@ -1815,7 +1895,7 @@ To get the expecation values with respect to the data, we set the visib

      -

      Which sampling to use

      +

      Which sampling to use

      To get the expectation values with respect to the model, we use Gibbs sampling. We can either initialize the \( \boldsymbol{x} \) randomly or with a training sample. While we ideally want a large number of Gibbs iterations \( n\rightarrow n \), one might decide to truncate it earlier for efficiency. Doing this while having intialized \( \boldsymbol{x} \) with a training data vector is referred to as contrastive divergence (CD), because one is then closer to approximating the gradient of this function than the negative log-likelihood. The contrastive divergence function is the difference between two Kullback-Leibler divergences (also called relative entropy), which measure how one probability distribution diverges from a second, expected probability distribution (in this case the estimated one from the ground truth one). @@ -1823,7 +1903,7 @@ To get the expectation values with respect to the model, we use Gibbs s

      -

      Recent examples: RBMs for the quantum many body problem

      +

      Recent examples: RBMs for the quantum many body problem

      The idea of applying RBMs to quantum many body problems was presented by G. Carleo and M. Troyer, working with ETH Zurich and Microsoft Research. @@ -1847,13 +1927,113 @@ Some of their motivation included

      -

      Choose the right RBM

      +

      Choose the right RBM

      Carleo and Troyer applied the RBM to the quantum mechanical spin lattice systems of the Ising model and Heisenberg model, with encouraging results. Our goal is to test the method on systems of moving particles. For the spin lattice systems it was natural to use a binary-binary RBM, with the nodes taking values of 1 and -1. For moving particles, on the other hand, we want the visible nodes to be continuous, representing position coordinates. Thus, we start by choosing a Gaussian-binary RBM, where the visible nodes are continuous and hidden nodes take on values of 0 or 1. If eventually we would like the hidden nodes to be continuous as well the rectified linear units seem like the most relevant choice.

      +
      +

      Representing the wave function

      +The wavefunction should be a probability amplitude depending on \( \boldsymbol{x} \). The RBM model is given by the joint\ + distribution of \( \boldsymbol{x} \) and \( \boldsymbol{h} \) +

       
      +$$ +\begin{align} + F_{rbm}(\mathbf{x},\mathbf{h}) = \frac{1}{Z} e^{-\frac{1}{T_0}E(\mathbf{x},\mathbf{h})}. +\tag{27} +\end{align} +$$ +

       
      + +To find the marginal distribution of \( \boldsymbol{x} \) we set: +

       
      +$$ +\begin{align} + F_{rbm}(\mathbf{x}) &= \sum_\mathbf{h} F_{rbm}(\mathbf{x}, \mathbf{h}) +\tag{28}\\ + &= \frac{1}{Z}\sum_\mathbf{h} e^{-E(\mathbf{x}, \mathbf{h})}. +\tag{29} +\end{align} +$$ +

       
      + +

      +Now this is what we use to represent the wave function, calling it a neural-network quantum state (NQS) +

       
      +$$ +\begin{align} + \Psi (\mathbf{X}) &= F_{rbm}(\mathbf{x}) +\tag{30}\\ + &= \frac{1}{Z}\sum_{\boldsymbol{h}} e^{-E(\mathbf{x}, \mathbf{h})} +\tag{31}\\ + &= \frac{1}{Z} \sum_{\{h_j\}} e^{-\sum_i^M \frac{(x_i - a_i)^2}{2\sigma^2} + \sum_j^N b_j h_j + \sum_\ +{i,j}^{M,N} \frac{x_i w_{ij} h_j}{\sigma^2}} +\tag{32}\\ + &= \frac{1}{Z} e^{-\sum_i^M \frac{(x_i - a_i)^2}{2\sigma^2}} \prod_j^N (1 + e^{b_j + \sum_i^M \frac{x\ +_i w_{ij}}{\sigma^2}}). +\tag{33}\\ +\tag{34} +\end{align} +$$ +

       
      +

      + + +
      +

      Choose the cost function

      +Now we don't necessarily have training data (unless we generate it by using some other method). However, what we do have is the variational principle which allows us to obtain the ground state wave function by minimizing the expectation value of the energy of a trial wavefunction (corresponding to the untrained NQS). Similarly to the traditional variational Monte Carlo method then, it is the local energy we wish to minimize. The gradient to use for the stochastic gradient descent procedure is +

       
      +$$ +\begin{align} + G_i = \frac{\partial \langle E_L \rangle}{\partial \theta_i} + = 2(\langle E_L \frac{1}{\Psi}\frac{\partial \Psi}{\partial \theta_i} \rangle - \langle E_L \rangle \langle \frac{1}{\Psi}\frac{\partial \Psi}{\partial \theta_i} \rangle ), +\tag{35} +\end{align} +$$ +

       
      + +where the local energy is given by +

       
      +$$ +\begin{align} + E_L = \frac{1}{\Psi} \hat{\mathbf{H}} \Psi. +\tag{36} +\end{align} +$$ +

       
      +

      + + +
      +

      Running the codes

      +
      + +

      +You can find the codes for the simple two-electron case at the Github repository https://github.com/mhjensenseminars/MachineLearningTalk/tree/master/doc/Programs/MLcpp/src. Python codes to come, only c++ as of now. + +

      +The trial wave function is based on the product of a Slater determinant with Gaussian orbitals, a simple Jastrow factor \( \exp{(r_{ij})} \) and the reduced Boltzmann machines. + +

      +The Broyden-Fletcher-Goldfarb-Shanno algorithm was used to perform the minimization. We used \( 14 \) hidden nodes in the calculations below. + + +

      +
      + + +
      +

      Energy as function of iterations, \( N=2 \) electrons

      +
      + +

      +



      +
      +
      + + diff --git a/doc/pub/BM/html/BM-solarized.html b/doc/pub/BM/html/BM-solarized.html index 836b5e915..75e2ebfda 100644 --- a/doc/pub/BM/html/BM-solarized.html +++ b/doc/pub/BM/html/BM-solarized.html @@ -208,28 +208,34 @@ div { text-align: justify; text-justify: inter-word; } 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -270,7 +276,7 @@ MathJax.Hub.Config({
      Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University and Department of Physics, University of Oslo, Norway

      -

      Nov 23, 2018

      +

      Nov 28, 2018












      @@ -323,7 +329,7 @@ Furthermore, they have been used to solve complicated quantum mechanical many-pa

      An intermediate step, the Hopfield network and links to the Ising and Potts models

      -More material on Hopfield networks will come here +More material on Hopfield networks will come here later.











      @@ -1581,7 +1587,72 @@ History: The RBM was developed by amongst others Geoffrey Hinton, called by some











      -

      The structure of the RBM network

      +

      Boltzmann machines (BM)

      + +

      +

      + +

      +A BM is what we would call an undirected probabilistic graphical model +with stochastic continuous or discrete units. +

      + +
      + +

      +It is interpreted as a stochastic recurrent neural network where the +state of each unit(neurons/nodes) depends on the units it is connected +to. The weights in the network represent thus the strength of the +interaction between various units/nodes. +

      + +
      + +

      +It turns into a Hopfield network if we choose deterministic rather +than stochastic units. In contrast to a Hopfield network, a BM is a +so-called generative model. It allows us to generate new samples from +the learned distribution. +

      + + +

      +









      + +

      A standard BM setup

      + +

      +

      + +

      +A standard BM network is divided into a set of observable and visible units \( \hat{x} \) and a set of unknown hidden units/nodes \( \hat{h} \). +

      + + +

      +

      + +

      +Additionally there can be bias nodes for the hidden and visible layers. These biases are normally set to \( 1 \). +

      + + +

      +

      + +

      +BMs are stackable, meaning they cwe can train a BM which serves as input to another BM. We can construct deep networks for learning complex PDFs. The layers can be trained one after another, a feature which makes them popular in deep learning +

      + + +

      +However, they are often hard to train. This leads to the introduction of so-called restricted BMs, or RBMS. +Here we take away all lateral connections between nodes in the visible layer as well as connections between nodes in the hidden layer. The network is illustrated in the figure below. + +

      +









      + +

      The structure of the RBM network





      @@ -1589,7 +1660,7 @@ History: The RBM was developed by amongst others Geoffrey Hinton, called by some











      -

      The network

      +

      The network

      The network layers: @@ -1601,7 +1672,7 @@ History: The RBM was developed by amongst others Geoffrey Hinton, called by some









      -

      Goals

      +

      Goals

      The goal of the hidden layer is to increase the model's expressive power. We encode complex interactions between visible variables by introducing additional, hidden variables that interact with visible degrees of freedom in a simple manner, yet still reproduce the complex correlations between visible degrees in the data once marginalized over (integrated out). @@ -1625,7 +1696,7 @@ Examples of this trick being employed in physics:









      -

      Joint distribution and the Energy function

      +

      Joint distribution

      The restricted Boltzmann machine is described by a Bolztmann distribution $$ \begin{align} @@ -1647,7 +1718,7 @@ It is common to ignore \( T_0 \) by setting it to one.











      -

      Network Elements

      +

      Network Elements, the energy function

      The function \( E(\mathbf{x},\mathbf{h}) \) gives the energy of a @@ -1657,10 +1728,25 @@ function also depends on the parameters \( \mathbf{a} \), \( \mathbf{b} \) and \( W \). Thus, when we adjust them during the learning procedure, we are adjusting the energy function to best fit our problem. +

      +An expression for the energy function is +$$ +E(\hat{x},\hat{h}) = -\sum_{ia}^{NA}b_i^a \alpha_i^a(x_i)-\sum_{jd}^{MD}c_j^d \beta_j^d(h_j)-\sum_{ijad}^{NAMD}b_i^a \alpha_i^a(x_i)c_j^d \beta_j^d(h_j)w_{ij}^{ad}. +$$ + +

      +Here \( \beta_j^d(h_j) \) and \( \alpha_i^a(x_j) \) are so-called transfer functions that map a given input value to a desired feature value. The labels \( a \) and \( d \) denote that there can be multiple transfer functions per variable. The first sum depends only on the visible units. The second on the hidden ones. Note that there is no connection between nodes in a layer. + +

      +The quantities \( b \) and \( c \) can be interpreted as the visible and hidden biases, respectively. + +

      +The connection between the nodes in the two layers is given by the weights \( w_{ij} \). +











      -

      Defining different types of RBMs

      +

      Defining different types of RBMs

      There are different variants of RBMs, and the differences lie in the types of visible and hidden units we choose as well as in the implementation of the energy function \( E(\mathbf{x},\mathbf{h}) \).

      @@ -1698,7 +1784,7 @@ $$











      -

      More about RBMs

      +

      More about RBMs

      1. Useful when we model continuous data (i.e., we wish \( \mathbf{x} \) to be continuous)
      2. @@ -1716,7 +1802,7 @@ Other types of units include:









        -

        Sampling: Metropolis sampling

        +

        Sampling: Metropolis sampling

        In order to sample from the RBM probability distribution it is common to use Markov Chain Monte Carlo (MCMC) algorithms such as Metropolis-Hastings or Gibbs sampling.

        @@ -1741,7 +1827,7 @@ $$











        -

        Sampling: Gibbs sampling

        +

        Sampling: Gibbs sampling

        In this method we sample from the joint probability \( P_{rbm} (\mathbf{x}, \mathbf{h}) \) by way of a two step sampling process. We alternately update the visible and hidden units. @@ -1763,7 +1849,7 @@ where we recognize the logistic sigmoid function \( \sigma (x) = 1/(1+exp(-x)) \











        -

        Gaussian RBM

        +

        Gaussian RBM

        For the Gaussian-Binary RBM the conditional probabilities are $$ \begin{align} @@ -1779,7 +1865,7 @@ while the visible units now follow a normal distribution, we see the hidden unit











        -

        Cost function

        +

        Cost function

        When working with a training dataset, the most common training approach is maximizing the log-likelihood of the training data. The log likelihood characterizes the log-probability of generating the observed data using our generative model. Using this method our cost function is chosen as the negative log-likelihood. The learning then consists of trying to find parameters that maximize the probability of the dataset, and is known as Maximum Likelihood Estimation (MLE). @@ -1799,7 +1885,9 @@ Our cost function is the negative log-likelihood, \( \mathcal{C}(\{ \theta_i \})











        -

        Optimization / Training

        +

        Optimization / Training

        + +

        The training procedure of choice often is Stochastic Gradient Descent (SGD). It consists of a series of iterations where we update the parameters according to the equation $$ \begin{align} @@ -1842,7 +1930,7 @@ $$

        -

        More on RBMs

        +

        More on RBMs

        The data-dependent term in the gradient is known as the positive phase of the gradient, while the model-dependent term is known as the negative phase of the gradient. The aim of the training is to lower the energy of configurations that are near observed data points (increasing their probability), and raising the energy of configurations that are far from observed data points (decreasing their probability). @@ -1866,7 +1954,7 @@ To get the expecation values with respect to the data, we set the visib











        -

        Which sampling to use

        +

        Which sampling to use

        To get the expectation values with respect to the model, we use Gibbs sampling. We can either initialize the \( \boldsymbol{x} \) randomly or with a training sample. While we ideally want a large number of Gibbs iterations \( n\rightarrow n \), one might decide to truncate it earlier for efficiency. Doing this while having intialized \( \boldsymbol{x} \) with a training data vector is referred to as contrastive divergence (CD), because one is then closer to approximating the gradient of this function than the negative log-likelihood. The contrastive divergence function is the difference between two Kullback-Leibler divergences (also called relative entropy), which measure how one probability distribution diverges from a second, expected probability distribution (in this case the estimated one from the ground truth one). @@ -1874,7 +1962,7 @@ To get the expectation values with respect to the model, we use Gibbs s











        -

        Recent examples: RBMs for the quantum many body problem

        +

        Recent examples: RBMs for the quantum many body problem

        The idea of applying RBMs to quantum many body problems was presented by G. Carleo and M. Troyer, working with ETH Zurich and Microsoft Research. @@ -1898,11 +1986,103 @@ Some of their motivation included









        -

        Choose the right RBM

        +

        Choose the right RBM

        Carleo and Troyer applied the RBM to the quantum mechanical spin lattice systems of the Ising model and Heisenberg model, with encouraging results. Our goal is to test the method on systems of moving particles. For the spin lattice systems it was natural to use a binary-binary RBM, with the nodes taking values of 1 and -1. For moving particles, on the other hand, we want the visible nodes to be continuous, representing position coordinates. Thus, we start by choosing a Gaussian-binary RBM, where the visible nodes are continuous and hidden nodes take on values of 0 or 1. If eventually we would like the hidden nodes to be continuous as well the rectified linear units seem like the most relevant choice. +

        +









        + +

        Representing the wave function

        +The wavefunction should be a probability amplitude depending on \( \boldsymbol{x} \). The RBM model is given by the joint\ + distribution of \( \boldsymbol{x} \) and \( \boldsymbol{h} \) +$$ +\begin{align} + F_{rbm}(\mathbf{x},\mathbf{h}) = \frac{1}{Z} e^{-\frac{1}{T_0}E(\mathbf{x},\mathbf{h})}. +\label{_auto25} +\end{align} +$$ + +To find the marginal distribution of \( \boldsymbol{x} \) we set: +$$ +\begin{align} + F_{rbm}(\mathbf{x}) &= \sum_\mathbf{h} F_{rbm}(\mathbf{x}, \mathbf{h}) +\label{_auto26}\\ + &= \frac{1}{Z}\sum_\mathbf{h} e^{-E(\mathbf{x}, \mathbf{h})}. +\label{_auto27} +\end{align} +$$ + +

        +Now this is what we use to represent the wave function, calling it a neural-network quantum state (NQS) +$$ +\begin{align} + \Psi (\mathbf{X}) &= F_{rbm}(\mathbf{x}) +\label{_auto28}\\ + &= \frac{1}{Z}\sum_{\boldsymbol{h}} e^{-E(\mathbf{x}, \mathbf{h})} +\label{_auto29}\\ + &= \frac{1}{Z} \sum_{\{h_j\}} e^{-\sum_i^M \frac{(x_i - a_i)^2}{2\sigma^2} + \sum_j^N b_j h_j + \sum_\ +{i,j}^{M,N} \frac{x_i w_{ij} h_j}{\sigma^2}} +\label{_auto30}\\ + &= \frac{1}{Z} e^{-\sum_i^M \frac{(x_i - a_i)^2}{2\sigma^2}} \prod_j^N (1 + e^{b_j + \sum_i^M \frac{x\ +_i w_{ij}}{\sigma^2}}). +\label{_auto31}\\ +\label{_auto32} +\end{align} +$$ + +

        +









        + +

        Choose the cost function

        +Now we don't necessarily have training data (unless we generate it by using some other method). However, what we do have is the variational principle which allows us to obtain the ground state wave function by minimizing the expectation value of the energy of a trial wavefunction (corresponding to the untrained NQS). Similarly to the traditional variational Monte Carlo method then, it is the local energy we wish to minimize. The gradient to use for the stochastic gradient descent procedure is +$$ +\begin{align} + G_i = \frac{\partial \langle E_L \rangle}{\partial \theta_i} + = 2(\langle E_L \frac{1}{\Psi}\frac{\partial \Psi}{\partial \theta_i} \rangle - \langle E_L \rangle \langle \frac{1}{\Psi}\frac{\partial \Psi}{\partial \theta_i} \rangle ), +\label{_auto33} +\end{align} +$$ + +where the local energy is given by +$$ +\begin{align} + E_L = \frac{1}{\Psi} \hat{\mathbf{H}} \Psi. +\label{_auto34} +\end{align} +$$ + +

        +









        + +

        Running the codes

        +
        + +

        +You can find the codes for the simple two-electron case at the Github repository https://github.com/mhjensenseminars/MachineLearningTalk/tree/master/doc/Programs/MLcpp/src. Python codes to come, only c++ as of now. + +

        +The trial wave function is based on the product of a Slater determinant with Gaussian orbitals, a simple Jastrow factor \( \exp{(r_{ij})} \) and the reduced Boltzmann machines. + +

        +The Broyden-Fletcher-Goldfarb-Shanno algorithm was used to perform the minimization. We used \( 14 \) hidden nodes in the calculations below. + + +

        + + +

        +









        + +

        Energy as function of iterations, \( N=2 \) electrons

        +
        + +

        +



        +
        + +

        diff --git a/doc/pub/BM/html/BM.html b/doc/pub/BM/html/BM.html index 2598a9fd6..00d6ff0cb 100644 --- a/doc/pub/BM/html/BM.html +++ b/doc/pub/BM/html/BM.html @@ -213,28 +213,34 @@ div { text-align: justify; text-justify: inter-word; } 2, None, '___sec46'), - ('The structure of the RBM network', 2, None, '___sec47'), - ('The network', 2, None, '___sec48'), - ('Goals', 2, None, '___sec49'), - ('Joint distribution and the Energy function', - 2, - None, - '___sec50'), - ('Network Elements', 2, None, '___sec51'), - ('Defining different types of RBMs', 2, None, '___sec52'), - ('More about RBMs', 2, None, '___sec53'), - ('Sampling: Metropolis sampling', 2, None, '___sec54'), - ('Sampling: Gibbs sampling', 2, None, '___sec55'), - ('Gaussian RBM', 2, None, '___sec56'), - ('Cost function', 2, None, '___sec57'), - ('Optimization / Training', 2, None, '___sec58'), - ('More on RBMs', 2, None, '___sec59'), - ('Which sampling to use', 2, None, '___sec60'), + ('Boltzmann machines (BM)', 2, None, '___sec47'), + ('A standard BM setup', 2, None, '___sec48'), + ('The structure of the RBM network', 2, None, '___sec49'), + ('The network', 2, None, '___sec50'), + ('Goals', 2, None, '___sec51'), + ('Joint distribution', 2, None, '___sec52'), + ('Network Elements, the energy function', 2, None, '___sec53'), + ('Defining different types of RBMs', 2, None, '___sec54'), + ('More about RBMs', 2, None, '___sec55'), + ('Sampling: Metropolis sampling', 2, None, '___sec56'), + ('Sampling: Gibbs sampling', 2, None, '___sec57'), + ('Gaussian RBM', 2, None, '___sec58'), + ('Cost function', 2, None, '___sec59'), + ('Optimization / Training', 2, None, '___sec60'), + ('More on RBMs', 2, None, '___sec61'), + ('Which sampling to use', 2, None, '___sec62'), ('Recent examples: RBMs for the quantum many body problem', 2, None, - '___sec61'), - ('Choose the right RBM', 2, None, '___sec62')]} + '___sec63'), + ('Choose the right RBM', 2, None, '___sec64'), + ('Representing the wave function', 2, None, '___sec65'), + ('Choose the cost function', 2, None, '___sec66'), + ('Running the codes', 2, None, '___sec67'), + ('Energy as function of iterations, $N=2$ electrons', + 2, + None, + '___sec68')]} end of tocinfo --> @@ -275,7 +281,7 @@ MathJax.Hub.Config({

        Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University and Department of Physics, University of Oslo, Norway

        -

        Nov 23, 2018

        +

        Nov 28, 2018












        @@ -328,7 +334,7 @@ Furthermore, they have been used to solve complicated quantum mechanical many-pa

        An intermediate step, the Hopfield network and links to the Ising and Potts models

        -More material on Hopfield networks will come here +More material on Hopfield networks will come here later.











        @@ -1586,7 +1592,72 @@ History: The RBM was developed by amongst others Geoffrey Hinton, called by some











        -

        The structure of the RBM network

        +

        Boltzmann machines (BM)

        + +

        +

        + +

        +A BM is what we would call an undirected probabilistic graphical model +with stochastic continuous or discrete units. +

        + +
        + +

        +It is interpreted as a stochastic recurrent neural network where the +state of each unit(neurons/nodes) depends on the units it is connected +to. The weights in the network represent thus the strength of the +interaction between various units/nodes. +

        + +
        + +

        +It turns into a Hopfield network if we choose deterministic rather +than stochastic units. In contrast to a Hopfield network, a BM is a +so-called generative model. It allows us to generate new samples from +the learned distribution. +

        + + +

        +









        + +

        A standard BM setup

        + +

        +

        + +

        +A standard BM network is divided into a set of observable and visible units \( \hat{x} \) and a set of unknown hidden units/nodes \( \hat{h} \). +

        + + +

        +

        + +

        +Additionally there can be bias nodes for the hidden and visible layers. These biases are normally set to \( 1 \). +

        + + +

        +

        + +

        +BMs are stackable, meaning they cwe can train a BM which serves as input to another BM. We can construct deep networks for learning complex PDFs. The layers can be trained one after another, a feature which makes them popular in deep learning +

        + + +

        +However, they are often hard to train. This leads to the introduction of so-called restricted BMs, or RBMS. +Here we take away all lateral connections between nodes in the visible layer as well as connections between nodes in the hidden layer. The network is illustrated in the figure below. + +

        +









        + +

        The structure of the RBM network





        @@ -1594,7 +1665,7 @@ History: The RBM was developed by amongst others Geoffrey Hinton, called by some











        -

        The network

        +

        The network

        The network layers: @@ -1606,7 +1677,7 @@ History: The RBM was developed by amongst others Geoffrey Hinton, called by some









        -

        Goals

        +

        Goals

        The goal of the hidden layer is to increase the model's expressive power. We encode complex interactions between visible variables by introducing additional, hidden variables that interact with visible degrees of freedom in a simple manner, yet still reproduce the complex correlations between visible degrees in the data once marginalized over (integrated out). @@ -1630,7 +1701,7 @@ Examples of this trick being employed in physics:









        -

        Joint distribution and the Energy function

        +

        Joint distribution

        The restricted Boltzmann machine is described by a Bolztmann distribution $$ \begin{align} @@ -1652,7 +1723,7 @@ It is common to ignore \( T_0 \) by setting it to one.











        -

        Network Elements

        +

        Network Elements, the energy function

        The function \( E(\mathbf{x},\mathbf{h}) \) gives the energy of a @@ -1662,10 +1733,25 @@ function also depends on the parameters \( \mathbf{a} \), \( \mathbf{b} \) and \( W \). Thus, when we adjust them during the learning procedure, we are adjusting the energy function to best fit our problem. +

        +An expression for the energy function is +$$ +E(\hat{x},\hat{h}) = -\sum_{ia}^{NA}b_i^a \alpha_i^a(x_i)-\sum_{jd}^{MD}c_j^d \beta_j^d(h_j)-\sum_{ijad}^{NAMD}b_i^a \alpha_i^a(x_i)c_j^d \beta_j^d(h_j)w_{ij}^{ad}. +$$ + +

        +Here \( \beta_j^d(h_j) \) and \( \alpha_i^a(x_j) \) are so-called transfer functions that map a given input value to a desired feature value. The labels \( a \) and \( d \) denote that there can be multiple transfer functions per variable. The first sum depends only on the visible units. The second on the hidden ones. Note that there is no connection between nodes in a layer. + +

        +The quantities \( b \) and \( c \) can be interpreted as the visible and hidden biases, respectively. + +

        +The connection between the nodes in the two layers is given by the weights \( w_{ij} \). +











        -

        Defining different types of RBMs

        +

        Defining different types of RBMs

        There are different variants of RBMs, and the differences lie in the types of visible and hidden units we choose as well as in the implementation of the energy function \( E(\mathbf{x},\mathbf{h}) \).

        @@ -1703,7 +1789,7 @@ $$











        -

        More about RBMs

        +

        More about RBMs

        1. Useful when we model continuous data (i.e., we wish \( \mathbf{x} \) to be continuous)
        2. @@ -1721,7 +1807,7 @@ Other types of units include:









          -

          Sampling: Metropolis sampling

          +

          Sampling: Metropolis sampling

          In order to sample from the RBM probability distribution it is common to use Markov Chain Monte Carlo (MCMC) algorithms such as Metropolis-Hastings or Gibbs sampling.

          @@ -1746,7 +1832,7 @@ $$











          -

          Sampling: Gibbs sampling

          +

          Sampling: Gibbs sampling

          In this method we sample from the joint probability \( P_{rbm} (\mathbf{x}, \mathbf{h}) \) by way of a two step sampling process. We alternately update the visible and hidden units. @@ -1768,7 +1854,7 @@ where we recognize the logistic sigmoid function \( \sigma (x) = 1/(1+exp(-x)) \











          -

          Gaussian RBM

          +

          Gaussian RBM

          For the Gaussian-Binary RBM the conditional probabilities are $$ \begin{align} @@ -1784,7 +1870,7 @@ while the visible units now follow a normal distribution, we see the hidden unit











          -

          Cost function

          +

          Cost function

          When working with a training dataset, the most common training approach is maximizing the log-likelihood of the training data. The log likelihood characterizes the log-probability of generating the observed data using our generative model. Using this method our cost function is chosen as the negative log-likelihood. The learning then consists of trying to find parameters that maximize the probability of the dataset, and is known as Maximum Likelihood Estimation (MLE). @@ -1804,7 +1890,9 @@ Our cost function is the negative log-likelihood, \( \mathcal{C}(\{ \theta_i \})











          -

          Optimization / Training

          +

          Optimization / Training

          + +

          The training procedure of choice often is Stochastic Gradient Descent (SGD). It consists of a series of iterations where we update the parameters according to the equation $$ \begin{align} @@ -1847,7 +1935,7 @@ $$

          -

          More on RBMs

          +

          More on RBMs

          The data-dependent term in the gradient is known as the positive phase of the gradient, while the model-dependent term is known as the negative phase of the gradient. The aim of the training is to lower the energy of configurations that are near observed data points (increasing their probability), and raising the energy of configurations that are far from observed data points (decreasing their probability). @@ -1871,7 +1959,7 @@ To get the expecation values with respect to the data, we set the visib











          -

          Which sampling to use

          +

          Which sampling to use

          To get the expectation values with respect to the model, we use Gibbs sampling. We can either initialize the \( \boldsymbol{x} \) randomly or with a training sample. While we ideally want a large number of Gibbs iterations \( n\rightarrow n \), one might decide to truncate it earlier for efficiency. Doing this while having intialized \( \boldsymbol{x} \) with a training data vector is referred to as contrastive divergence (CD), because one is then closer to approximating the gradient of this function than the negative log-likelihood. The contrastive divergence function is the difference between two Kullback-Leibler divergences (also called relative entropy), which measure how one probability distribution diverges from a second, expected probability distribution (in this case the estimated one from the ground truth one). @@ -1879,7 +1967,7 @@ To get the expectation values with respect to the model, we use Gibbs s











          -

          Recent examples: RBMs for the quantum many body problem

          +

          Recent examples: RBMs for the quantum many body problem

          The idea of applying RBMs to quantum many body problems was presented by G. Carleo and M. Troyer, working with ETH Zurich and Microsoft Research. @@ -1903,11 +1991,103 @@ Some of their motivation included









          -

          Choose the right RBM

          +

          Choose the right RBM

          Carleo and Troyer applied the RBM to the quantum mechanical spin lattice systems of the Ising model and Heisenberg model, with encouraging results. Our goal is to test the method on systems of moving particles. For the spin lattice systems it was natural to use a binary-binary RBM, with the nodes taking values of 1 and -1. For moving particles, on the other hand, we want the visible nodes to be continuous, representing position coordinates. Thus, we start by choosing a Gaussian-binary RBM, where the visible nodes are continuous and hidden nodes take on values of 0 or 1. If eventually we would like the hidden nodes to be continuous as well the rectified linear units seem like the most relevant choice. +

          +









          + +

          Representing the wave function

          +The wavefunction should be a probability amplitude depending on \( \boldsymbol{x} \). The RBM model is given by the joint\ + distribution of \( \boldsymbol{x} \) and \( \boldsymbol{h} \) +$$ +\begin{align} + F_{rbm}(\mathbf{x},\mathbf{h}) = \frac{1}{Z} e^{-\frac{1}{T_0}E(\mathbf{x},\mathbf{h})}. +\label{_auto25} +\end{align} +$$ + +To find the marginal distribution of \( \boldsymbol{x} \) we set: +$$ +\begin{align} + F_{rbm}(\mathbf{x}) &= \sum_\mathbf{h} F_{rbm}(\mathbf{x}, \mathbf{h}) +\label{_auto26}\\ + &= \frac{1}{Z}\sum_\mathbf{h} e^{-E(\mathbf{x}, \mathbf{h})}. +\label{_auto27} +\end{align} +$$ + +

          +Now this is what we use to represent the wave function, calling it a neural-network quantum state (NQS) +$$ +\begin{align} + \Psi (\mathbf{X}) &= F_{rbm}(\mathbf{x}) +\label{_auto28}\\ + &= \frac{1}{Z}\sum_{\boldsymbol{h}} e^{-E(\mathbf{x}, \mathbf{h})} +\label{_auto29}\\ + &= \frac{1}{Z} \sum_{\{h_j\}} e^{-\sum_i^M \frac{(x_i - a_i)^2}{2\sigma^2} + \sum_j^N b_j h_j + \sum_\ +{i,j}^{M,N} \frac{x_i w_{ij} h_j}{\sigma^2}} +\label{_auto30}\\ + &= \frac{1}{Z} e^{-\sum_i^M \frac{(x_i - a_i)^2}{2\sigma^2}} \prod_j^N (1 + e^{b_j + \sum_i^M \frac{x\ +_i w_{ij}}{\sigma^2}}). +\label{_auto31}\\ +\label{_auto32} +\end{align} +$$ + +

          +









          + +

          Choose the cost function

          +Now we don't necessarily have training data (unless we generate it by using some other method). However, what we do have is the variational principle which allows us to obtain the ground state wave function by minimizing the expectation value of the energy of a trial wavefunction (corresponding to the untrained NQS). Similarly to the traditional variational Monte Carlo method then, it is the local energy we wish to minimize. The gradient to use for the stochastic gradient descent procedure is +$$ +\begin{align} + G_i = \frac{\partial \langle E_L \rangle}{\partial \theta_i} + = 2(\langle E_L \frac{1}{\Psi}\frac{\partial \Psi}{\partial \theta_i} \rangle - \langle E_L \rangle \langle \frac{1}{\Psi}\frac{\partial \Psi}{\partial \theta_i} \rangle ), +\label{_auto33} +\end{align} +$$ + +where the local energy is given by +$$ +\begin{align} + E_L = \frac{1}{\Psi} \hat{\mathbf{H}} \Psi. +\label{_auto34} +\end{align} +$$ + +

          +









          + +

          Running the codes

          +
          + +

          +You can find the codes for the simple two-electron case at the Github repository https://github.com/mhjensenseminars/MachineLearningTalk/tree/master/doc/Programs/MLcpp/src. Python codes to come, only c++ as of now. + +

          +The trial wave function is based on the product of a Slater determinant with Gaussian orbitals, a simple Jastrow factor \( \exp{(r_{ij})} \) and the reduced Boltzmann machines. + +

          +The Broyden-Fletcher-Goldfarb-Shanno algorithm was used to perform the minimization. We used \( 14 \) hidden nodes in the calculations below. + + +

          + + +

          +









          + +

          Energy as function of iterations, \( N=2 \) electrons

          +
          + +

          +



          +
          + +

          diff --git a/doc/pub/BM/ipynb/BM.ipynb b/doc/pub/BM/ipynb/BM.ipynb index b04e34ce3..905db8af6 100644 --- a/doc/pub/BM/ipynb/BM.ipynb +++ b/doc/pub/BM/ipynb/BM.ipynb @@ -10,7 +10,7 @@ " \n", "**Morten Hjorth-Jensen**, Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University and Department of Physics, University of Oslo, Norway\n", "\n", - "Date: **Nov 23, 2018**\n", + "Date: **Nov 28, 2018**\n", "\n", "Copyright 1999-2018, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license\n", "\n", @@ -54,7 +54,7 @@ "\n", "## An intermediate step, the Hopfield network and links to the Ising and Potts models\n", "\n", - "More material on Hopfield networks will come here\n", + "More material on Hopfield networks will come here later. \n", "\n", "## A brief review on Markov Chains, Metropolis and Gibbs sampling\n", "\n", @@ -1498,6 +1498,44 @@ "History: The RBM was developed by amongst others Geoffrey Hinton, called by some the \"Godfather of Deep Learning\", working with the University of Toronto and Google.\n", "\n", "\n", + "## Boltzmann machines (BM)\n", + "\n", + "A BM is what we would call an undirected probabilistic graphical model\n", + "with stochastic continuous or discrete units.\n", + "\n", + "\n", + "It is interpreted as a stochastic recurrent neural network where the\n", + "state of each unit(neurons/nodes) depends on the units it is connected\n", + "to. The weights in the network represent thus the strength of the\n", + "interaction between various units/nodes.\n", + "\n", + "\n", + "It turns into a Hopfield network if we choose deterministic rather\n", + "than stochastic units. In contrast to a Hopfield network, a BM is a\n", + "so-called generative model. It allows us to generate new samples from\n", + "the learned distribution.\n", + "\n", + "\n", + "\n", + "## A standard BM setup\n", + "\n", + "A standard BM network is divided into a set of observable and visible units $\\hat{x}$ and a set of unknown hidden units/nodes $\\hat{h}$.\n", + "\n", + "\n", + "\n", + "Additionally there can be bias nodes for the hidden and visible layers. These biases are normally set to $1$.\n", + "\n", + "\n", + "\n", + "BMs are stackable, meaning they cwe can train a BM which serves as input to another BM. We can construct deep networks for learning complex PDFs. The layers can be trained one after another, a feature which makes them popular in deep learning\n", + "\n", + "\n", + "\n", + "However, they are often hard to train. This leads to the introduction of so-called restricted BMs, or RBMS.\n", + "Here we take away all lateral connections between nodes in the visible layer as well as connections between nodes in the hidden layer. The network is illustrated in the figure below.\n", + "\n", + "\n", + "\n", "## The structure of the RBM network\n", "\n", "\n", @@ -1536,7 +1574,7 @@ "\n", " 3. $W$ represents the interaction weights, a matrix of size $M\\times N$.\n", "\n", - "## Joint distribution and the Energy function\n", + "## Joint distribution\n", "The restricted Boltzmann machine is described by a Bolztmann distribution" ] }, @@ -1583,7 +1621,10 @@ "source": [ "It is common to ignore $T_0$ by setting it to one. \n", "\n", - "## Network Elements\n", + "\n", + "\n", + "\n", + "## Network Elements, the energy function\n", "\n", "The function $E(\\mathbf{x},\\mathbf{h})$ gives the **energy** of a\n", "configuration (pair of vectors) $(\\mathbf{x}, \\mathbf{h})$. The lower\n", @@ -1592,6 +1633,28 @@ "$W$. Thus, when we adjust them during the learning procedure, we are\n", "adjusting the energy function to best fit our problem.\n", "\n", + "An expression for the energy function is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "E(\\hat{x},\\hat{h}) = -\\sum_{ia}^{NA}b_i^a \\alpha_i^a(x_i)-\\sum_{jd}^{MD}c_j^d \\beta_j^d(h_j)-\\sum_{ijad}^{NAMD}b_i^a \\alpha_i^a(x_i)c_j^d \\beta_j^d(h_j)w_{ij}^{ad}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here $\\beta_j^d(h_j)$ and $\\alpha_i^a(x_j)$ are so-called transfer functions that map a given input value to a desired feature value. The labels $a$ and $d$ denote that there can be multiple transfer functions per variable. The first sum depends only on the visible units. The second on the hidden ones. **Note** that there is no connection between nodes in a layer.\n", + "\n", + "The quantities $b$ and $c$ can be interpreted as the visible and hidden biases, respectively.\n", + "\n", + "The connection between the nodes in the two layers is given by the weights $w_{ij}$. \n", + "\n", "## Defining different types of RBMs\n", "There are different variants of RBMs, and the differences lie in the types of visible and hidden units we choose as well as in the implementation of the energy function $E(\\mathbf{x},\\mathbf{h})$. \n", "\n", @@ -1854,6 +1917,7 @@ "Our cost function is the negative log-likelihood, $\\mathcal{C}(\\{ \\theta_i \\}) = - \\mathcal{L}(\\{ \\theta_i \\})$\n", "\n", "## Optimization / Training\n", + "\n", "The training procedure of choice often is Stochastic Gradient Descent (SGD). It consists of a series of iterations where we update the parameters according to the equation" ] }, @@ -2061,7 +2125,220 @@ "\n", "## Choose the right RBM\n", "\n", - "Carleo and Troyer applied the RBM to the quantum mechanical spin lattice systems of the Ising model and Heisenberg model, with encouraging results. Our goal is to test the method on systems of moving particles. For the spin lattice systems it was natural to use a binary-binary RBM, with the nodes taking values of 1 and -1. For moving particles, on the other hand, we want the visible nodes to be continuous, representing position coordinates. Thus, we start by choosing a Gaussian-binary RBM, where the visible nodes are continuous and hidden nodes take on values of 0 or 1. If eventually we would like the hidden nodes to be continuous as well the rectified linear units seem like the most relevant choice." + "Carleo and Troyer applied the RBM to the quantum mechanical spin lattice systems of the Ising model and Heisenberg model, with encouraging results. Our goal is to test the method on systems of moving particles. For the spin lattice systems it was natural to use a binary-binary RBM, with the nodes taking values of 1 and -1. For moving particles, on the other hand, we want the visible nodes to be continuous, representing position coordinates. Thus, we start by choosing a Gaussian-binary RBM, where the visible nodes are continuous and hidden nodes take on values of 0 or 1. If eventually we would like the hidden nodes to be continuous as well the rectified linear units seem like the most relevant choice.\n", + "\n", + "\n", + "\n", + "## Representing the wave function\n", + "The wavefunction should be a probability amplitude depending on $\\boldsymbol{x}$. The RBM model is given by the joint\\\n", + " distribution of $\\boldsymbol{x}$ and $\\boldsymbol{h}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "

          \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " F_{rbm}(\\mathbf{x},\\mathbf{h}) = \\frac{1}{Z} e^{-\\frac{1}{T_0}E(\\mathbf{x},\\mathbf{h})}.\n", + "\\label{_auto25} \\tag{27}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To find the marginal distribution of $\\boldsymbol{x}$ we set:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
          \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " F_{rbm}(\\mathbf{x}) = \\sum_\\mathbf{h} F_{rbm}(\\mathbf{x}, \\mathbf{h}) \n", + "\\label{_auto26} \\tag{28}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
          \n", + "\n", + "$$\n", + "\\begin{equation} \n", + " = \\frac{1}{Z}\\sum_\\mathbf{h} e^{-E(\\mathbf{x}, \\mathbf{h})}.\n", + "\\label{_auto27} \\tag{29}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now this is what we use to represent the wave function, calling it a neural-network quantum state (NQS)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
          \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\Psi (\\mathbf{X}) = F_{rbm}(\\mathbf{x}) \n", + "\\label{_auto28} \\tag{30}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
          \n", + "\n", + "$$\n", + "\\begin{equation} \n", + " = \\frac{1}{Z}\\sum_{\\boldsymbol{h}} e^{-E(\\mathbf{x}, \\mathbf{h})} \n", + "\\label{_auto29} \\tag{31}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
          \n", + "\n", + "$$\n", + "\\begin{equation} \n", + " = \\frac{1}{Z} \\sum_{\\{h_j\\}} e^{-\\sum_i^M \\frac{(x_i - a_i)^2}{2\\sigma^2} + \\sum_j^N b_j h_j + \\sum_\\\n", + "{i,j}^{M,N} \\frac{x_i w_{ij} h_j}{\\sigma^2}} \n", + "\\label{_auto30} \\tag{32}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
          \n", + "\n", + "$$\n", + "\\begin{equation} \n", + " = \\frac{1}{Z} e^{-\\sum_i^M \\frac{(x_i - a_i)^2}{2\\sigma^2}} \\prod_j^N (1 + e^{b_j + \\sum_i^M \\frac{x\\\n", + "_i w_{ij}}{\\sigma^2}}). \n", + "\\label{_auto31} \\tag{33}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
          \n", + "\n", + "$$\n", + "\\begin{equation} \n", + "\\label{_auto32} \\tag{34}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Choose the cost function\n", + "Now we don't necessarily have training data (unless we generate it by using some other method). However, what we do have is the variational principle which allows us to obtain the ground state wave function by minimizing the expectation value of the energy of a trial wavefunction (corresponding to the untrained NQS). Similarly to the traditional variational Monte Carlo method then, it is the local energy we wish to minimize. The gradient to use for the stochastic gradient descent procedure is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
          \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\tG_i = \\frac{\\partial \\langle E_L \\rangle}{\\partial \\theta_i}\n", + "\t= 2(\\langle E_L \\frac{1}{\\Psi}\\frac{\\partial \\Psi}{\\partial \\theta_i} \\rangle - \\langle E_L \\rangle \\langle \\frac{1}{\\Psi}\\frac{\\partial \\Psi}{\\partial \\theta_i} \\rangle ),\n", + "\\label{_auto33} \\tag{35}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the local energy is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
          \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\tE_L = \\frac{1}{\\Psi} \\hat{\\mathbf{H}} \\Psi.\n", + "\\label{_auto34} \\tag{36}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Running the codes\n", + "You can find the codes for the simple two-electron case at the Github repository . Python codes to come, only c++ as of now. \n", + "\n", + "The trial wave function is based on the product of a Slater determinant with Gaussian orbitals, a simple Jastrow factor $\\exp{(r_{ij})}$ and the reduced Boltzmann machines. \n", + "\n", + "The Broyden-Fletcher-Goldfarb-Shanno algorithm was used to perform the minimization. We used $14$ hidden nodes in the calculations below.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Energy as function of iterations, $N=2$ electrons\n", + "\n", + "\n", + "\n", + "

          \n", + "\n", + "\n", + "" ] } ], diff --git a/doc/pub/BM/ipynb/ipynb-BM-src.tar.gz b/doc/pub/BM/ipynb/ipynb-BM-src.tar.gz index 245e47f51bc64a8a79b6c087898eac10afbc50da..5cbca87a0e9d49da1ae92262e6bea0bdaf3ae2cf 100644 GIT binary patch delta 23089 zcmV(rK<>YQp#qn<0|y_A2ml@i|FH+Af`7x_TL;zAHT|L+3GM_*a0u@1Zb3Hg?(Xgq zJXmmt;O5NP_3G~R>oqf-P^qc- zvfbhGXrLv7fx={((89P#v_|S!I;y|^mX5fp|EFFAy}vazI;tpPXaka6)@)I94S%>F zRnAV%?v9Z8qv=b}7dj07A_&9mvL9r@BhoeZoJ8|V?lPY{CFTDV7#VoW4Y5P| zor*D&d&Q(PqSO1rweKgPw#7jMJ_bWx+EcGL%<`>AO!F80Q>{X24=9Ce9e>yRu1?{y zg`!Mnmt66^wLh_b>zx`H zN~oFA%uvcu3I|Hj8-zP1>mJR(x34SN_0@i^cD{%q#=uTX!;W z(_7kx>S)qb%fbmFXpN3i9>x5F`|F*1ZzhvB39zT&D>i%|md7f{tS^!jg$3Rs%>At% z5PSId1C?-sR*U&{BAn;&!vG9H`!oepXR)a3P};xiig6RJwvD1_p??7mPBm+3p&R%! z7S}X=O7&rXK1cq1PVV#tUgrt8z z16TsxfQE#|lWE-tR$H?s1Juh0%Fj8Re-l!G)TUce|ZPY%; zRggUG@yv4d?L7qy{(pz=Cp;XW3*-6HU>bIKt*5{53DlAqSAXYNe5S3_CDoJULBSFf zD*wc>y|jq1LhICMA>d<#>itfhk9L`9c3Poc?4U#PZ9CMOuC$-EQ&r4<9_nn*avfjt zw=Wbi=*vfYF|Y4WBc?wME9_brztj<0g}`tdi+nYPIQq{=hkt4)SBN|JL*}?X39}om zpUc7Oc(v2SA&Q8|@*Rk!IK~WptJ?R$W$NX6Nk^!7!Wmb$x7*u;Mzv)MEL+GUqgsoJ z$u&m48?~ql{u?4{gqj>(LKbu!C0&he)*|KlHP3%vXj`Qhn>8Conz^eaW1Mc^@mV_; ztJe2R^?=C<(SLv4sdB^MUEsnCvdna3n0IXXjiyh_2w5Alu7L#ig@idM7P&KsGnHG) znP5BhzTrT-!+!orvG&p^Au+lB%hi!q%L0mej-G{A_U#|yx_wd z6@)5$)ly=*AVFP2Yq+U?Ji_~?%DMNa+W*$Kfu~UW`+t-p#M~vA$(@W3dcFhU+26_p zxhL?CT?`yQFOJ1Ul3m|n6YjAVWdG{dF?T(joG+a<)3rCU6;U&Kqf=^HXe86S{KS9z z{*3ZTFZZ#p34G4B|B8V9Pob6S*BGeYERE+4``ICF*H?5y6LmHAMv~o>(YCJl_Cf>j zHR9{2(0_hK= zlw7^5-q^qhyS2mh;S@c8dYWRxqvj=jI6CW3T0mo%S1@V~sHK}Hw#NOyj^r#%^Ah+N z4xF58jZZFqs}p;~*LiCUpKKqQ=Byg=i#>;^|9?Kl8=Z>Y=QNGmj1v!lKv;wq{fVv; za02!8j@Se9!?yg7jDgXX{CuM5Dze2`3tbyVRBc5nuTBj_j|5SCrGH)u8;$>;UkV%C zt!F!FC1nC-D|%R+(%&;I(~MtMSgS&3*9$Km@Df?W+D5xb-E|8f-cy+eW`1Ov?x=eMp5j(S zgAs&oS8sl6MlB&Nvi7 zF#1u2Bb@gqX_beLW4m9C8&hW7mYmn)th2>vR<}>INAQ5Y{QTeVWtjqdkB-kox1F;@ zFZsRxiG#lcD)_SOu)KIK8cuLE;Kyof3N-L(UZd>4AD@=?=ddw2jA-niVgJVQ0e@7S zA%~c4MYHt5$(I%KH?J#m?+-cJ`Ux}<9M0$OJQR;>D%+@vtCspUUb-F(`yT4ezjAQ* zLa}SGu`@1kGSI#?G8ul0(b8a(|M{MpwWPKRylgIb)|d^E-ayy_6Myd_+`Rlklg}43sKYsm{JIj2-os>VD#)1cZ_$a< z2sATp2D@Nm`@hwGW`jPNKVg4gem}eGTA}*dI`?u@?WwZvG4bGCCqt{opGqM$hkxI3 z%4UY7YyR+c@$bjMCw+qy3apuN7$?vT^-fq6po=H~cy#U##}l1HNLW7Rd9=+0JRE zQY|HRSMSIGA)9Odd3&9&1bm1^o_7>53-Y^*&7o1)!E{1;kQIsj#rwiD9F^UZwy>Bx z2Sj+ZdWGVYh)=(HJl(UWH-B019J?u2yKE`5NKi%apM_UZwRalKb?^9mMX$JQ5P>XP zel}Mu%f9<7eE;b|0n}Xp^G998X0D3B0ptEnC9@f*0bJA&NZa<3AJBZ;)^-B~G>lE-&P7J%5-^1dlXWNe=Io z@5K?Qb%S-DNT4q)1!|74^04w(+G;M#NS$l$=Og~t2QnJW>2t&zqd%aG*3d)>?q7O4 z!j?hu2{uOa7I|&Up>yr^?+ZM;JDeuVsce7pB&ergVmH?0j>_{U+$+&{B%TROq_B{Y zU>v$>lq*rX^=%U}UVn&X^%JwfC(VzI@DBT;C7?ceGs7q`}yQJuzkohW&t4Oj^u!-*RD5(pz<8;U9k&w`%Hy>-9C zpNcKu{(KLQZP?B=N=aJfq$k4mFI1U9F_LF~DyE?$%j!d{E#rz8L{6@0-m}8W?yRk` zHj8>}o=%rcW`B~MZEpDc@pD4LN8~Lzrh9Z&7v-U%#J_cSlK;L!+u11J=x=5pM4Y*J zqWurr3LQ7-!yW4zudjxK6Z0eak#ZIWOSQy_eN$$vXRCpA{@|9Dp=!Ul`XyaB&z>A? zLDW82n+6@sjqs;@;A-FqJh7TZ#4A138_7m?)QZZ^Z+|%D8J)W@mGoDnNXTLxvQOS0 z7ZSfne?@;OGbkqa>eXy*^kRq2w9ne2)9S-vA1J-uv}CQv^aY`Yu(=Lg@OxY=sW-&G`{%>R@&)DIjP2(?*#IH)HB5PM*qL0p5p(NLZ4xMVH=SjX~V=oAP~8WxQ2^~ zp^GVxv6CsV1FKoBMEpWzX=CH+?BZnTV(-MG z>|*HT;_9H_WN&6^V+vAmvb1vn+XPwtOAD~_yth;`br!LAwKK7_GZ(S<0I_i}c`$P^ z(E@*SDI&=LE!n@cfFKiBV^b%Pu!+5qDY1f>1hI{!k&~g5CovZT6O-0;fHy$?`d@N2 zQ-3FCpoJiSj-Hu;9a$(yT^6`b^>W?A(1AzvkFv!6OJOYZ%p5ArOg!xDJnXyD>?74|=P?44BX?QQ;Ph17p_m{?Sqb%wVh4q%}9mjP_*VhCv3@V~!J#I`@de>M&L zXITDw9yj>Fet?JbA09B6N6gg8(#_OF!hgx$7Ub$`X~HAI%+A5d!Ya-!%*-av#mvmb zCCAw=#O$@nNISo1J&5XH?=-F7HA`npBO6nBH&Z8v7t;Yr7}_|SvbT~^|7#Tg3$2Qip`EjXp_8edvFBfM zb&jj@e+~E_aNBY+6?KZxXBNSr~;8!pm0z$K8BxSUv( zh`|TY|G)j;w3%6&yE>UVGXi@#7Jmi@JM;eo_h4dT;$UMVe%W(!u>aXJvHU#;Ha1RX zW@ch$R#p}cR!&wM*QihqhKSQ;CH zK<^`xlFStnG;#Wm&-r#kgfK+H6hz}_$O975w5Z0*ON4f^6vS=9TOesahO>!(5{JOi zNg}lte~lRV0TSCKhz@e7%@IpcSkqzUP1ZGmVEc2L_o)4o^VYKS=&b_;ad?pFw_$H1 zrM9kx!I(F=uYW+VP(|e=cYmK=xInE;eL)9Re)n!$8NIE7Lyxn3*lcNOce4m1RX^ZO7m9K<4LHy1V#|{SjS1ECdif^&K9{bLg}4 z@kbS|4;Ql~12#qSPAXn%sl@SVP2=!{DZ>}9-%0jTi1{g>JSRO66n{#Z6<3SdISo+= z+qlT`ocp7&voNti>zkkU?aRcHNId(Gnv3gq{PqIPI)jMsJH6JDKrTm+LU&{8^0uwj zi9R5nqZ3x>v}do9BxGc`0LUF77%E8B&+smR=uA+_UD#Y8oK*-PVYFG$4Kd6+NQeQ* zRs&cnkhlR67hIVTy?+G={240~CTo?i1+pq=VU+aF_Ctyg^m5=UxDPdGZ}Nm$ zK4BD~>-IzsxLufhH-Eti)(rK}|yEzXEqGT(H|fx-oWQ&H2^2VPgq9?zl*y zfrf@Zn0}@b%YWjVu@>Pv<4%OOM!oqiYp_+LQGuieYaMdg6>2z9`)XGDK1~T^;(oeOpAdI1_P>kjCG&xcjUDq2Sg9YcAjO(Yi|vsPD0Ar^ndj!jAQ0apcuJjLQ4Uf5{xC| zF4r#0F3B!(n(Q?3LVVER?(dG@6lbbu%4gop>8aVc@^m6L85)fmVY8oRX%VvXA@X>AsUnVoSbA`H@_a+)hkw zLX3nA6C2k>WteFe#Uvn2{ob*FwD9VEqcpPAh|I9mg0!SGj&!pWs*Hc4;Skrr_u+$- z-9%5)$oQ$`%lMIaeo}9+n_3KmIdy*uZ6YuI^?!T9bY#G-czJ+cOBOx|gvrkh18Re^$kCQsn{c4{49t9ppVJKkWVE|nrmxeNg zdWJ5A`r}#Roko{MA5~LSyXkb;y3Xv)^nda6#q~)>5vBf;T?D&jT%`K2u(M*NHl_be zElmqapGu9c+qIE*W4;gNo?rawlX2^Lj*4A`y^CE;|5P{G7}adkl&ROFh1ptUI1-%n zQ8iUHE9qCdC4rUiq?Sd#4W^m0{rL~IDUR-@F}IKTy%8IkzuW6rYcOXU7e<`vTYt1$ zQV!9*Depz@Az;gbazvAQlqIqHE&8z~;}Rk!%!-G9T9~VEKmN?;dqtQt^BuD_wbjOP z*Ok2Wu0^d?z|+0PSv6Q|VHbkWgAkT4+oO(8ncx4i+r!gK)tmpC z_WJ#-{C@;vPj!FJI??*dZ$TmhB89iaNRz0G7#_UuIjA^F zXmRllh!%1AntvKDeREA9p&)rhLbk8DUq7?5Nc@GwuqPxsG1?GsG&oNbN+d%Rr-!e5 zuV<^2#$W$#yMEM$Ym zr;A++CsG7^pO8kPbl+^GO{Yzz9oIk9|1^;?p)|d=A75@TpHPW0{wbfKm~oro?Udx~ z{yWBg&8Bn#!4`RCz8>tV{eRRncqq3Ze?WW?zH+LaEv#p`ypRRK`{f+#ta)4hz-fL; ziCB%83U|r2^~)9PBxbmQiVL1ugHSKityu%%+Hh(_VbXVq;D^)t_ zZyKq}PB}E{x@t%JjAW||}J=;WIT>H~zmw|v`9RmBT+Umn#v z^kZ|>1@wJ|&qM~ryL%rZWm23NMs(#``Mk;RhQvnuvisGcs+W&1_Xt|Hybk+Z`}fuF zxqMUXG?uvhC)T%GwGXtjn!)z&7a14L&t_-Z_W`>?{RH*Ax_|B?$8M-qZ`!#`SY0-= zA3OH1J+JLis|g74Pw_mN-m=j6pq(1r8Fu%~#Ig|4^DPU664LsRJ{3HaK1|%LH2T?N zrXw&$EyP|6o_k(-d=NZ6i)|3ZraaF{$Vri>2D5|lz&SaNnXUImOOb;q)QmW0h);<( z^;=0><@Nq^Pk&R42(Q7N*zJ0EUv8p*WNg?+uU!4`{K@Z|a${%MdD8LY9+PO6=uQB} zCsS)c>pO#*&-mTstkU}UxS$B#r_KatunGX2h>hPXfk7ZI3J@qD7zDZlehSzD zuqJ?L_Y8n+FBJsBamZ{_o~1`xY=I+zmwL1h{tSt+*hCZ)*Y&-Dn5f%5S5u+Se*o;X)U)!gNq zmspK?X~Tbbp$31dI>Oq`Ioc)i*;A0Z^;H`b6u8`P#&4Z(jG1qoN$m3(QqJyw$W(8< zb3OWO;&*rXV@0s>>I{XBqWfOzE+ZJOUv(`yDu2DvH%y{=S;=0ORNDUSuuk7`{)2nb zg#Y}LJ^1OUv$@5~y(V}rv?d_*W-3T!})E}E)Bn!ju zSEk0VM~}CpD(<+oGET9=%)aJmj4WSI-=?W=X+8@a8<$+!4@BQa^kSo;2@b?R7@bNM zoPV+2VE00i^)RV06wT8j!idX^v$!TKJZa5oUbyYiz2(F8;M6#;p*%-Nq4tzi_7#Wa zgP;E%6cOl-(Gy_U#Z<#o3=zVHOPmH3~?XgZD+tF^U#Un_R#)3{h`e|9=ht zC{D-~j^{61Zf`?t7OS?gC7MFIEz|A{@e!=Imnq?daNfK3Z^V2P$hy<}{K4I0zN2^% z6*GJ=NGcX_QjW0qoER^k{xj5K|Bs-2)Xyvd16}2{xOlsceQ)4xPJ`I|pSbc=Mq&qE z$p;@qRM543%Qmk~Fcru4=c3cJ%YXm1npr_jo2uY8|+p z;aWTkYz~a*Gzx$B)?#PV6W4N$=h<2-HY zTKmu`bH&i#_V#wZ2%lVE#NoJ*?v#qlA9Nn@7E%Sa_T!Sm#(<-~CuX5E3{MnoroQ7G zhu!(Zj4{xVHTk*Yb&_zkq4*5FLAixR+AGo5UTN)_&PlD1Mt|F!h=Pedak6gA za#nad*`mhd!)4`kBK0b{`Pu;zG?4-89&@%SBg~vIoY@EUL&n6!3O*;5U${;kuh*e( zgtWqF1n#JQU=YaA!WuWfZ}o7G7;MyI2xyy;{uFJ|9DI_oU7P=1_foX*dvO{u~rgfV@(TZ+8Q+We(!L{eMXCr(LYl9t=sdpGb zF9FY&=S^cHa=J=v`@<+-{4RGRK+I|h{MocTBZ4?j!0Oy=YJXF$|1(htYX{-Flgggq zhVwV_&#gZJ!D|VPG!wR(~2#Ba~tSI7j7OE9C zTH!4pN2gT^{{-hZ@@tcs66o*7X*Dn0rMa+FBHwt*-mzBOe$VA%V^{p})h@w0T-^Rn ztfzf{YNVyV{{ifW!OA^)Q_ADtcXmJa4My z_vh8v`d2PeqS|*dZLYgBLa5qr#Qju*R}w!fY=3^JhH9i~ zsnf-0NrkzCcAORTo6_}2Yua_c9p;}LxoVq3$@`xJ!(k;80wyf`(Y)@GW$ZvcwYe8? z?^3PwxI|#*!l5r=Meb*o#s@J>M7OKHQ*=0&b{$~o2wHw{;e>|CU2PLcvvDm2&xayf zJAc-`t7YTXU2|WWL~kz>VE!$y+Onb`dUrR2_)3qW3&n*=cVpbtmEntZXR=YAVm*+G zvdF?hNQPmsfy-V$@?lnt`cb=KM>p=q=(*4at|edoG-0mgD#kT&C>EYKyLs!blx)eM zk6D`Y-QnnD7t;9TKu9-?oziGo-svbR)PLr!FKY+h;oBvcaglS)Y1vR8q50uoXXY59%CL>>q}tdIG*^Ge58 zSr>xw>V}1Dcs?F8`I24jJBjQ~mi!*SN{xI%`Z~q&9cE{%4^KMdOkmM$HQ$ylwD5W! zN+yK})!g*U;mpZ_sP!=XXGbo21%JOpwhu+|YApIZ2#RmRk`2;?ER zjP2xpW3i+2n1v_lj|_if(ZB5`DL6Z9p-_Yw`MV~>-mX@|31yusxyKwX?8diwp@=Q9(1lLxCK4w;Z?IHZC}!-tgj4E`)qxU~%&1QiU7Y zcJ6(rd$SG+dKbrGz{`(4EBNlUk}l48unxy*s1~E|G5?ke{CWHg9+f_q??r0Fk+)c` zJ{9@}OK^dPkklADnhR`GsDJk;avbJayhJ{C8Y=`rB?|dxi24GJhBIyU0m=}Th|j&b z5_T(&u|08#wqkcUhjGvYGL;`2K_G6`fBqA?CErARbzjN{dl}YviFo#^I69f>NbzW) zI^$RQ>9Yp-hz{%(hc*U=)|u>PhwoY_0=W=JkJ>Ua`6D?^a(Oe&JAZ`kj&Uo5n%U0z%}%jKjUl~p~d zs=7blbxw9rlZe5KiHS|BNW+n=qkIStFCn0d;02MA=DB? zsRV#RTs9qGp*I?TM}JCcg`Plxj;5?F|&uc^*>B!63(f+^)p9%sirmwc~D25ns@c?}&*&t$$K0Bs)91MKtY;??*uG zdADbK<&us!Cx$u>-`>(`c7JRPaohS~*?uuDGh1gmoX7nHG`PWnK+q2#N2dm6f4VY~ zH!+5dnK^Jf+Z(%BK1YwOaHKcxE+TwSgN{7YtpPWdUk2#n`M|X=S4@x&1CGE}8-veE znC*fCK5XZ4*nhB#E^v&sFkn`%+=RD8NRJOFDbMrwy};S+Lt??MC!x)PM6E{f@%=B? zjw6n(Q^Y$H4SN3T~677vHtow zIyP|7wkH!9Gt`hcXEe+aS{O9JMl0Pfj0T+cG#!Qxc7I^fbs}u@kTw#Di6Js%jD&KI zp3@|IX5%n8>o#wlNA?=E#B6YZOpH`in~N-sEG*yx=$48mEG^Pu7Mf_Y6Gpcc>97sc zDWc73i>YE#Knz3)gBO>3`9nbMxtj=Ap9eyzX$66cVd-)+J6#_fobE zWz}3J9e+LV&d|T4UA}&78&2n6VM6-t#BIXz1~(J}1gI#~u#0VkiKGk~ZlG4*cA;-? zsvI2}0wDyFZWy6|M{Q7zzuysGBN^*@P9`{}G@IX*<_IpF$}Jsc@@<$_(r2@__E&{U z)DK_V8n`F+G~dLloj()9bt{!iXEshpCKKkzE`KydKRx-qjuiLE4qIDWnWJ=eZ1RfvEl%R*gsQOkYkhmEEV zJPDNfhtI)chjdwTWJ%H?%@QiAw*LNt$7Zevh3P@g7OtI119MdI9uRUAg0VXeu zHrY<7GUG}y0{6#Q3M}Unn+7aY&DjE{lmtby{W?&FN`og23?baIHL` z>^(U{UuY`UDN^F^#qHYd*%Iwf1cJf(YMUKbWO)4Oc2Atg*{x4+7gWrKO2si3%75Mc zeb1QJ$6itxSlHtBn71nYJQDOH{C~Rmn&1XsD3xw100L0GW2VEW4?ArEbfso2ZxW@+ z0fUK(iVB7*SFfi-1V+0ZB0-8bV}vwIPW_$5%5@Lm1va=rZ4%B74op$Dfc@^e@MPMG zSK`nwZJpn?)i=;#zl0(7hqDytdVd1;*ICkPF&n`fZIB7Z?Pc+#Ox&Qr{kApSI>k#E z-f%hQA`I=0-5wA(Th8(QfC&rMzIZX}geyT%P|yh!%Q!@@rIR-2)tuAX^l1;xkW`4x5xa816&oZLZ;@7smV}F`)UAy<= z;%@vXtT+)?8n`$`M;jtSqSN1W_>l;TW{|;*Ab~B%|78@@m1i#O7dYG(RL(Wae)71f zqLK~Qb)yK4nMRvYm0t5qP1TPbsyw3({MIZN)9%QY4jt>KA4Z_8I7;N^#GLZxm={Ir zN+dM@ShffEff!%5Wsb3yoqzVr#xg&t71Un2$^BL9LJ>`%Y5iRKgiYyq$(@`sQV(2? zI@RlL>aY0yr3+PacYaoeHf3$idQNJGRX`Au&L}t4G;FNm$61QTWKbjr_d9meyc#`c zVq#Ko=AXhv{+xHz8K;}!^>ULvgEHHCJ#Q0+l=6~0mC&%TwR?dVH-EA0+#_%H5m-69 zFbp*ep7>BWVR>aNJ*k8TUm)68yib^{k?w2db2%*hzH!qoTDM z6}O0#S#tdyv|^J*vd(q3&Q)v~q;yskP$e_k%Qkm4T2d`Ma(`21r5MFD=)5tQdKmSy zyddfbne@Gx)Z=^C1#0A;lASFb>kbPt51ORz*}>Bm_vrBX?>fm$IKboryU+v}k2w4! z8yE={wb?Ynu?QoDZHjIih!{2#7ksFIX;vU8WJ%-sS*PF|lYdS^q^wiXF-r$%<+*sc{>2#|f;;ziL4FfrH z#XUa-lTAsogUh@Za>rlSj}HxkRy=%RzyX8TAR>shlYsJIqy4 znZOe?Z!5~Zo!R%L)M^tB_+=*JC@3f#eh)OiHXY|x7gfX&Pv^$+8L%YVbj{|{rr#-Dq* zsEq%D?1DaFC zQ&ix&U)hCd{roBo&#jLD0k~ah47DX>7gh#0DSsL|`iPDs`N(p%-2r1xI4=?au9Sgh zK)keTEXq}7d~v>+

          REU9_vtxXDX9&B}nbgZQ2iUU1upY(M!3y|tz|&|}sKN2&Ve zV%|UGV1Rtl+kozWoS0nF0pu$E?tWZjwls(mgLP!}6GwP@~apYOCAw`%FRf}VxYTbyYNKIQm|IO?Jjt)B8B;Bs%p*#8<+yv%guaO!jA8O+m)&y zKtVwn?lxe3aR>4@1RX!mMQ>>_u|o<)+jI~bGz8yh5CH4gY=@kleLBjDEO7}4#D4{H z`d3$pB_t(jr-#kz*_)s5zoOzVUA<=EJc#mEj|eXrdDrB{0SAeMgd{5!Dvb8Ix*D}m z3BJg(+f}z&v=;I$0y6(_=P>lcWJZ&VL8w0a15&eAi{xEp2#nl?w$xF943vIzoH>#}_7& zTJ|&n(1u~kX4zJS*u&Hf_~=#XzSoj9cTZMDSvCPL_fKo~h;XCvpHuY_`*5$piHcLO z>Jtrbh)w{DOa?%J#XN>8|CdkMf9A39qGIEOEx>NYae)DsUk89X9N-jTCw~$0K9K5q zo~DbrXd^?$vHYR2KEKIk>&@jCbALp{&|4nyGhqW(-Uf>CPZyi=dlu+?)O3;#s~>?S7O&ufFAdOMjZ&@(p>*l+s$3 z`Ks4{Iaa%B{;j)(7<+3~q>n&s{GF-%WRVrJ$*-S5crG@QpDTTBCIDyK-JLCfADEK^ zFr3y@tyIDbnzLwoY0vz3^p|5V;25$ClhGjn3K)A`Ny-=h+TGbH7^Kkx;$BRQTzW+| z`QM*BFTQ*Hjaz`!w0}{kIXw6Ew*B>(;PCKy@qUUC(XihuDf%(I7=R=k0$ziA{%g?o zh54zuyImyjYv4yr0&T#Vzu~F%za(ajaomiScb%v!*LYR=mT!^RU&;N*_Arb}$p&sA zv&Co06B7hX{0;;YY?#cOiuUrHeR6fMFP>?pS7y$dh7^p(ZhtTJJ{dtK6^Nk(&U)hw zwqMqqdYC>9Z>}#N|00to>T6t>=_P;xSOU4_)7z?`KCzCXqM&p$MSaYu+K;dtg$|&% z=6=KeB6Hbm^lfOMNG_;{Y4u(JK%GEPK%H^jSl&j+R0r%*i`{<4(kdNhxXwTm8#GtW zktHWO(a>_;+J6nqI4zbleJwqoIn?N|*E|V9niERZ5r7YRWW$0d(m9OL6j?^JrC8xU zd{io|+OMHQ>@{LO@~!IH(@d|l;m|(yzvx_VV*p$Wzh7$6JRn?))1DlxS_h5RWZG60 zDNBKQEr2;v3ZRRR_hplBOw%cX(SQ_@Jq1(IJGHsM5`Pya7!3$9+1uZ)eSvKFyQ&QT z^AG^mKZ|!c;@@CCc6=f&1{Lc|o$=Zg`WW zt&PXc!Xoec-cGGK#GJRAe_A0pJxhlnOsO9tO+_{mhrJ#aGVO}1g|w4sKwZ``>DZ6C!{7Ju3)MtlT_)YMB+gr)En11y@@z~!1o zDutsG`)G>ZY0Vs9c5w|fXdr{!b$JVbz6d-C)KwcwV9H7Nlu7SA?rE~sNPacJ#>~P3 z37){v9QXNc*#yjviq7ZBY(Pf0;0z?`hPXAhym6x8(a~2V;}G${lve~Wmp%3|Apxzo z;eSBvcf?R1Z{I*!#dNRgzntkOfJa9sUusWgLkxjr1B(K1^!UDpj@GefN7tR;SEKCe zUirq0^TgW;GjKB_LG|?XI38PrkG+X%T>8&jHp?m;FsLqg_g=uMRcA!6!RoU$d6M+hlAS;fpdKt%*?*V0 zyVx`5ZG{G1cav>YOpK9<33Psb{=oLR>&&$;(cfv&RVKD-zuOW2H9`n?WI{d=3lv$; z^~NXJkgN7ZW-d>jC7|%3UluP`@BKzDRT?YWU>dS_-MHrKk`L2>L7UB_1hb!3nQDRp z0NWa~Oo_ZSV71xUvNfmqIhyyg5>>U~u32A3HHeuTvb*mcuXL=nk_G| zP1ShqVI&r;|I_YRxJfyWIe)+m*}Dtg{8>VbX0pugmjmGOB+|c2a%5Z+|56MC6GaI+ z#R#09o5&wp2>|amM%rM%FNRo2xefviY;Uf(C67Y+`U=(J0^qZe*;2xx2-6Bj|CwjC zt?T(A=gg0X9&92owN4A?|&!*GxmvSUoYw3 z><e0fYjjE~3XcS-m;B8lzVZX9cn*)&Bf7ridr!Im6pXC_`UE zAyO$ECcrEa{3oE3Dt~uy^tW@9_(t1SzsgN0sIH-;uG5XPS{JP+f;Vy1%7^9pNu$aO z)>m)E5TnUQ&W~E4Zcc1FTAuD&$a38+sI`O#4KJhzzc0`7&@Fk;B-k>Yorn{Oti9SYo$57$YqK&v>#)$@kKV^g*I{8HOyFB}IFh3_8HSY(?SEy)l#m*_H({j1mkIs$6GcOh zxNp!&Q!=7*RpP62jTEYLukuyO7Gs?>;lK%;rkg`UGgPmCbEqPvMd@S@s~(xV2(qLN zKE4*IDxa?2?8BptopPNSycZQsxVKDaN%oSRcun58flO$PQ<2So?0XEQcV49a^ZK(X zqgFa$zkg%*-b@sYm-tPmKJ#_CA?^ttRxGv#wL6*TY?Z1d3zWxK zdI1T+nJZ$*kg?}l$l0;?3L>3$XpO{?b56nnbqZw$0(M7B{gsG?E2qELYWU5!3C4Z` zhJQv9)oy5odT7h^q5-jwG*j189H8LlrLyo(!1z+gylGy-c7GS0G#oASYxB$`LVjt~ zghD2y@wZbFd4rh>wL%htq~xYG8||DVdpUdw!w7<6tA69vLLH4va+B^C=p`!>1%fXU z>===i1%m~eo2)AfIPNWzeNL^Jzw%tIwtwfE=xr8Ij%TFP6%iHrd3DRm8Wf#!uhgj6 zs;aUgdXw2S`DNH-I*&yK^{cU=g=cA}UzTD3KxTjob9U=9d)x22)Yf5>P}WwKh@HdX zEz|cws(xq;a|1~DZHvBs{Yq-N^^?Tmirwn%MaL-@3X$ABY2N7mz8<1b;nF zh_4P8)axm$oOXVZ*v!_D94*=J48)POD6of<&(@C$MA|Mi^%6)ZA3FRjH(qSECqg0Q z!*$ni4wb4$=+7zKrAZlHb4>?wB69FTQ%`&$kf*(Q6S&{@iw#*KfplTIQoGi;KPGga z@8Xvz;Aa^d%a5Ui{tu1^bM=%*On>Qj<0+jg^-${L4L#h|F^>H)1hZ|f){BNCX@8Q< z@9oDXG$Cs4tk0{ApIQyg7fCSLlm6hRb(H*EVE##NPq5)xL3gwYb6%E?0>Dg~Y*C)1 z=a8nt$KOY!;2G z|F$xA(ZB(mn5 zE6;x1SL;o-j*{Sa(J?Uy;E7;U&9$2bE1v~f3NirU-QcBIAhlJge>cJnWkM32ZK4O! z-Jn^4f~)qGI}!H?zV0w{f|V`ODTdDZ{62roo%YPMdpI9t8(~V`@qc6kv--qZrK>U9 zm|Whjba=Zjpyc-hHajL6GCS$7wCJk7sE8?5s8qVnZ=;!9Lni}Ava-;#Er~I@=>%Yu z+4U$ncMd*2I#4(;$M;po$Czqj>6bVX^h@;Hw<))d6nbr7$WuOrC}gqa3(_Ejh~QdR zo`1ERC~5)&8CB(3D1RsDd7mhDZT^sU9VG;=>o=7su>Eo+sM^m{pbE}ME46BGDaMP8 z`BMH=X4Ss)UaGAsthT>&>{Mo5#cm=(5M^x7+VyAtv*hTrd*^x9?0P0W1vrlba21^y zkSj$nmyMlHxbmMyuv%^teL9{3AR>U@ zPWV5)$dFBU{e$aC&>&LjRLdA0FV$yUciITAG+cDuzj+s`4V$nS!i&zh;)X&@u=Nn8 zNJS|3svqB!#(#J497#pAPTg#vfm6q_>l=SQr?XqH^Lx~zyXWtTq#oG`Tn{;(1{DK& zr41=b@PR?@i?e}oLrK`ch`jzKC^&nkadC08>na@-sug1zK!8bk6UuzduUHOI(o!13 zaT%lEs)G%9?0p>?L5j-g&W>%-=_us{8?BLILZNy;Zh!RGyNBbs`eIvNNJrcb9>QgJ z+!;H49QPeDk|{adLluaDJ#N=5y+vC|nm(?I1=k7mu@prVeFswvSz4APBFs6 zRScjoRe$603gelg7j>MW+Z`gQM2S7bP4ApTLd`j8S>}^8>gU?%DfTgVo z4FTaJX5)t^oqT)O%fr#K#FBV3hLrM_9O*)<0U#RR&3!_ciPC%P<(_u$aB}ua{x1ZMCB>>$7Nyn!8SdNUMM}Dd6d|1s+EZ(mfMwDs z`G&-0!HbSAPG084Vfpuv*^;A67?4BtQK}vy20?#JOic0b1M0oZf;4GxM{AW%^2oFf zq0gf>a!S~!e6cm7`j)q6rRhkrB;!Qd=w=mf{pQ?3H(j;6T?W1V*>YO_=H*ZR6>p#8 z#tmnjptlCw5 z1lfPb0K0AdCU}|Gxv71*b=$l8)~WM4{(3p1_?rc`(x0~mjF#P5lDcKx&ewdy91pKt z9mC|s8cF~~nXsfaWg@mZmzkTd`W3^flHCLF9~Q8@jTqj5Q9mcFs;>e^@595Xs8iYY zTQ1dB^PQVqzExW|)98g@s)c#Jns#OM@szDBNuKde5tCUeXcSbnxSE%C6$$ z#n6@ejz25kEr8lj(?&szQB_?lez$CWa&?sS=!%pZuIb>1-5kgaM*grceZFu+b-RBa z(-a87XU|1NpeOi1Q$!{LVxLk92Of_&KwX0gj*>uY91W%F#X}(;rl2Gp29upZ(|rUe z=;*xxJJ2XA*u_R(OAjC^K+U1@4&D7l2rSUB20Z*J#cR*#KqZxSNQH zv8`~md}F)3axp&m&E-RMBPgiz!T)K6+UNE-U~@Q7xwxo`2)fJFKCR1I56b7U{2^LI zZ1U#~y?`iV+1~}p+rNJe8dV_m zBd-Z5X*zi_oB1k^9_kgLFS`FTPPL@{sM74$FRyQ5hg(kFl{A)F16hk1`<6Q(|DSfQ zJF2PeONXLVDT)S_rULqqCPjKEPgJBmRGJ1NU3wD;y(l1EL_legDn){H1R+Q<6zO8X z009DoB7|xZNSVYpYt5`#^P7KJ^XIJf_TP8kyYD&s?DL(ozrAe+B}W@8xgxhA$nB-t zr^J<0?Tibpvk0%+D;a*0rwIIF7uSvGzNL(%XTzWlj_0 z@daIlz&t}kU4j^AM9O~{QiX+HMH=5r zjirMNt|SBhoF_I-5ZjJog`Kmcyt^}XMJkrd>RR5Mx);M(r9At zsD$VLd3ETW44l}DLPmf1p2H&o)By8+3BH=YG6d#!R|YV$8j+iV-`xj&7Ogntgw>u> zv?0d;#JNi@wYVJFl3|s!h{gI_=^|FAveZ#FtU{sY!-R?rM!vwz^EVnh&S0GkG}M-S zjN)dIPhM`>x1ZnRZI4P)0Y4Mj6o4D0VU4pPQAiOWbZA9(h8BN2neGyRtwwPr!o}1C#uY|3rJ;E4S#Yr zV%GzEV6F_ew~lhMiMlMpKXvr&?CPNcpmQj)73kh(iS13WU9|!dyiW4Vs2k;6yT)y; zmzRhF;HZ8ob*5cy@8M4m@D*U&ut6T zu-AD6;+-grLNmdR(2#d${3b0J2y=wmZSfvq)k%1WzFEueSg$~uTvXLjPiaLPzFXep zrO9_V7~E*!d#wbF78S5fqESkXeQbhhnUt$LyM}*glJb9qiXP8PMNa~aB-_#6Y=P|& z7eCSPUi^KyXgqD(qc<=~e_ogtB19u03Su^xRp!EkXe(N$?!DZIeVA70PEwP$k-NNV zVbC-;8lx)~%8fD{zj4E$cYRuaz6l)_Ud$YK0S$_z`p+Xxg}X(m*%`!b-{^4dhdjR5 zV@0(CxZQtMWRVoe&#vhm31T&G^1{qo=@cnfPWL<{zOc=7UYm+*e9gx^LbgAfRecWm z20J?yaG(Z`++f{0A}eSr*Rg5`?~2d)O#6`$Ffg+X+w~cuqEJVq3Uw9lZ)wiyl%9e7UwY3ydkMQ^|OBgsN`-_RgNZS`5toivd^h630 z-zI;=D`FLMb?ymsGln~ikS;;ok&8wayw+*B>(K7Ycm9hKd4E5N_zmLG?LF5bP+VMB z`Cwv+O8(`|5;QAeSVFg%{5ijqP5ZB4sh1m^aN1u^JfPn)BfTh1{9}=vsgSzYfr=?Lv}XtDVNd)NJch63e$fk zw?HH5na>{|zrnWpV%DP)e8%3ZQKGPHnE-hWcw>r#1`IT$gJRMO?!W(?|Od$3`CzFB$rTTSv}97Lpk4{-xG!!VKWvz1#{?8}`;J zxSUpe&bNOr3TO+6i(3j;-oAhRDs9DYFZkv=PUgHC39BiT#JT_-X8ney7gaIU<4vBc z0bic_Gw5#J^4wNK9cx!CT+)9AYN0hh+e#K1^Cq+B1&{wFWju!n2~q(e?#wS=a!EG{ z!YXSViLq|a5vqHEv_OvQ9>TXIS-`&fKZ%53%n{c+TZX4>S3HQW$>B;^J)lC z=|rD4QK0}@$VGLidNCAeH|@tXm?OjsMe@uiL0Dx!vO;(Cb)Mw+X48M*T#P+%R>Gx0 zZFk`A6B$_NBns9w)$f~}4^FV;35@rwk#dDwv*hLSK{wE>7H})(!IvB+!n_C93E?DY zm4O`llCc(T$oqIfn4jOPD;IMde1QSQ3U89>Cr3wxvvxUUqe|6VAvtB{WKVIsw(0bh zI?0u2wr5uD4=hGFFI0c!E54~P9|@ZKqsjs0rFm(NxPdJ?^i)u|c!QAWUxXibSp3lp z6Yz!}U0san@U7hpQ{H_E=eRJKn$cX4dCGp`d;J3Ks-^LB)aHxHZfz}}8$WA#l2oX< z**)Ij@_Z`fUxtf)35s;L%R0zAH5fWSU;hygcB&4VzGeb)eLpchSp($G%1?M_&z;JyB&J zj;K5QPHF}pP`XwP}x9g?xpH#eV|!AI=S45CpngAV`!sm12F zl(|!lm5YCqAIn8j1B5 z&8%Q3l(Ro0L(W>byZB14a?;>y8cD^=vhS@!&)kB%`Gg4_Q~hGQ^(7Vv`6-s4LA6+)9xyK%-($piQu&^@FwU1l0m)!+Cd=g3njkvSZP0 z+eLr%s=I!`!|yPCQmHI>G>E4rE8BjyOi`8GrQp%AFT|tSEZ`lS+c}BI>gqEcUeLhU zp8HZ!K+8cD^eUPLEeuqB*_qM~!Zy}uC%hBIe;$}*zMNV*+HUlSY{dBh!y2=D@^u+m z*XO6;wg!Ub=L`pV5g64(mHs5!Z&AS&a_oN)lF>C*+?m65d3&n3j&d}h!Y(G!b%YNg zu!hK4#mGe-yIsl(B1Q|uJo1}E7hZS^&cdI~d`w62SncDfqS?5`wQy#-Be|Ho`{0CD z`xN5%hsSy7%A5XmS_kN3zM(8r#4p811h0=|5^!YUR+@CLH#v@6JAvU%PG!!$-v57V z-#B-PSKxqUb@W0oZ5Dr=x(0I`Cxp*eRz)GmhNSK_cStUnmUuO)J@j(qD*a#V{0|yk zb|OW#x?~-MOrf(-oW}B=R|^w#TX#Mm&)Pu?pVz`Ob?ly=Pt{mTYlDzZ&!5M<&<@-B z=(0-$`==xi$petCn36XwA%p4Z{EUAf6<{M6cg-od;(lehS9M1XpuB~@_jBEnXW4ya zcxAs-rlaYsTWn0ZwXlY!bQK)mZb@y&iF}+ZP8)EW)YE03cx66a_D4?;;wl6SZ*x3N zyrnG#Bh2Cl5cuGK0mDbu7THtQY`VS%hI7JrF>?X4J0Nim$`qmIYI+_ z;ZQXh=xJ!h`;(aWF#arw=G;M!oqp2+9Ad}VuiZF%V10E1o`DYDHzTRTs10E6BOdEx z9e#~ubbHuhm~zV}M3IZ$)Gx3|nrp=>{bGGgobPz3xuK_F5LtDZ7 zI!wcIUdv<3H!1R#Q)XI)6cK;zm4VdRr~-HVB>NpSx2;pRR0{Z`_%>8hxOAS+fr7a$ z+;^$1Cw3$7Kk9M#L8OXTRxQC+9EK<}1x4&g?CvxI2M|ZF?L3ymC}EbwIk5s(a|+^ zbxs?U^>~TC3@p3!ncju1+bh}l!SR$&XIg%#S5|(on1mjL7-sdIoIH=YVn`X2`t|rg zN?t9mSgKK_sx0NZB%n^bLfw%mV?!-9EF~?B_4Vu5GX)PUGjE@8@WXuTVXHjev*#E9 zFYBk-0HH@{C-YXPew2TR&?^a3Og6zBr+7eabYDJn(>hSkkt8fvdmp1x@lL17bM2iP zb4+;}mew*=m7~Qt9ZyJRSX)~(g2*+W^)O15a(ie++;B8DMmjixc2p@@5^k9D8v?|) zJ3STCiHy`9Sf(FO7@o#tJTZ#F@S>a2`yF2lIWM%z-aKb?wyS@{;KnPV&6%<{<w!^et9= z=&`}67o~Rt^2@%LxC0rK`~I2xDc*1n(2XfJq<_sp^E64w( zT%oAP#!mrK=VpH~&#LaX#4h`3yQ`)9@#<*dpHm;~{+zLE@C?)09q}Jevm3{}xG&m@Leq2wJTmZz{HUL@qo7T*tbkQfQ4wuY2n+hOY0 zMnVq9vln@o03RHXJRY;H%5){kEq*LeZ#<}eTKtCrgGYaHp&=klPn@QCnIb5u1-d~0 zSO(Q*ipT1=>0{$<_>QBkmZz`1-tSYi4Zvxf z!m$6(R$0xFr)93E@fvTb!8Uy(X}=kAzf%DpJmvp@y%A%d4;BHVs-Yv3>Z!ir&fj*b zQgwwf4`6Rf!f#31&ddhkCbqXf0L173YcxQM-{yb2@q|E@Q^N1Oz$u1-+}(U}cI@b; zV*oR$O#38%N5>n0^3@`^eJVBOsd`P5XA=Ec>A{nF?DTaeMOVsl;-CklGS?!oEbbNZJ35>%0swH#)&PhSp5 z6($h|M_+HG8Q#AOQe1DjF?sY=d`ClJ?M#0_ZW%7vE+FM_<0#_&HT^2C;++cGq@NAS zAxSxR$fTlcPm>qWB_-S~Z=WzipnNzdmwAT{AjFb~2$V#r`WAcoIKVe9!bak|RUTwz zmixa~Qm-)}k+&5UHBvx|25QJnN3+XAV(j+r6K-FA=Mb7S#3d|7_U2W2IAisCvATbJ z0G*%LDtQ}z^A}_71O* z0_)2&oKHsdqZUWv+4NSE7E7ow@bC%(bh@lTmTuS-cTq6_Th3GEcmRQ$CDV;bx(a1v@jVE}why zSj+v3rUPoJZcl78c1a5^&VlE`onQK;qVLS4RPMRbz3Xv~B;Dr#_G4wLF81UR(CI1z!6GqYw|j^$)~ECx%nZmdMsHIl8=lqAq_-kUb?6LJzWg zJp{^j7lCx!ZS6_OoiwY9Igq3XH~Av*ze>L{7&hL^swTu1PxM0XVJcQQz`rw{W{&q6Sq{N-=W=$Tiem?r$S!}U0O_%>wIv1uEasc% z@>e)JU!`ifb##Me*+%xdq^6wFzrwZiei=wOUChzSQc5@z<(e}ZARHbZ-sfCT4+Y!d zq7(|{_PdGIjg6}5Qx@j!Jlx!me0)9>y?TtkKEAg9%JyTE=bsZw+}zx65eQLTzWZN! z^lm63Yh4mn4BCG`w>=eO4{fb%x~*&#SkHtozbuxiIe8doXB2FEptCZGP93heeWUu{ zvrtto|K}nT>fA?xG2%wOJ zM^Q*rI#QAlAQA|sU<8pW0*Z<#7K&oyDZPt8P?RPrqEe&@f+ErdLHYy&^PHJA@9WG5 zcRpm@b^m+cb572>=iHmUf6|9N@n>UA)_i)CNB!f4#}JJf6ag`aJLPlt-V zQM?t-TKGQh)_3@0NV5ogYgVoJR31V(`(E70U{qX4Jlxckvl1k`>pyeSdwqCYYyZ zj(NVc+R7lQv#;n@V6Jvv9;Jv<^oDk4yg6}| zZLwPZ3wW{lhWW>kIm(3Zj^JzI(eh4LOEn*8KHvjfb!*@o2URyE%Tfyd913w+DKI9F z+j3rBFmmQ7MJ*zx(p+^r6o00Sos+sFtE5KVw(vK7F#ZXK7tL*AkI*U%1S|4W5z5;+ zafjwISc27VzwjCR&5IP)QT8=i`o^QjFACJI+dYhtiv{Dyt}dZNqv{H2H9y}ceU_7K z;m_(1S?p=f0{Ko~IcU0fhrkC8J>bG9r$8k}uFR+7lY-Pr%xIYSK7Yz}ERlvjHyaJ+ zyjM(k$M7pgiAIM7Q1kk(NB7IN`OK=-9x6PuR*rlTcG+VMiBi`Q$jE4mr;N9rvM4vi zit+#0>XkCqvTzS`hNW^)UWrr2cea?jp^?Y2;AqC!pFxq|_HH$lawwYC(rqdb6Hloe zn!5if8IOfk_vi29fPYo`cbprB&qQLt<83{;a|_BmvJutGGE(d=yuD*(tp?+FUgqQp zhpZfO>5 zS}!`Z7nu?Ky70nV`eb5zf7z`}YX_P9R>ji?1%)w{f)At!nzg+y3sDapGTp9>0cA{+ zXXfSx2OIGD53$-`gkLo|cU?}(!-w?e13N?ek@oUV@Fyld>hM3G6hHPwX1eFCa1z>j zHPG!|jY4hn*?%Cd){3tu`=-#j?x(IXd2XI|-^Q~2sTq8iZU`Wy9MkML_Gm!V9jwKb zfBKW75MTLDXygT9R;1oF1529R;I)OK5tm9z$MV7aANa(}NrmMzW6qB{MI3Ir`2?j6 zO-eWS*IiJOU+D(jIkO+LZ*jY=K#r{414Z@7eXclPzJHcF8To~h><<=`E*pFser0>k zzZ|E%=~0m5AfwG4l>#fFM?Hm~g|E$v`tg;n=7h7L*?CF%Z#s9=-qaoOW{ke?c+l?U zO2PXf?eW`>JRsh~@2}}uHlDNiuCnZwzEoRcJ*7LmMGm$GTFKoe4h+^Vo+=tnJN;-n?2R-jA_BF{$UzGy4SGEC?D%SxOQHdMAciXfecntz#SwM^5Fx7bk}; zj%5T7j;CsMD_0NJaNSPWZKHpP5uCG~%wrl@!B;DFf92wGi>{2Sq0-{m_qr>cqM998 zd|6n&dWWK~bOcO@W~#P&G9?Hg?I82$q{f0~kJ{TGS-y6g(+W+yMhq2vdHv$) zmVfirdj%Kvc!#INK?;Nmw|6|OjxbdD@-~_Wy41cDU3TPB7LKp=$x6?>yzy#J44C%S z%GVsW8D4T7eKxOJ6Skc25fvq1GS@rTs5yXKfj(;pHS_!N%JB^{)_E{sFvF&BlG{Wm z-*gM#zFvyouL)EFTQ|kLe(!(9`xI_z*MH=LmBXQA5J2|b*oewZzx2>VfPqP?!zlja zJ?HwD2|DhtQYLOsoV}s-B37;`&K4eH_*yB4dE{8dsk}f)O2QYLprv-2Pg833$#`Z| zy*s9ZQ!fh%uNfQvjvAz;qJ9_$t=|XV?9DPt^_K`jOczZ^JMuT@=iPObRof;qY=7~# z)hZND_85&Vu4{umg+~A~l5GUjj;eJ>P(yUM1`HX{nwK`nX z_^GU@a*<+|7k@-B2hy$E3A%zB9;QB9Wu{}iGpC)5LbgU$($4Lk z%@);QdiJ$M5{x*|iOE<|F9S{gC<28;`)QB7=)ElYyvL$_h>>Nt%{TqWXZz*sf~CtN zyI7iKj%%clyirb$QyP>@y)>e#i&GptQQM%5)k#SZpV(YfNUiEhS1nhVl7DeL9ari% zrNYK1&-J_KU~pA9o1&l-17j#SAR3En?3uguel8R{yHJ|`KaZsNw3b-6BM z*t89vUH#sVck9;?1sSm0J%2M5!Q}zOiQ{RlpS5L^nZeiRGN>pA=iK# z4@-b~o!1;5{PB54EU=)V;DivMT>Gy5FiWA=@oiL20WQc=pGx*>HpwkmBRcnowoLroo&S}U0UQ2)|C;iSCM zZ$~B4SowLrUVrD7N?UK3CqWLhmlkn~pA!?~gumE87Q}SuhhN;k%;D}NaZ+em#hBty zFG{3hO4o$T`fe-wtw*hNbM4#0Ts}VZshuycem}#zr&~|*=R<;Bjo=RmVvxa!GHD;8A zgwd4;mV@IuFPB?YiLGJ=(KcJQwCBfnRgzmz_DxP4&HWWTpp>eG)C)l=ID0*6rO3sy zwiCLh9Nv^(Qs$5f(d|ZKWH+}o?Giv8h_@op_|{^`vxN3sr-7WEDCj!c&^`QBeU$Oy zu|LboD1VPPfQ3MD`az8v@nWfaq#K^=zR!2pt224wQX}fIvJKR~Y}|;79Q!d7b$04if3+ z4Qz+)YYqg27lrDFqXTdO0b~*ZM<-GIwE{f75Kp@mEuJr69HH%$)9dbjy$@dWxFCQNQa0tB!%JcN%HqbQkVc;ID`q+hk)6i4_A>% zY%OR*%MRqpAP}hlQ%?$>sE9@Xp-3j-sW|EhMSV>O#CbL>m@VJ7A-5+|Y3vpP*g6fU zCVx!WB+}sk`~05O^GsX-0<|_+=)VR`TLTKWg+dT87y`yVgt7ZyJzKfFF<}4np-^op z6!Lm2EdT1TBI>YCn_*T0+d*x^!J0_Nu}2#B_m_zs43+z}Y1V5$%isG1@`u;4ee~9S ztgR7fB9#wlOTm_l{U^r29FeKUQ16xKiv|&9zo~tBlzbf>9Zps{)%AfPov}f3B-*EFi)I;jvfxK;YBdO zYv^k0>TBS1pfC-%fj$9lK!kgF>ENE&?H}8i6znLrSZ{;{j%H7yk?>?9CXh%CSZ0&Mty diff --git a/doc/pub/BM/pdf/BM-minted.pdf b/doc/pub/BM/pdf/BM-minted.pdf index 6187f8a5a15b06f4050d54c24340f0ed4483c2a3..1c3180f86f979890f3a4d7c33131d1abd5f3c000 100644 GIT binary patch delta 246193 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%0AF4yW-vePm76Wf|_W;80u5HaJcEh5}AW)e}xn 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

          54A)`r-Y03>u$UJxyY@{`1=x*G@hgI0RZweTQc z-e5wk9~RPuE}&58)niW4A+U-+HGj>Iq@qPDYIQusHXUbd9%Lngz1RP!UKCIn*e^%a z@9sbB0*kwqOx%uapxh+mN)7JHxlH1bFCrS~W5xZIc;7{o2P@k*9~|W51%5l0kN%=y z>OOb@1lKxYf{9g7CkA*SSf|S!NjrK|ttxf6DA2rvqnAO7Rm>3SA5e8i^wp8m8uUER zInj`I0V^j}C=h$!^Qf#p^H@nxfu?_waH8^dN5p}F(`h@(t44NTXza)hWQVR;N&%$; zLK4#@fQO$WU6iH`-$X3m@d1((=#`VkD$Er$N^Kb1(1`3NO|vw0d%RWaTEpvYfE5P= zZe7MVn*HFXiY?NH^;YeEetWbKg~E~{SUKVm)JM+FvJsBO0V0R(9xhjFy`a{*z+}B; zORsmSadU(<%_Bt^j9ARc4a)c6=d=yrV!38*yo$j`;Udg5tZt);NidpRBbh_4R)hFx z`7k%Ws7s`oEqshDjNegbS)Bq#`VnsmNva!7rgH#Y*7+stPcvyvs^9c;=0!jDxHcfT zgh)#1e&ZULjLIn$!Br6_3^)**#1;k?V6mgu>{{qr@vFZeM;ooseQrvn$;(p#a~u>I zwTB>6Bju;huzJQ}rwN(Jg$r1I9^}rcQ;Y{CIvJBR^2l0>E!uNUn1GSsM309dSB&R@ z*U{tAH(M#g<20&-4LkRpSP#%p_lq}nL)u5MXfG7X1|wefA19 zy5AF~yR1yN1dJzZ~1qit~oD$oPac7wa{v-{^j#OXwQ9$R2L~f!<>` z4UygXfEG69su+UgMQLxJiMPysU;7Hfr&?WZI1S#lKuPr(Pu#x}4qqt-C}$LPq^K%p z>(UArgT3k=!;llzYF$$a;c{rfp`MgEy=2=fNQ;d~gM@_>O06AnJ4QG96IXN6I$I2F zy>;rA>WY*lN?T5Sv}bHoA*PTkK&qyTSgoHb(Eeh9+c~X|2vki~s7?paVsyla*>1jf ziwqCeELA?7Cn6>f1qXu;WGbq5uCZWKJ6p{@lN@sdly4w@F*`qjyJz$w&bM#WwO{v9 z(Om68{H@-#0Ht4Pdi0f1N#RY4{j*YkSk%38K}9M@vXCDB`;-UgBL+j?DyDh$g7oXJ zBEz!oot`d3HRKp-_3KSl>cWh;0q97O7STrP2W-)QQvAf^H~~~|4T)V!KY%32ZvV-| z+43%MJvEzkvKS{G4}RE`s*NO`6Fnj7V3XhBve4!D`(k0dQHwYFP!#}&kV-llnaX(N zt4JPu=6`g@1Om-@oiDJofF{S%m4}Ucyzo(HXvNFS%OT{@FL_L*2VIp*3aXf^rI?cv zzl_i*?sH-HoeDH_!Xd^q7qx1qol0_MP4%Y%yo%>lfHeQUN1RR#FAE?Bv>tI;M=01k zWL@J!_Ueo4tBFoiIq~NeY3i)c!?AKO*3>1bF%&tP z>0i-TU4hYJ4G5^Kv+%nG<<7}{wc1qXh3!Mefyy*!C~TH3oz1H5JC@d-wzRHHJcCug z?;3;T&rek4RliU8Up6>)XG�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 xcAqRL_5T3Y{~Kn(K?th`PF$R^ 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 PXHd^`azK0z5@dnbz+G5*IoXY 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 Y&C|u)0*;fLi