想象你正站在一片浓雾笼罩的大山上,脚下是湿滑的草坡,谷底很宁静、很低,但你完全看不见它。你要下山,只能靠一种古老的方法:往左边迈一小步,感觉一下;再往右边迈一小步,感觉一下——哪边更“沉”,你就往哪边走。这片浓雾里的山,就是量子机器学习里的“损失函数”;你的双脚,就是我们用来试探方向的“参数”。而判断脚下哪边更低的那套科学,就是量子梯度计算。 在量子机器学习中,我们训练的不是普通神经网络,而是一台“量子电梯”:参数化量子线路。线路里的每个旋转门都有一个可调角度,就像山路上的一个个节点,你需要把每个角度调到合适的位置,让测量结果对应的损失值一路下降。可量子世界天生模糊——每次测量都在掷骰子,得到的答案带着随机的噪声。怎么在这种模糊世界里判断“哪边更低”?本文就是一份雾中下山的指南:我们会学会最优雅的“参数移位法则”(左右各移一小步、用解析公式算坡度),也学会简单粗暴的“有限差分”(用极小步长量斜率),还会见识到更聪明的“自然梯度”(不仅看坡度,还感受脚下的地形曲率),以及为什么有时梯度会彻底失灵——梯度方差、测量开销、噪声陷阱,还有让你提前预判谷底的“二阶梯度”。读完它,你就拿到了在量子山野中稳步下山的完整地图。

岗位关联

量子梯度是所有参数化量子算法(VQE、QAOA、量子神经网络)训练的引擎。理解它,你才能真正懂得如何让量子模型“学得会、学得快、学得稳”。

目录
  1. 可视化演示
  2. 梯度计算基础:下山的指南针
  3. 参数移位法则:左右各踩一步
  4. 有限差分方法:一只脚原地微颤
  5. 自然梯度优化:感受脚下地形的智者
  6. 梯度方差分析:雾中仪器的抖动
  7. 测量开销管理:每一脚都消耗体力
  8. 噪声环境可靠性:暴风雨中的测坡术
  9. 二阶梯度策略:看坡度的变化率
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

演示变分量子电路(VQC)的参数化线路结构、量子-经典混合优化循环及损失景观上的梯度下降轨迹。

本节配有交互动效(进入视口后自动加载,约 3KB)。

参数化量子线路 Ry/Rz旋转门参数化,CNOT门产生纠缠 多层变分线路提升表达能力 测量期望值作为损失函数 |ψ(θ)⟩ = U(θ)|0⟩ VQC通过参数化量子门实现量子机器学习

梯度计算基础:下山的指南针

雾山上的旅人只需要回答一个问题:脚下哪边更低?为了回答它,他需要知道自己站在哪里(位置坐标),需要一套衡量“高低”的标准(海拔读数),还需要一个规则来决定下一步往哪走。量子机器学习里的这三件套,分别是参数化量子线路、损失函数和优化循环。

参数化量子线路 $U(\theta)$ 是一串带旋钮的量子门,每个旋钮就是一个参数 $\theta_i$,比如某个旋转门的转角。我们给线路一个输入量子态,经过这些旋转后测量某个可观测量,把测量结果的平均值定义为损失函数 $L(\theta)$。对于变分量子本征求解器(VQE),损失函数就是分子能量的期望值;对于量子分类器,损失函数就是预测错误率。优化的目标,是找到一组参数让 $L(\theta)$ 尽量小,这和经典机器学习中“用梯度下降更新权重”如出一辙:

所以,整座雾山探险的地基是一个问题:量子线路里的梯度到底怎么算?经典神经网络可以用反向传播,但量子线路的测量本身带有随机性,而且无法直接“读出”中间量子态。后面的每一节,都是不同风格的“试探脚感”的招式。

