Convergence and Initialization
Running a VQE loop is easy. Making it converge reliably to the ground state is harder. This lesson maps out the most common failure modes and the diagnostics used to detect them.
What convergence means in VQE
Each VQE iteration produces one number: the energy expectation value . The classical optimizer updates to reduce . Convergence means the sequence reaches a plateau near the true ground energy .
A run is considered converged when:
- The energy change between consecutive iterations falls below a threshold , and
- That plateau is consistent across independent restarts (verifying it is a global minimum, not a local one).
The variational principle guarantees at every step, so you always know which direction is "better" — but not whether you have reached the bottom.
Local minima
The energy landscape is a function of potentially many continuous parameters. For a -layer ansatz on qubits with standard building blocks, the parameter space has dimension . This landscape is generally non-convex: gradient descent can stall in a local minimum where but .
Barren plateaus and their effect on convergence
Recall from the previous lesson on barren plateaus: when the gradient variance satisfies
for constants and , the gradient is exponentially small in the number of qubits . In that regime gradient-based optimizers stall immediately — the loss surface looks flat even far from the minimum. This is the most common cause of apparent premature convergence: the energy stops changing not because you found the ground state, but because the optimizer cannot read the landscape.
Diagnostics:
- Compute the gradient norm at the starting point. If it is already below for a non-trivial , a barren plateau is likely.
- Try a gradient-free method (COBYLA, Nelder-Mead, SPSA) — these are more tolerant of flat landscapes.
Initialization strategies
The starting point has an outsized effect on both the quality of convergence and the risk of barren plateaus.
Random initialization
Drawing each parameter uniformly from is the default and works well for shallow circuits. For deep circuits it tends to land in a barren plateau because random unitaries concentrate near the center of the unitary group.
Identity initialization (gradient-free warm start)
Set all parameters to zero, so the ansatz begins as the identity (or close to it). Near the identity the first-order landscape is often well-conditioned, and the optimizer can take meaningful steps. This is sometimes called a "near-zero initialization."
For the standard building block, , so the entire circuit starts as the identity and the initial energy equals — the expectation of in the all-zeros state. Starting from the identity avoids the worst barren plateau traps for shallow ansätze.
Layer-by-layer training
Optimize layer 0 of the ansatz first (fixing deeper layers to the identity), then fix layer 0 and optimize layer 1, and so on. Each sub-problem is lower-dimensional and better conditioned. This sequential strategy is sometimes called "greedy layer training."
Reading convergence plots
A convergence plot shows versus iteration . Common patterns and their diagnoses:
| Pattern | Likely cause | |---|---| | Energy drops sharply then flattens near | Healthy convergence | | Energy barely moves from the start | Barren plateau or wrong ansatz | | Energy oscillates without settling | Learning rate too high; switch to a lower rate or an adaptive optimizer | | Energy converges to a value clearly above | Trapped in a local minimum; restart with a different | | Energy decreases but very slowly | Gradient is small; try a gradient-free method or increase ansatz expressibility |
Shot noise and finite-sample effects
On a real device (and in noisy simulation), is estimated from a finite number of measurement shots. The statistical uncertainty in each energy estimate is
where is the standard deviation of in the current state. For the optimizer to detect a real gradient, you need , which requires
When gradients are small (near a barren plateau) the required shot count grows quadratically, making gradient-based VQE impractical.
Putting it together: a convergence checklist
Before declaring a VQE run converged, work through the following:
- Check the final energy against a known bound. For small molecules or spin models, classical exact diagonalization provides the true . The gap is the variational error.
- Run multiple restarts. If the lowest energy across restarts is stable to within chemical accuracy ( hartree), the result is trustworthy.
- Inspect the gradient norm. A gradient norm near zero at the final confirms a stationary point (local or global).
- Verify ansatz expressibility. If even the best restart yields , the ansatz may be unable to represent the ground state. Add more layers or choose a more problem-adapted circuit.
- Account for shot noise. Report where is estimated from the final shot statistics.
Convergence in VQE is never automatic — it requires understanding the optimizer, the ansatz, and the hardware noise model together. The tools in this checklist give you a principled way to move from "it stopped changing" to "it found the ground state."
Sign in on the full site to ask questions and join the discussion.