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 构造纠缠,最后在计算基下测量得到分类输出。
这张图对应 VQC 的标准三段式:特征映射把经典输入 x 编码为量子态,可训练层用参数化旋转与纠缠门构造假设空间,测量把量子态转成经典数值。开发时,线路的比特数、层数、纠缠拓扑、测量算符共同决定了模型的表达能力与训练难度。
五、开发中必须建立的三条工程直觉
第一,门序不可交换。量子门是矩阵乘法,AB ≠ BA 普遍成立。写线路时若把 CNOT 放在 RY 之前还是之后,得到的态完全不同。调试时若发现结果与预期不符,先检查门序,而不是先怀疑参数。
第二,测量会破坏叠加。线路中间不要随意插入测量,除非你明确要做“测量反馈”或“动态线路”。VQC 的标准做法是:所有酉演化完成后,在末端统一测量。
第三,参数化门的梯度来自“参数化平移”。对形如 RY(θ) 的门,其期望值满足 ∂⟨O⟩/∂θ = [⟨O⟩(θ+π/2) − ⟨O⟩(θ−π/2)]/2。这正是 VQC 能用经典优化器训练参数的数学基础,也解释了为什么训练时每个参数需要额外两次线路求值。
把以上概念落到代码层面,一个最小可运行的线路骨架(以 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 选择与优化器调参,都是在这套底座上做工程取舍。