θt+1=θt−η∇θL(θt)\displaystyle \theta_{t+1} = \theta_t - \eta \nabla_\theta L(\theta_t)
这个式子说:新参数 = 旧参数 - 学习率 × 梯度。梯度的方向是“海拔上升最快”的方向,取负号,就是下山方向;$\eta$ 控制每步迈多大。
  1. 梯度向量$\nabla_\theta L(\theta_t)$ 是对所有参数求偏导组成的向量,每个分量 $\frac{\partial L}{\partial \theta_i}$ 都告诉我们“拧这个旋钮会让损失变大还是变小”。
    ∇θL(θt)=(∂L∂θ1,∂L∂θ2,⋯ ,∂L∂θd)\displaystyle \nabla_\theta L(\theta_t) = \left(\frac{\partial L}{\partial \theta_1}, \frac{\partial L}{\partial \theta_2}, \cdots, \frac{\partial L}{\partial \theta_d}\right)
  2. 学习率$\eta$ 是一个正的小常数,就像旅人迈步的幅度,太大容易跨过谷底,太小则半天走不到。
    0<η≪1\displaystyle 0 < \eta \ll 1
  3. 迭代更新用旧参数 $\theta_t$ 减去 $\eta$ 乘以梯度,得到新参数 $\theta_{t+1}$,循环执行这一步就是优化循环。
    θt+1=θt−η∇θL(θt)\displaystyle \theta_{t+1} = \theta_t - \eta \nabla_\theta L(\theta_t)

参数移位法则:左右各踩一步

雾山旅人最优雅的一招,是左右各踩一步,对比高度差。他不需要用极小的步子去逼近,而是大大方方地往左跨一步、往右跨一步,两脚的高度差除以跨步宽度,就得到坡度。更妙的是,只要跨步宽度选得恰当,这个坡度值是解析精确的,不是近似。

对于参数化量子线路中常见的一类旋转门(生成元只有两个本征值,如泡利旋转门 $e^{-i\alpha P/2}$),损失函数对参数 $\theta$ 的偏导满足参数移位法则:

当我们把移位量取为 $\alpha = \frac{\pi}{2}$,分母中的 $\sin\alpha = 1$,公式变得格外清爽:

这个法则的意义是把“不可微的量子测量”转化成了“两次可执行的量子线路实验”。旅人闭上眼睛,左脚踩上坡、右脚踩下坡,心里就有数了——这正是参数移位法则在量子训练中如此流行的原因。

∂L∂θ=12sin⁡α[L(θ+α)−L(θ−α)]\displaystyle \frac{\partial L}{\partial \theta} = \frac{1}{2\sin\alpha}\left[L(\theta+\alpha) - L(\theta-\alpha)\right]
∂L∂θ=12[L(θ+π2)−L(θ−π2)]\displaystyle \frac{\partial L}{\partial \theta} = \frac{1}{2}\left[L\left(\theta+\frac{\pi}{2}\right) - L\left(\theta-\frac{\pi}{2}\right)\right]
这段话的意思是:把参数往正负两个方向各平移 90 度,分别测量两次损失,两者之差再乘以二分之一,就得到了精确的梯度。你没看错——不是近似,是精确。
  1. 移位角度先把当前参数 $\theta$ 分别偏移 $+\frac{\pi}{2}$ 和 $-\frac{\pi}{2}$,也就是左右各跨半步(90 度)。
    θ+=θ+π2,θ−=θ−π2\displaystyle \theta^{+} = \theta + \frac{\pi}{2}, \quad \theta^{-} = \theta - \frac{\pi}{2}
  2. 两次评估在偏移后的参数下分别运行整条量子线路,测量得到两个损失值。
    L(θ+),L(θ−)\displaystyle L(\theta^{+}), \quad L(\theta^{-})
  3. 差分与归一两值相减得到高度差,乘以 $\frac{1}{2}$ 完成归一化,得到梯度。系数 $1/(2\sin\alpha)$ 保证结果是解析精确的。
    ∂L∂θ=12[L(θ+)−L(θ−)]\displaystyle \frac{\partial L}{\partial \theta} = \frac{1}{2}\left[L(\theta^{+}) - L(\theta^{-})\right]

有限差分方法:一只脚原地微颤

还有一种更朴素的试探方式:不跨大步,而是在当前点附近用极小的步长 $\epsilon$ 前脚后脚地颤,想象成旅人用脚尖在当前踩点附近轻轻蹭,通过微弱的脚感差异判断哪边更低。这就是有限差分法,也是经典数值计算中最直观的求导方式:

