2. 量子计算基础回顾

变分量子分类器(VQC)本质上是“带可训练参数的量子线路 + 经典优化器”的组合。要读懂 VQC 的构造、写出可运行的线路、解释训练曲线为何抖动,就必须先把量子比特、叠加、纠缠、测量、量子门与量子线路这六个概念串成一条完整的物理—计算链条。本节不追求量子力学的形式化推导,而是围绕“VQC 开发时你会实际用到什么”来回顾。

一、量子比特:从二维复向量到布洛赫球

经典比特只能取 0 或 1,量子比特(qubit)的状态则是一个二维复向量:

|ψ⟩ = α|0⟩ + β|1⟩,   α, β ∈ ℂ,   |α|² + |β|² = 1

其中 |0⟩ = [1, 0]ᵀ、|1⟩ = [0, 1]ᵀ 是计算基。α、β 称为概率幅,|α|² 与 |β|² 分别是测量得到 0 和 1 的概率。由于全局相位不可观测,单量子比特纯态可写成只含两个实角的参数化形式:

|ψ⟩ = cos(θ/2)|0⟩ + e^{iφ} sin(θ/2)|1⟩

θ ∈ [0, π]、φ ∈ [0, 2π) 正好对应布洛赫球上的一个点。这一点对 VQC 极其重要:单量子比特门就是布洛赫球上的旋转,而 VQC 中常用的 RY(θ) 门,就是把量子比特绕 y 轴旋转 θ 角,θ 直接作为可训练参数。开发时若看到某个参数“怎么训练都不动”,往往要回到布洛赫球上检查该旋转轴是否与当前态平行——平行旋转不改变态,梯度自然为零。

二、叠加与纠缠:VQC 表达能力的来源

叠加指系统可处于基态的线性组合。对 n 个量子比特,叠加态可同时“覆盖”2ⁿ 个基态,这是量子线路相对经典线路的并行性来源。但要注意:叠加本身并不等于可用的并行计算,必须配合干涉(相位设计)才能把目标答案的概率幅放大。

纠缠指多比特联合态不能写成各比特态的直积。以两比特的贝尔态为例:

|Φ⁺⟩ = (|00⟩ + |11⟩)/√2

此时单独看第一个比特是最大混合态,测量结果完全随机;但两个比特的测量结果 100% 相关。纠缠是 VQC 能表达经典模型难以表达的特征空间的关键资源。在 VQC 中,纠缠通常由 CNOT、CZ 等双比特门在特征映射层和可训练层中引入;如果线路里只有单比特旋转,无论层数多深,整体演化仍是各比特旋转的直积,模型表达能力会严重受限。

三、测量:把量子态变成经典数据的唯一出口

测量是量子线路与经典世界之间的接口。对态 |ψ⟩ = α|0⟩ + β|1⟩ 在计算基下测量,得到 0 的概率为 |α|²,得到 1 的概率为 |β|²,测量后态坍缩到对应基态。VQC 中常见的做法是:

  • 计算基测量:直接读取 Z 算符本征值,得到 0/1 比特串,用于分类标签;
  • 期望值测量:通过多次重复(shots)估计 ⟨Z⟩ = P(0) − P(1),作为连续输出送入经典优化器;
  • 多比特联合测量:读取比特串并统计频率,用于多分类或核方法。

这里有一个工程上必须建立的直觉:测量带来统计噪声。若用 1024 次 shots 估计 ⟨Z⟩,其标准误差约为 1/√1024 ≈ 0.031。VQC 训练时损失曲线的抖动,很大一部分就来自这个采样噪声,而不是参数更新本身。开发时通常需要设置足够的 shots,或在优化器层面使用参数化平移规则配合多次采样平均。

四、量子门与量子线路:把数学写成可执行的门序列

量子门是作用在量子态上的酉变换 U(满足 U†U = I),保证演化前后概率守恒。VQC 开发中最常用的一组门如下:

门作用VQC 中的典型用途
H制备叠加态 (|0⟩+|1⟩)/√2线路初始化、特征映射
RX/RY/RZ(θ)绕 x/y/z 轴旋转 θ可训练参数门
CNOT控制比特为 1 时翻转目标比特引入纠缠
CZ控制比特为 1 时对目标施加 Z引入纠缠(相位型)

量子线路就是把门按时间顺序作用到初始态 |0…0⟩ 上的序列,读取方式是从左到右(时间从左到右),每个比特一条水平线。下面这张图给出一个典型的 2 比特 VQC 单层结构:特征映射层把输入 x 编码进 RY 角,可训练层用带参数的 RY 与 CNOT 构造纠缠,最后在计算基下测量得到分类输出。

2 比特 VQC 单层线路:特征映射 → 可训练层 → 测量 q0 q1 |0⟩ |0⟩ RY(x₀) 特征映射 RY(x₁) 特征映射 RY(θ₀) 可训练 RY(θ₁) 可训练 CNOT 纠缠 RY(θ₂) 可训练 RY(θ₃) 可训练 M 测量 M 测量 比特串 / ⟨Z⟩ 特征映射 可训练层(参数 θ 由经典优化器更新) 采样与读出

这张图对应 VQC 的标准三段式:特征映射把经典输入 x 编码为量子态,可训练层用参数化旋转与纠缠门构造假设空间,测量把量子态转成经典数值。开发时,线路的比特数、层数、纠缠拓扑、测量算符共同决定了模型的表达能力与训练难度。

五、开发中必须建立的三条工程直觉

第一,门序不可交换。量子门是矩阵乘法,AB ≠ BA 普遍成立。写线路时若把 CNOT 放在 RY 之前还是之后,得到的态完全不同。调试时若发现结果与预期不符,先检查门序,而不是先怀疑参数。

第二,测量会破坏叠加。线路中间不要随意插入测量,除非你明确要做“测量反馈”或“动态线路”。VQC 的标准做法是:所有酉演化完成后,在末端统一测量。

第三,参数化门的梯度来自“参数化平移”。对形如 RY(θ) 的门,其期望值满足 ∂⟨O⟩/∂θ = [⟨O⟩(θ+π/2) − ⟨O⟩(θ−π/2)]/2。这正是 VQC 能用经典优化器训练参数的数学基础,也解释了为什么训练时每个参数需要额外两次线路求值。

建议在动手写 VQC 之前,先用 2 个比特、1 层线路跑通“制备贝尔态 → 测量 → 统计频率”的最小示例,确认自己理解了叠加、纠缠与测量三者的关系,再进入参数化训练。

把以上概念落到代码层面,一个最小可运行的线路骨架(以 Qiskit 风格伪代码表示)大致如下,它把本节的门、纠缠与测量串成了可执行对象:

qc = QuantumCircuit(2, 2)
qc.ry(x[0], 0)          # 特征映射
qc.ry(x[1], 1)
qc.ry(theta[0], 0)      # 可训练层
qc.ry(theta[1], 1)
qc.cx(0, 1)             # 引入纠缠
qc.ry(theta[2], 0)
qc.ry(theta[3], 1)
qc.measure([0, 1], [0, 1])   # 计算基测量
# 重复 shots 次,统计比特串频率,估计 ⟨Z⟩ 或分类概率

至此,量子比特提供状态载体,叠加与纠缠提供表达能力,量子门与线路提供可编程的演化,测量提供经典读出。这五者构成 VQC 的物理底座,后续的特征映射设计、ansatz 选择与优化器调参,都是在这套底座上做工程取舍。