量子神经网络
从旋转门到一个可训练的量子模型
钟祚栋 / 学习笔记
Quantum Notes · 量子计算入门学习 02 ↗
#把量子电路看成可训练的函数
在上一篇里,量子门负责演化,测量负责产生经典结果。顺着这个思路,就可以理解笔记中那条 QNN 流程:把输入编码成量子态,用带参数的门改变它,再把测量统计量作为模型输出。
这里讨论的是变分量子电路形式的量子神经网络。QNN 是一组模型的统称,不只有一种固定结构;这篇先围绕一个能完整算清楚、也能在网页中训练的例子展开。
#编码、演化、读出与经典优化器
把经典输入记作 x,把可训练参数记作 θ。一个常见流程是:
∣ψ(x,θ)⟩=Utrain(θ)Uenc(x)∣0⟩⊗n.
选定可观测量 O 后,模型可输出期望值:
fθ(x)=⟨ψ(x,θ)∣O∣ψ(x,θ)⟩.
也可以直接把某个测量结果的概率作为输出。随后在经典计算机上计算损失、更新参数,再重新运行量子电路。Cerezo 等人的变分量子算法综述对这种量子—经典优化闭环有系统介绍。
图 1 · 根据原笔记重画的三 qubit 电路。CNOT 提供可能产生纠缠的联合操作;是否纠缠还取决于输入。虚线表示经典优化器更新 θ,不是额外的量子门。
输入怎样进入电路?
| 编码 | 一个例子 | 要注意的成本 |
| 基态编码 | 二进制 101 → ∣101⟩ | 按位表示离散输入。 |
| 角度编码 | Ry(x)∣0⟩ | 特征需缩放到合适角度,旋转具有周期性。 |
| 振幅编码 | x/∥x∥ → 态振幅 | qubit 数少,不代表一般态制备免费。 |
最容易直接理解的是角度编码:
Ry(x)=[cos(x/2)sin(x/2)−sin(x/2)cos(x/2)],Ry(x)∣0⟩=cos2x∣0⟩+sin2x∣1⟩.
若向量有 2n 个分量,振幅编码可以用 n 个 qubit 来表示归一化后的方向,但任意输入的制备过程仍可能需要大量操作,而且向量的原始模长需要另行处理。表示空间的维度不能直接等同于端到端效率。
#最小 QNN:一条正弦曲线也能训练
先暂时去掉多 qubit 和纠缠,只保留两次绕 Y 轴的旋转:
∣0⟩Ry(x)Ry(θ)Z measurement{0,1}.
同轴旋转可以合并,因此:
∣ψout⟩=Ry(θ)Ry(x)∣0⟩=Ry(x+θ)∣0⟩.
把测到 1 的概率作为模型输出:
fθ(x)=P(1∣x,θ)=sin22x+θ=21−cos(x+θ).
如果选择期望值读出,则 ⟨Z⟩=cos(x+θ),两种输出之间有 fθ=(1−⟨Z⟩)/2 的关系。它们都来自同一条电路。
从预测到损失,再到参数更新
对 m 个训练样本,可以定义均方误差:
L(θ)=m1j=1∑m(fθ(xj)−yj)2,θ←θ−η∂θL.
下面准备 9 个等间距输入,xj=−π+jπ/4(j=0,…,8),并用 yj=sin2((xj+1.1)/2) 生成软目标值。目标特意选在这个模型能表达的函数族里,用来观察训练机制;这不是一个真实数据集上的性能实验。
EXPERIMENT 04
训练一个只有 θ 的量子模型
蓝线是模型输出,橙色点是训练目标。拖动 θ 会平移整条曲线;拖动 x 只移动蓝色读数点。
参数 θ−0.800
训练集 MSE0.29571
训练步数0
当前损失梯度 ∂L/∂θ = 。使用精确期望值与参数位移梯度;这里没有加入有限 shots 的采样噪声。
初始 θ = −0.8,学习率 η = 0.8。
可以先手动拖动 θ,观察曲线怎样整体平移;再重置,点击“训练 50 步”。优化器根据当前损失梯度更新 θ,而不是把答案参数直接写入模型。输入 x 的滑块只用于观察一个位置的预测,不会改变训练集。
#参数位移:用两次电路求导
这个例子可以直接微分:
∂θ∂fθ(x)=21sin(x+θ).
也可以把参数向两个方向分别平移 π/2,重新计算电路输出:
∂θ∂fθ(x)=2fθ+π/2(x)−fθ−π/2(x).
这是参数位移规则(parameter-shift)。对一个参数只出现于一个 e−iθP/2 形式的 Pauli 旋转门、其余门固定时,这个两项规则精确成立。它不是用一个很小的步长近似导数。更一般的生成元、共享参数或重复出现的参数,需要相应推广或按出现位置求导再相加。可参阅 PennyLane 的量子梯度教程。
要特别区分电路输出的导数与损失的导数。对这里的平方损失,仍需要链式法则:
∂θL=m2j∑(fθ(xj)−yj)∂θfθ(xj).
不能直接把平方损失代入同一个两项位移式,就当作损失梯度。网页演示正是先计算输出的参数位移导数,再通过上式更新参数。
理想期望值与有限 shots
网页模拟可以直接计算振幅,从而得到精确概率。真实采样通常需要 S 次独立运行,用 p=n1/S 估计概率:
Var(p)=Sp(1−p)≤4S1.
因此,标准误差通常按 1/S 缩小。参数位移需要估计两个不同电路的输出,采样噪声也会进入梯度。这些执行次数是训练成本的一部分。
#门都是线性的,模型为什么还能非线性?
这里需要分清楚“对什么变量线性”。固定门参数时,所有酉门对输入量子态向量都是线性的。多层门仍可合并成:
Utotal=UL⋯U2U1.
但模型从经典输入 x 到经典预测的映射,不必是线性的。角度编码把 x 放进三角函数;测量概率又是振幅模长平方。我们的例子就是 fθ(x)=sin2((x+θ)/2)。
“测量是非线性的”还需要限定描述方式:Born 概率对态向量的振幅是二次的,但对密度矩阵 ρ 是线性的,P(i)=Tr(ρΠi)。不能据此把测量直接当作经典网络里的 ReLU。
这也解释了为什么不能把“堆更多量子门”直接类比为“更深的经典神经网络”。本例里连续的两个同轴旋转就可以合并;更复杂模型的函数族取决于编码、旋转轴、参数共享、联合门、重复编码与读出方式。
实践中还要考虑可训练性。McClean 等人关于 barren plateaus 的工作表明,在满足相应随机电路条件的情形下,梯度会随系统规模变得极小。这不意味着每条 QNN 都无法训练,但提醒我们不能仅凭参数量或 qubit 数判断模型是否有用。
#从教学模型走向实际问题
对一个 QNN,我现在更愿意依次问:输入怎么编码?可训练门能表达什么函数?测量什么统计量?怎样估计梯度?为了达到给定精度,需要多少次电路执行?最后再把总成本与合适的经典模型比较。
多 qubit、纠缠与重复编码可能改变模型的表达能力,但不会自动构成量子优势。下一篇换一个不依赖训练的例子,看看如何主动设计相位与干涉:Grover 搜索:标记相位,放大振幅。
- Cerezo et al. · Variational Quantum Algorithms,Nature Reviews Physics, 2021。
- Josh Izaac / PennyLane · Quantum gradients with backpropagation:参数位移与模拟器反向传播。
- McClean et al. · Barren plateaus in quantum neural network training landscapes,Nature Communications, 2018。