在量子世界,有限差分有一个致命弱点:每次测量 $L$ 都伴随采样噪声。若 $\epsilon$ 取得太小,两次测量的真实差值(量级约 $\epsilon$)会小于噪声抖动,梯度信号被噪声淹没;若 $\epsilon$ 取得太大,割线又偏离真实的切线。而参数移位法则使用 $\pi/2$ 这样“跨一大步”的移位量,天然避开了“小步长被噪声淹没”的两难。所以说,有限差分像在雾里用脚尖微颤,代价低但脚感飘忽;参数移位则是不怕雾大,直接跨步量坡。

∂L∂θ≈L(θ+ϵ)−L(θ−ϵ)2ϵ\displaystyle \frac{\partial L}{\partial \theta} \approx \frac{L(\theta+\epsilon) - L(\theta-\epsilon)}{2\epsilon}
这是一个近似公式:用很小很小的 $\epsilon$ 代替数学上“无穷小”,把切线斜率近似为割线斜率。$\epsilon$ 越小,近似越接近真实导数——但这是在理想无噪声的世界里。
  1. 微小步长$\epsilon$ 是一个远小于 1 的正数,决定探针的敏感度。
    ϵ≪1\displaystyle \epsilon \ll 1
  2. 两侧取值计算在 $\theta+\epsilon$ 和 $\theta-\epsilon$ 两处的损失值,二者相减得到高度差。
    ΔL=L(θ+ϵ)−L(θ−ϵ)\displaystyle \Delta L = L(\theta+\epsilon) - L(\theta-\epsilon)
  3. 归一化高度差除以 $2\epsilon$,得到单位距离上的变化率,即近似梯度。
    ΔL2ϵ\displaystyle \frac{\Delta L}{2\epsilon}

自然梯度优化:感受脚下地形的智者

前面的招式都只关注“哪边更低”,但老练的探险者会额外关注一个问题:同样的步子,踩在平地和踩在泥坑里,效果能一样吗?量子参数空间不是一张平坦的欧几里得地图,而是一片有着起伏褶皱的地形,同一个方向在某个区域可能轻松下滑,在另一区域却寸步难行。自然梯度正是这样一位智者:它读懂了地形本身,再决定怎么迈步。

自然梯度的核心,是引入量子态空间中的Fubini–Study 度量张量 $F(\theta)$,它刻画了参数变化会让量子态偏离多远。普通梯度下降直接沿 $\nabla L$ 方向走,自然梯度则用度量的逆矩阵 $F^{-1}$ 修正梯度方向:

其中度量张量的每个分量定义为:

自然梯度的代价也显而易见:构造 $F$ 需要对每对参数额外测量,一个 $d$ 参数线路需要约 $O(d^2)$ 次测量,当参数成百上千时,这个“地形勘察费”可能比省下的下山路程还要贵。所以自然梯度常用于参数较少、损失地形病态(各方向曲率差异大)的场景,比如一些 VQE 和小型量子神经网络。

θt+1=θt−η F−1(θt) ∇L(θt)\displaystyle \theta_{t+1} = \theta_t - \eta\, F^{-1}(\theta_t)\,\nabla L(\theta_t)
Fij=Re⁡[⟨∂iψ∣∂jψ⟩−⟨∂iψ∣ψ⟩⟨ψ∣∂jψ⟩]\displaystyle F_{ij} = \operatorname{Re}\left[\langle\partial_i\psi|\partial_j\psi\rangle - \langle\partial_i\psi|\psi\rangle\langle\psi|\partial_j\psi\rangle\right]
$F_{ij}$ 衡量的是:参数 $\theta_i$ 和 $\theta_j$ 各动一点点,量子态 $|\psi\rangle$ 在希尔伯特空间中被“带偏”了多少。矩阵 $F$ 越大,说明这片地形越“陡峭拥挤”,需要把步伐修正得更谨慎。
  1. 态对参数的偏导$|\partial_i\psi\rangle = \frac{\partial}{\partial\theta_i}|\psi\rangle$ 表示参数微小变化引起的量子态变化率,它是度量地形的基本原料。
    ∣∂iψ⟩=∂∣ψ(θ)⟩∂θi\displaystyle |\partial_i\psi\rangle = \frac{\partial |\psi(\theta)\rangle}{\partial \theta_i}
  2. 内积组合$\langle\partial_i\psi|\partial_j\psi\rangle$ 是变化率之间的内积,第二项是投影修正,两者相减后再取实部,得到参数空间的内在曲率。
    Fij=Re⁡[⟨∂iψ∣∂jψ⟩−⟨∂iψ∣ψ⟩⟨ψ∣∂jψ⟩]\displaystyle F_{ij} = \operatorname{Re}\left[\langle\partial_i\psi|\partial_j\psi\rangle - \langle\partial_i\psi|\psi\rangle\langle\psi|\partial_j\psi\rangle\right]
  3. 逆矩阵修正将 $F_{ij}$ 排成矩阵并求逆,再乘到梯度前,就得到了“在地形感知下”的更新方向。
    ∇~L=F−1 ∇L\displaystyle \tilde{\nabla}L = F^{-1}\,\nabla L

