This is a Python implementation of neural network quantum state introduced in the paper "Solving the quantum many-body problem with artificial neural networks".
On a 4 sites chain, the variational energy can be calculated analytically. Here is the comparison of the exact results with variational Monte Carlo results.
Optimize the sigle parameter Jastrow wave function
$$ \psi(\vec{s}, a, b ,W) = e^{ \sum_{i=1} a_i s^z_i } \prod_{i=1}^M 2\cosh{(\sum_{j=1}^N W_{ij}s^z_j + b_i)} $$
All the parameters in the wave function are complex numbers.
Optimize the Restricted Boltzman Machine wave function
In the modified natural gradient descent method, the Fubini-study
metric, which is the complex-valued form of Fisher information, is used to measure the "distance" between wave functions |ψ〉 and |φ〉. NGD can greatly improve the convengence speed as shown below.