4. 参数化量子电路设计

在混合量子经典优化工作流中,参数化量子电路(PQC)承担着“可训练模型”的角色:经典优化器负责更新参数,量子电路负责把参数映射为可测量的输出。这个映射方式由 ansatz 决定。ansatz 不是随便堆几层旋转门和纠缠门,它同时决定了模型能表达什么、优化器能不能找到好参数、以及训练成本有多高。本节围绕 ansatz 构造、参数初始化、表达力与训练难度的权衡展开,并给出可操作的构造与检查方法。

一、ansatz 的构造:从任务结构出发

构造 ansatz 的第一步不是选门,而是明确任务需要什么类型的关联。常见任务可分为三类:第一类是组合优化,例如 MaxCut,其目标函数由问题图的边决定,ansatz 需要能表达变量之间的成对关联;第二类是量子化学或物理模拟,例如 VQE 求基态能量,ansatz 需要能逼近真实哈密顿量的本征态;第三类是分类或回归,输入是数据,ansatz 需要把数据编码与可训练参数结合。

以 MaxCut 的 QAOA 型 ansatz 为例,其结构由问题哈密顿量和混合哈密顿量交替演化构成。对每条边 (i,j),代价层施加 ZZ 相互作用,参数为 γ;混合层对每个量子比特施加 RX 旋转,参数为 β。层数 p 决定电路深度。若问题图有 5 个顶点、6 条边,p=2,则电路包含 2 个代价层和 2 个混合层,共 4 个可训练参数(γ₁, β₁, γ₂, β₂)。这种 ansatz 的表达力受 p 限制,但参数少、优化相对稳定。

对于硬件高效 ansatz(HEA),常见结构是“旋转层 + 纠缠层”重复。旋转层对每个量子比特施加 RY(θ) 或 RX(θ),纠缠层用 CNOT 或 CZ 在相邻比特间建立关联。例如 4 比特、2 层的 HEA:每层 4 个 RY 参数,共 8 个参数;纠缠层采用线性链 CNOT(0→1, 1→2, 2→3)。这种结构灵活,但表达力与训练难度都随层数快速上升。

二、参数初始化:不要全部置零

参数初始化直接影响优化起点。若所有旋转角初始化为 0,许多 ansatz 的梯度会因对称性而消失,优化器无法获得有效方向。常见做法包括:小随机初始化,例如从均匀分布 U(-0.1, 0.1) 采样;或从均匀分布 U(0, 2π) 采样,适用于周期性强、局部极小较多的场景。对于 QAOA 型 ansatz,可先用经典启发式给出 γ、β 的初始猜测,例如 γ 取问题边权相关的小值,β 取接近 π/4 的值。

初始化后应检查两点:一是初始参数下电路输出是否具有非零梯度,可通过参数移位规则计算单个参数的梯度;二是初始能量或损失是否远离已知最优值,若过于接近,可能陷入平凡解。例如在 MaxCut 示例中,若初始 γ=0、β=0,所有比特处于 |0⟩,测量得到的割值期望为 0,梯度也为 0,必须避免。

三、表达力与训练难度的权衡

表达力指 ansatz 能覆盖的量子态范围。层数越多、纠缠越密,表达力越强,但训练难度也越大。训练难度体现在三个方面:梯度消失(贫瘠高原)、参数空间非凸导致局部极小、以及电路深度增加带来的噪声累积。贫瘠高原的典型表现是:随着量子比特数 n 增加,随机初始化下梯度的方差按指数衰减。对于全局随机初始化、深度为 O(n) 的 HEA,梯度方差可能衰减到 10⁻³ 以下,优化几乎停滞。

权衡策略包括:第一,优先使用问题启发的 ansatz,如 QAOA、UCCSD,它们把问题结构编码进电路,参数少、表达力针对性强;第二,采用分层训练,先训练浅层,再逐层增加,避免一次性优化全部参数;第三,使用局部初始化策略,例如对每个参数从其邻域采样,而非全局随机;第四,监控梯度范数,若连续多步梯度范数低于阈值(如 10⁻⁴),应检查是否进入贫瘠高原,并考虑减小层数或更换 ansatz。

ansatz 构造与训练难度权衡关系图 任务类型 组合优化(MaxCut) 量子化学(VQE) 分类/回归(数据编码) ansatz 结构选择 QAOA:代价层 ZZ + 混合层 RX HEA:旋转层 RY/RX + 纠缠层 CNOT UCCSD:激发算符 + 参数化旋转 参数初始化 小随机 U(-0.1, 0.1) 均匀 U(0, 2π) 问题启发式猜测 表达力 ↔ 训练难度 权衡 表达力增强 → 训练难度增大 → 贫瘠高原风险区 浅层 QAOA 分层训练 HEA 深层全局随机 策略:问题启发 ansatz 参数少、梯度稳定 策略:逐层增加深度 局部初始化 + 梯度监控 风险:梯度方差指数衰减 需减小层数或换 ansatz

四、一个可执行的构造与检查流程

下面给出一个面向 MaxCut 的 ansatz 构造与检查示例,参数为教学假设,用于说明流程。假设问题图有 4 个顶点、4 条边,边集为 (0,1)、(1,2)、(2,3)、(3,0),目标为最大化割边数。

步骤 1:选择 ansatz 类型
  采用 QAOA 型,层数 p=2。
  代价层:对每条边 (i,j) 施加 RZZ(2γ) 等效门。
  混合层:对每个比特施加 RX(2β)。

步骤 2:参数初始化
  γ₁ = 0.3, β₁ = 0.7
  γ₂ = 0.5, β₂ = 0.4
  检查:初始割值期望约为 2.1(非零),梯度范数约 0.08(非零)。

步骤 3:训练与监控
  使用经典优化器(如 COBYLA)迭代 100 次。
  每 10 步记录损失值与梯度范数。
  若梯度范数 < 1e-4 且损失值不再下降,判定为停滞。

步骤 4:结果判断
  最优割值期望达到 3.8 以上(接近最大割 4)。
  若低于 3.0,检查 ansatz 层数是否不足或初始化是否不佳。

该流程的关键在于:初始化后先验证梯度非零,训练中持续监控梯度范数,结果不达标时优先调整 ansatz 结构而非盲目增加迭代次数。对于更复杂的任务,可把上述检查点固化为训练日志字段,例如记录每层的参数均值、梯度范数、损失值,便于回溯。

实用提示:若使用 HEA,建议先固定纠缠层结构,只训练旋转层参数;待损失下降趋缓后,再解冻纠缠层参数进行微调。这种“分阶段解冻”策略在中等规模问题上常比一次性训练全部参数更稳定。
注意:贫瘠高原并非只由层数引起。全局随机初始化、过深的电路、以及测量算符的全局性都会加剧梯度消失。若发现梯度范数随量子比特数增加而快速下降,应优先检查初始化策略和 ansatz 的局域性,而不是简单增加训练轮数。