梯度方差分析:雾中仪器的抖动

就算你选好了下山方向,另一个麻烦也会悄悄出现:测量仪器在雾中不停抖动。量子测量本质上是一次次掷骰子,测得的损失值本身是随机变量。梯度方差描述的就是“多次测量同一方向时,读数上下跳动的程度”。如果这个抖动大得盖过了真实的梯度信号,你就会变成一只在原地乱转的企鹅——明明用了正确的方向,却一步也走不动。

在深层随机初始化的参数化量子线路中,一个著名的现象发生了:随着量子比特数 $n$ 增大,梯度方差以指数速度衰减,这就是贫瘠高原:

缓解贫瘠高原的策略包括:使用局部代价函数(只测量相邻比特的算子,而不是全局算符)、采用分层/分块训练(先训练浅层片段再组装)、设计结构化的硬件高效初始化,以及避免过深的随机线路。这一切的实质,是让“雾”不要浓到盖住真实坡度。

Var⁡[∂L∂θi]∼O(12n)\displaystyle \operatorname{Var}\left[\frac{\partial L}{\partial\theta_i}\right] \sim O\left(\frac{1}{2^{n}}\right)
这意味着当线路有几十个比特时,梯度的典型幅度小到接近零,就像海拔读数在雾中抖动得比真实坡度还大——你根本无从判断该往哪走。而且这不是测量次数能拯救的,因为这是梯度自身的方差,不是采样误差。
  1. 方差定义梯度 $g_i$ 的方差是“平方的期望减去期望的平方”,衡量它围绕均值的波动。
    Var⁡[gi]=E[gi2]−E[gi]2\displaystyle \operatorname{Var}[g_i] = \mathbb{E}[g_i^2] - \mathbb{E}[g_i]^2
  2. 指数衰减对满足条件的随机深线,$\operatorname{Var}[g_i]$ 随比特数 $n$ 按 $\frac{1}{2^n}$ 收缩。
    Var⁡[gi]∼O(2−n)\displaystyle \operatorname{Var}[g_i] \sim O(2^{-n})
  3. 典型幅度梯度的典型大小约等于标准差 $\sqrt{\operatorname{Var}[g_i]} \sim 2^{-n/2}$,当 $n$ 大时,梯度几乎处处为零,形成“高原”。
    E[∣gi∣]≈Var⁡[gi]∼2−n/2\displaystyle \mathbb{E}[|g_i|] \approx \sqrt{\operatorname{Var}[g_i]} \sim 2^{-n/2}

测量开销管理:每一脚都消耗体力

下山路上,每确认一次海拔都要停下来、蹲下、仔细读一次仪器——这很费体力。在量子计算中,“体力”就是测量次数。任何梯度估计都是通过有限次测量样本推算的,样本越多,估计越精准,但每次测量都要重复运行线路、消耗时间和硬件资源。测量开销管理,就是学会把这笔“体力预算”花在刀刃上。

统计学告诉我们,若要估计期望值 $\mathbb{E}[O]$ 达到精度 $\varepsilon$(误差小于 $\varepsilon$)且置信度不低于 $1-\delta$,所需测量次数满足:

在参数移位法则中,每个梯度分量至少需要两次线路评估($\theta+\alpha$ 和 $\theta-\alpha$),$d$ 个参数就是 $2d$ 次,每次还要重复 $M$ 次测量。聪明的方法包括:让多个参数共享一次线路运行、使用分组测量(Pauli 算符同时对角化后一次测多个)、利用量子阴影层析高效估计多个期望值。一句话:体力有限,聪明的旅人从不把每口力气平均花给每一步。

