Quantum Machine Learning
量子机器学习 (QML) 使用经典优化器训练参数化量子电路和量子核。了解其工作原理和发展现状。
量子机器学习(QML)将量子计算机用于机器学习任务,最常见的做法是训练参数化量子电路,让量子门角度发挥模型权重的作用,或使用量子处理器为核方法计算相似度。一个包含 n 个量子比特的寄存器由 2^n 个复振幅描述,因此即使很小的电路也会变换一个非常大的向量;但一次测量只会返回一个随机比特串,而模型所需的每个量都必须通过大量重复运行来估算,这些运行称为 shots。这个领域还包括对量子实验数据应用经典学习;Jacob Biamonte、Seth Lloyd 及其同事在 2017 年发表于 Nature 的综述中考察了这两个方向。
变分量子电路#
目前硬件上的大多数 QML 都是混合式的。经典计算机将每个输入编码为旋转角度,量子处理器运行由旋转门和纠缠门组成的参数化电路,测得的期望值再输入经典的损失函数,并由经典的优化算法进行最小化,通常使用普通的梯度下降。这些模型也称为量子神经网络,名称来自经典神经网络中的可训练层。变分量子本征求解器(VQE)也采用相同的循环;VQE 于 2014 年提出,用于估算分子的基态能量。QAOA 则是一种变分算法,面向量子优化所处理的组合问题。
反向传播无法探测量子处理器内部,因此梯度要通过参数位移规则获得:对于旋转门,期望值的精确导数等于角度分别偏移 +π/2 和 -π/2 后两次运行结果之差的一半。下面使用 NumPy 模拟一个双量子比特分类器,展示整个循环:
import numpy as np
rng = np.random.default_rng(0)
x = rng.uniform(-np.pi, np.pi, size=(100, 2)) # 100 points with 2 features each
y = np.sign(np.cos(x[:, 0] - 1.0) * np.cos(x[:, 1] + 0.5)) # XOR-like labels
def circuit(features, theta):
"""Simulate RY encoding, trainable RY rotations, and a CNOT on 2 qubits, then return <Z> of qubit 2."""
half = (features + theta) / 2 # RY(theta) after RY(x) is one rotation by x + theta
state = np.kron([np.cos(half[0]), np.sin(half[0])], [np.cos(half[1]), np.sin(half[1])])
state = state[[0, 1, 3, 2]] # CNOT flips qubit 2 when qubit 1 is |1>
return state @ np.diag([1, -1, 1, -1]) @ state
theta = np.zeros(2)
for _ in range(100):
errors = np.array([circuit(xi, theta) for xi in x]) - y
for i in range(2): # parameter-shift rule: an exact gradient from two extra circuit runs
shift = np.eye(2)[i] * np.pi / 2
slopes = np.array([(circuit(xi, theta + shift) - circuit(xi, theta - shift)) / 2 for xi in x])
theta[i] -= 0.5 * np.mean(errors * slopes)
accuracy = np.mean([np.sign(circuit(xi, theta)) == yi for xi, yi in zip(x, y)])
print(f"theta = {theta.round(2)}, accuracy = {accuracy:.2f}")它会打印theta = [-0.99 0.4 ], accuracy = 0.97:电路学到的角度偏移接近生成标签时使用的 -1.0 和 0.5,并正确分类了 97% 的点。CNOT 门使第二个量子比特的期望值等于两个编码后余弦值的乘积;如果没有这个门,该量子比特就只能看到第二个特征。在硬件上,每个期望值本身都要通过数千次 shots 的平均值计算得出。PennyLane、Qiskit Machine Learning 和 TensorFlow Quantum 提供相同的构建模块,可通过模拟器使用,也可接入真实量子处理器。
量子核与混合模型#
量子核使用固定的编码电路将两个输入映射为量子态,并估算它们的重叠度,再将其作为经典支持向量机(SVM)中的相似度。IBM 的 Vojtěch Havlíček 及其同事在 2019 年发表于 Nature 的论文中展示了这种方法,并在超导处理器上进行了验证。真实数据的特征数量远多于可用的量子比特,因此处理流程会先使用主成分分析(PCA)或预训练网络压缩输入。Xanadu 的 Andrea Mari 及其同事在 2020 年采用这种形式的迁移学习,将预训练 ResNet-18提取的特征传给一个 4 量子比特变分电路,用于图像分类。
量子优势的现状#
量子数据是量子计算优势最明确的领域。2022 年,Caltech 和 Google Quantum AI 的 Hsin-Yuan Huang 及其同事使用多达 40 个超导量子比特和 1,300 个量子门,在 Google 的 Sycamore 处理器上表明:如果学习器在量子计算机上存储并处理量子态,就能用比任何只能分别测量每个副本的学习器少指数级的实验次数,学习量子系统的属性。
经典数据上的加速效果尚无定论。早期方案基于 2009 年提出的线性系统 HHL 算法;该算法需要稀疏、条件良好的输入,并要求这些输入已存储在量子存储器中。2018 年,Ewin Tang 找到了一种受量子启发的经典算法,消除了量子推荐系统所声称的指数级加速。Jarrod McClean 及其同事在 2018 年发现,训练会遇到贫瘠高原问题:对于许多随机初始化的电路,梯度会随着量子比特数量增加而指数级缩小。这是梯度消失问题的量子版本,还会使所需的 shots 数量呈指数级增长。John Preskill 在 2018 年将当今的处理器称为含噪中等规模量子(NISQ)设备,其门错误限制了电路深度。
数据加载是另一个瓶颈。一张采用 Ultralytics YOLO26 默认输入尺寸的 640 x 640 RGB 图像包含 1,228,800 个值,振幅编码可以用 21 个量子比特表示这些值,但制备任意 21 量子比特状态所需的门数会随 2²¹ 增长,操作次数大约与 CPU 读取这些像素所需的次数相当。










