跳转至

神经网络量子态笔记

这组笔记围绕教学版 NNQS 程序展开,目标是把物理问题、神经网络表示、VMC 训练和工程验证放在同一条线上理解。

阅读路线

建议按下面的顺序读:

  1. 从薛定谔方程到 NNQS:先建立物理图像,理解为什么要用神经网络表示波函数。
  2. 模型结构:看清 \( \log |\psi_\theta(x)| \)、相位和复波函数输出的关系。
  3. VMC 训练:理解 local energy、能量估计和梯度代理。
  4. Transformer 笔记总览:补足 decoder-only Transformer、自注意力和 mask 的基础。
  5. 代码导读:沿一次训练调用顺序,把公式落回代码模块。
  6. 公式速查:调试时快速查变量、shape 和公式。
  7. 正确性验证:改动代码后按清单做 smoke test。

主线图

薛定谔方程
  -> Hamiltonian 本征值问题
  -> occupation bitstring basis
  -> 神经网络波函数 psi_theta(x)
  -> 按 |psi_theta|^2 采样
  -> local energy 估计能量
  -> VMC 梯度更新参数

代码地图

config.py
  YAML -> TutorialConfig

state.py
  bitstring <-> pair token
  electron conservation mask

models.py
  AmplitudeTransformer -> log_amp
  PhaseMLP -> phase
  NeuralQuantumState -> psi

sampling.py
  autoregressive sample -> unique_states/counts/psi_values

hamiltonian.py
  ExactHamiltonian / CppHamiltonian -> local_energy

trainer.py
  sample -> local_energy -> loss_proxy -> optimizer.step

checkpoint.py
  save/load training state

cli/train.py
  command line entry

最短心智模型

NNQS 做的事情可以压缩成一句话:

\[ x \xrightarrow{\text{model}} \psi_\theta(x), \qquad p_\theta(x) \propto |\psi_\theta(x)|^2, \qquad E_\theta = \mathbb{E}_{x \sim p_\theta} [E_{\rm loc}(x)] . \]

训练循环就是:

抽样本 -> 算局域能 -> 估计平均能量 -> 构造梯度代理 -> 更新网络