M≥Var⁡[O]ε2 δ\displaystyle M \ge \frac{\operatorname{Var}[O]}{\varepsilon^2\,\delta}
当精度需求提高一倍($\varepsilon$ 缩小一半),分母变成原来的四分之一,测量次数要变成原来的四倍。4 倍!这就是为什么量子梯度估计那么昂贵。
  1. 单次测量方差$\operatorname{Var}[O]$ 是单次测量结果的固有波动,它描述了“掷一次骰子”的随机性有多大。
    Var⁡[O]=E[O2]−E[O]2\displaystyle \operatorname{Var}[O] = \mathbb{E}[O^2] - \mathbb{E}[O]^2
  2. 误差平方反比$M$ 与 $\varepsilon^2$ 成反比,误差要求越苛刻,测量次数按平方爆炸增长。
    M∝1ε2\displaystyle M \propto \frac{1}{\varepsilon^2}
  3. 置信度要求$\delta$ 是失败概率(要求出错概率不超过 $\delta$),越追求稳妥,需要的 $M$ 越大。
    M≥Var⁡[O]ε2 δ\displaystyle M \ge \frac{\operatorname{Var}[O]}{\varepsilon^2\,\delta}

噪声环境可靠性:暴风雨中的测坡术

真实量子硬件绝不是风和日丽的山坡——它是暴风雨中的悬崖:比特会退相干、门会出错、读数会翻错。在这种环境里,梯度估计还可靠吗?噪声会扭曲损失函数:测量到的期望值往往被压扁、向无信息的方向收缩,梯度因此被系统性歪曲——方向可能依然正确,但每一步的实际效果都会打折扣。

要判断一个梯度估计是否可信,我们看它的信噪比:

应对噪声的手段包括:零噪声外推(在不同噪声强度下分别测量,外推到零噪声极限)、测量比特翻转纠正(校准读取错误并用线性逆推校正)、动态解耦(在门序列中插入回波脉冲抑制退相干)。但要注意,任何一种缓解手段都只能部分恢复梯度,不能创造原本就微弱的信号。暴风雨中,最稳妥的姿态是:接受噪声、校准它、并大幅放慢自信的脚步。

SNR=∣E[g^]∣Var⁡[g^]\displaystyle \mathrm{SNR} = \frac{\left|\mathbb{E}[\hat{g}]\right|}{\sqrt{\operatorname{Var}[\hat{g}]}}
分子是梯度的期望(信号的强度),分母是梯度估计的波动(噪声的强度)。只有当 SNR 远大于 1 时,你才真的有“把握”沿着这个方向走;SNR 接近 1 或更小,雾里的脚步就是随缘。
  1. 信号项$\mathbb{E}[\hat{g}]$ 是大量重复估计后梯度的平均方向,代表“真实的倾向”。
    E[g^]=gtrue+bias\displaystyle \mathbb{E}[\hat{g}] = g_{\text{true}} + \text{bias}
  2. 噪声项$\sqrt{\operatorname{Var}[\hat{g}]}$ 是估计值的标准差,由采样噪声和硬件噪声共同贡献。
    Var⁡[g^]=σest\displaystyle \sqrt{\operatorname{Var}[\hat{g}]} = \sigma_{\text{est}}
  3. 比值判据分子远大于分母时,方向可靠;分子被分母淹没时,梯度不可信。
    SNR≫1可靠,SNR≲1不可靠\displaystyle \mathrm{SNR} \gg 1 \quad \text{可靠}, \quad \mathrm{SNR} \lesssim 1 \quad \text{不可靠}

二阶梯度策略:看坡度的变化率

经验丰富的下山者还会留意一件事:坡度本身在变吗?如果脚下的坡越来越陡,说明离谷底还有距离;如果坡度正在放缓,说明快到了,该收着步子准备停下来了。这个“坡度的变化率”,在数学上就是二阶导数,对应损失函数的曲率信息,汇总起来就是 Hessian 矩阵:

利用参数移位法则的推广,二阶导数同样可以用移位测量来精确计算。对适用线路,有简洁的二阶参数移位公式:

