Neural-netowrk operator

A machine learning version of Matrix Product Operator

Roger Luo

(Deep) Neural-network Quantum Operator

Why we need a (D)NQO?

  • Currently, the cost of sampling to gain desire gradient and energy information is costy because of large sampling space.
  • We cannot write a neural-network quantum state in the form of tensor networks for sampling
  • There is no need to sampling an energy in the whole space: Our state is represented in the form of NQS.
  • Deep is better than wider. Larger gradient while training.

A (D)NQO based algorithm proposal: Use a neural-network to approximate a Hamiltonian H(W, Θ), where W is a NQS parameter, which is a one-to-one map between parameter space and state space, Θ is the parameter for Hamiltonian network.

  1. Generate Data Random generate W to get a random neural-network quantum state: |Ψ(W)⟩
  2. Train NQO(Neural-network quantum operator) network
    1. Generate A Data Set Label all the NQS parameter Wi with its energy Ei, gradient E and etc. by metropolis sampling
    2. Data Set A labeled data set (W, E), where E is the energy sampled from Hamiltonian H


  1. Abundant neural nets can be choosen for the task
  2. Possible candidates like DBM and GAN could reduce the error costed by noise
  3. A NQO can be used for different task in the framework of NQS with a single network for tasks (in science case, its a RBM)
  4. High degree of parallelism in sampling

(Proabably we will toatally abandon the language of tensor nets under the framework of NQS)

Train a NQS with (D)NQO

  1. Generate an initial (D)NQO NQO(W, Θ) with a large data set to minimize ||NQO(Wi, Θ)−⟨Ψ(Wi)|H|Ψ(Wi)⟩||, where W is randomly generated by a uniform distribution and the corresponding energy is generated by a metropolis sampling Ψ(Wi)|H|Ψ(Wi)⟩
  1. Move state Evolute NQS parameters W to minimize $||-\frac{d|\Psi(s, W)\rangle}{d(it)} - H |\Psi(s, W)||$ (Science algorithm)
  1. Expand dataset the agent should observe its environment while learning, which means we should update our NQO while training, a possible strategy:
    • randomly insert p training steps with sampling in training schedule
    • move according the schedule, and memorize sampling result in the data pool
    • after k steps, randomly pick a mini-batch from the data pool to renew the NQO network
  1. goto 2


  • make use of all the sampling results
  • other advantage mentioned in NQO part