二阶信息的威力在于:知道曲率后,可以构造牛顿法风格的更新 $\theta - \eta H^{-1}\nabla L$,在曲率大的方向自动缩小步长,在平坦方向大胆迈步,从而加速收敛。但代价同样惊人:$H$ 是 $d \times d$ 的矩阵,完整估计需要 $O(d^2)$ 次线路评估,参数一多就不可承受。实践中常用对角近似 $\operatorname{diag}(H)$ 或拟牛顿方法(如 BFGS 的量子类比)。这正是探险者的智慧:地形图最精美,但看一页地图的代价,有时候比走完全程还高。

Hij=∂2L∂θi ∂θj\displaystyle H_{ij} = \frac{\partial^2 L}{\partial\theta_i\,\partial\theta_j}
∂2L∂θ2=12[L ⁣(θ+π2)+L ⁣(θ−π2)−2L(θ)]\displaystyle \frac{\partial^2 L}{\partial\theta^2} = \frac{1}{2}\left[L\!\left(\theta+\frac{\pi}{2}\right) + L\!\left(\theta-\frac{\pi}{2}\right) - 2L(\theta)\right]
一阶移位只需要“左右两点”,二阶移位需要“左、中、右三点”:把两边之和减去中间点的两倍,再除以二。这不就是初中几何里判断抛物线的开口吗?
  1. Hessian 定义$H_{ij}$ 是对参数 $\theta_i$ 和 $\theta_j$ 分别求偏导得到的二阶偏导矩阵,刻画损失地形的曲率。
    Hij=∂2L∂θi ∂θj\displaystyle H_{ij} = \frac{\partial^2 L}{\partial\theta_i\,\partial\theta_j}
  2. 三点组合在 $\theta+\frac{\pi}{2}$、$\theta-\frac{\pi}{2}$、$\theta$ 三处测量损失,前两者之和减去两倍中间值。
    S=L(θ+)+L(θ−)−2L(θ)\displaystyle S = L(\theta^{+}) + L(\theta^{-}) - 2L(\theta)
  3. 归一化整体除以 2,得到二阶导数值,它告诉我们是“凹”(正曲率)还是“凸”(负曲率)。
    ∂2L∂θ2=S2\displaystyle \frac{\partial^2 L}{\partial\theta^2} = \frac{S}{2}

AI 应用场景

量子化学中的 VQE 分子基态计算

阶段:模型训练 / 参数优化

解决的问题:在变分量子本征求解器中,损失函数是分子哈密顿量的期望能量。传统方式依赖经典数值差分梯度,每次差分都要调用整个量子线路,且 $\epsilon$ 步长在化学精度要求下极易被测量噪声破坏。参数移位法则提供了解析精确的梯度——相当于让旅人每步都清晰地踩到实地上。

具体案例:在一台超导量子处理器上模拟氢分子(H₂)的基态能量时,计算线路含约 6~10 个旋转参数。使用参数移位法则计算每个参数的梯度,配合梯度下降,几十次迭代内能量期望值便收敛到实验化学精度(约 1 mHa)以内;换成有限差分法,同样的噪声条件下收敛步数翻倍且最终能量偏差更大。

QAOA 组合优化中的经典-量子混合回路

阶段:混合优化外循环

解决的问题:量子近似优化算法(QAQA)把组合优化问题编码为参数化线路的期望值,外循环需要一个经典优化器来更新角度。问题规模大时,每次梯度评估都要重复上千次采样,测量开销呈平方级放大。自然梯度利用 Fubini–Study 度量感知参数相关性,在此类病态曲率地形中可显著减少迭代步数。

具体案例:在 MaxCut 问题(将图顶点分成两组,使被切割的边最多)规模为 20 个节点时,QAOA 线路含约 40 个角度参数。直接采用自然梯度优化,在达到相同近似比时迭代次数约为普通梯度下降的 60%,但每步因度量矩阵测量多付出了约 2 倍时间——最终总时间仍更省。

量子神经网络(QNN)的分类训练

阶段:模型训练 / 梯度下降

解决的问题:量子神经网络的可训练性长期受限于贫瘠高原和梯度方差。局部代价函数与缩减测量预算的组合,让 QNN 在真实噪声芯片上能学到有效的分类边界。测量开销管理——分组测量、线路复用——在这里不是锦上添花,而是能否跑完训练的决定因素。

具体案例:在一个 8 比特的量子分类器上对鸢尾花数据进行二分类,线路使用硬件高效的纠缠层,损失函数改用局部泡利测量。结果:梯度方差比全局代价降低了约一个数量级,训练曲线在 200 轮内稳定收敛;而当改用全局保真度损失时,梯度方差在 10 轮后就掉到噪声底,训练彻底停滞。

Python 演示

python35 行
import numpy as np rng = np.random.default_rng(2024) def ry(theta):    c, s = np.cos(theta / 2), np.sin(theta / 2)    return np.array([[c, -s], [s, c]]) def exact_expectation(theta):    psi0 = np.array([1.0, 0.0])    psi = ry(theta) @ psi0    Z = np.array([[1, 0], [0, -1]])    return float(psi.conj() @ Z @ psi) def measure_z(theta, shots=800):    prob_plus = 0.5 * (1 + exact_expectation(theta))    outcomes = rng.binomial(1, prob_plus, shots)    return 2 * outcomes.mean() - 1 def grad_parameter_shift(theta, s=0.5 * np.pi):    f_plus = measure_z(theta + s)    f_minus = measure_z(theta - s)    return (f_plus - f_minus) / (2 * np.sin(s)) def grad_finite_diff(theta, eps):    return (measure_z(theta + eps) - measure_z(theta - eps)) / (2 * eps) theta0 = 0.9true_grad = -np.sin(theta0)print("true derivative      :", round(true_grad, 6))print("parameter shift grad :", round(grad_parameter_shift(theta0), 6))for eps in [0.1, 0.001, 0.00001]:    g = grad_finite_diff(theta0, eps)    err = abs(g - true_grad)    print("finite diff eps=%1.0e :" % eps, round(g, 6), "err=%1.3e" % err)
目的:用纯 NumPy 验证“参数移位法则在有限采样下仍稳定,而有限差分在步长过小时被噪声彻底淹没”这一正文核心结论。
  1. def ry(theta):构造单比特旋转 Y 门矩阵,这是参数化线路中最基本的“旋钮”。
  2. psi = ry(theta) @ psi0把初始态 $|0\rangle$ 旋转成参数化量子态,相当于线路前向传播。
  3. rng.binomial(1, prob_plus, shots)模拟对量子态重复测量 $Z$,每次以概率 $p$ 得到 +1,这是量子采样的统计本质。
  4. return 2 * outcomes.mean() - 1把 0/1 样本映射为 ±1 的期望值估计,等价于 $\langle Z\rangle$ 的蒙特卡洛估计。
  5. return (f_plus - f_minus) / (2 * np.sin(s))参数移位法则的核心公式:两次移位测量之差除以 $2\sin\alpha$。
  6. (measure_z(theta + eps) - measure_z(theta - eps)) / (2 * eps)有限差分法的核心:微小步长下的中心差商。
  7. for eps in [0.1, 0.001, 0.00001]:关键对比:从 0.1 到 1e-5,步长越小,噪声越掩盖真实梯度,误差反而越大。

常见误区

误区

正解

误区

正解

误区

正解

误区

正解

误区

正解

面试题

Q1. 参数移位法则计算 $\partial L/\partial\theta$ 时,对满足条件的线路,应在哪两个参数位置分别测量损失?

单选题 · easy

  • A.θ±π/2 两个位置← 正确答案
  • B.θ±ε 的微小位置
  • C.θ 与 θ+π 两个位置
  • D.θ±π 的两个位置

答案:A。参数移位法则把参数分别平移 $+\pi/2$ 和 $-\pi/2$,两次测量损失后按 $\frac{1}{2}[L(\theta+\frac{\pi}{2})-L(\theta-\frac{\pi}{2})]$ 组合,得到的是解析精确梯度;ε 微小移位是有限差分的做法,π 移位则不符合该公式。

Q2. 有限差分法在量子测量噪声下,把步长 ε 取得极小时会发生什么?

单选题 · easy

  • A.梯度估计会越来越精确
  • B.差分信号被噪声彻底淹没← 正确答案
  • C.线路的测量次数自动减少
  • D.梯度会直接变成零向量

答案:B。两点损失的真实差值约正比于 ε,而测量噪声是常数级的;ε 极小时,差商变成“噪声除以小量”,估计误差爆炸。这与经典无噪声函数的“ε 越小越准”直觉完全相反。

Q3. 自然梯度与普通梯度下降的本质区别是?

单选题 · mid

  • A.使用更大的学习率 η
  • B.用几何度量修正更新方向← 正确答案
  • C.使用更多的采样测量次数
  • D.使用更小的损失函数

答案:B。自然梯度通过 Fubini–Study 度量张量 $F$ 的逆矩阵修正梯度方向,让更新方向适应参数空间的几何曲率;它并不改变学习率本质、也不直接增加测量次数,更不改变损失函数本身。

Q4. “贫瘠高原”现象指的是什么?

单选题 · easy

  • A.损失函数处处等于零
  • B.梯度方差随比特数指数衰减← 正确答案
  • C.测量次数过多导致线路崩溃
  • D.量子线路无法对参数求导

答案:B。贫瘠高原是指深层随机量子线路中,梯度方差按 $\sim 2^{-n}$ 指数衰减,导致梯度几乎处处接近零。损失函数本身并不为零,线路也可求导,只是可训练性彻底丧失。

Q5. 以下哪些策略可以有效缓解贫瘠高原现象?

多选题 · mid

  • A.使用全局代价损失函数
  • B.使用局部测量代价函数← 正确答案
  • C.采用分层分块的训练方式← 正确答案
  • D.不断增加线路的深度

答案:BC。局部代价(如最近邻泡利算子)能显著降低方差,分层训练限制纠缠带来的方差爆炸;而全局代价和增加线路深度通常会让方差更快衰减,使贫瘠高原更严重。

Q6. 想将量子期望值估计的误差(精度)提高一倍,测量次数大约需要变为原来的几倍?

单选题 · easy

  • A.2 倍
  • B.4 倍← 正确答案
  • C.保持不变
  • D.0.5 倍

答案:B。统计误差按 $1/\sqrt{M}$ 衰减,要把误差减半,需满足 $1/\sqrt{M'}=(1/2)\cdot(1/\sqrt{M})$,解得 $M'=4M$。量子梯度估计的高成本正是来自这种平方关系。

Q7. 关于参数移位法则的适用条件,下列说法正确的有?

多选题 · hard

  • A.要求线路生成元只有两个本征值← 正确答案
  • B.对任意参数化线路都解析成立
  • C.移位量需与生成元的谱相关← 正确答案
  • D.多谱情形需加权移位公式← 正确答案

答案:ACD。标准参数移位法则要求生成元最多两个本征值(如泡利旋转门);对多本征值生成元,需将移位公式推广为加权参数移位。因此“任意线路都成立”是错的;A、C、D 均正确。

Q8. 对适用线路,用二阶参数移位法则计算 $\partial^2L/\partial\theta^2$,需要测量哪几个位置的损失?

单选题 · hard

  • A.只需 θ 这一个位置
  • B.只需 θ±π/2 两个位置
  • C.需要 θ±π/2 与 θ 三个位置← 正确答案
  • D.需要 θ±π/4 两个位置

答案:C。二阶参数移位公式为 $\frac{1}{2}[L(\theta+\frac{\pi}{2})+L(\theta-\frac{\pi}{2})-2L(\theta)]$,需要左右两点与当前点共三处测量,比一阶参数移位多一次线路评估。

Q9. 零噪声外推(ZNE)的主要工作原理是?

单选题 · mid

  • A.完全消除设备中的所有量子噪声
  • B.从多个噪声强度的测量中外推出零噪声结果← 正确答案
  • C.通过增加采样次数来平均掉噪声
  • D.用更大规模量子比特压制噪声

答案:B。ZNE 是噪声环境下最常用的误差缓解手段:人为放大噪声到几个不同强度,分别测量期望值,再用曲线拟合外推到零噪声极限。它不能“完全消除”噪声,也不依赖增加采样次数。

Q10. 关于量子梯度计算的测量开销,正确的说法有?

多选题 · mid

  • A.每个梯度分量通常需要独立测量← 正确答案
  • B.一组线路测量可复用时能大幅省开销← 正确答案
  • C.测量次数越多梯度估计越精确← 正确答案
  • D.梯度估计与测量次数完全无关

答案:ABC。量子梯度估计以采样为基础,测量次数越多统计误差越小;不同参数若共享线路中的可复用信息(如分组测量、阴影层析),可以减少总测量开销。D 与统计事实相悖。