3. 过拟合在量子模型中的表现形式
在经典机器学习中,我们习惯用“训练集准确率高、测试集准确率低”来判定过拟合。量子机器学习虽然底层是参数化量子电路(PQC)与量子测量,但过拟合的“症状”同样可以观察,只是它的表现形式更隐蔽:除了性能差距,还会体现在量子态层析的重构误差、参数化电路的表达能力与泛化能力之间的错配上。本节围绕这四种表现展开,并给出一个可复现的典型过拟合案例。
一、训练集与测试集性能差距:最直接的信号
量子分类模型通常以测量期望值作为输出,例如对某个可观测量 ⟨Z⟩ 做阈值判断。设训练损失为 L_train、测试损失为 L_test,最直观的过拟合指标是泛化间隙 G = L_test − L_train。当 G 随训练轮次持续增大,而 L_train 仍在下降时,模型已经开始记忆训练样本的噪声而非学习规律。
需要注意量子场景下的两个陷阱。第一,测量采样带来的统计噪声会让 L_test 本身有方差,单次评估不可靠,应使用 shots=1024 以上的多次采样并报告均值与标准差。第二,训练集与测试集若来自同一次量子态制备、共享相同的硬件漂移,测试集会被“污染”,导致间隙被低估。因此划分数据集时应在电路执行前完成,并尽量让测试集来自独立制备的量子态。
二、量子态层析重构误差:量子特有的“记忆”证据
性能差距只告诉我们“泛化变差”,却不说明模型内部发生了什么。量子态层析(quantum state tomography)提供了更细粒度的证据:对训练样本和测试样本分别重构模型输出的量子态 ρ_model,与目标态 ρ_target 比较保真度 F = (Tr√(√ρ_target ρ_model √ρ_target))²。若模型在训练样本上的重构保真度接近 0.99,而在测试样本上只有 0.75,说明电路已经把训练态的具体结构“编码”进了参数,而不是学到可迁移的态制备规律。
实际操作中,完整层析的测量次数随比特数指数增长,对 4 比特以上系统不现实。工程上常用局部层析或影子层析(shadow tomography)替代:只对关键子系统的单比特和两比特约化密度矩阵做重构,观察训练/测试保真度之差。这个差值就是量子版的“记忆指标”,比单纯的标签准确率更能揭示过拟合的机理。
三、表达能力与泛化差距的关联
参数化电路的表达能力由 ansatz 结构决定:层数 L、纠缠门数量、参数维度共同决定它能覆盖的酉变换子空间大小。表达能力越强,越容易拟合训练数据,但也越容易过拟合。这里存在一个“表达能力—泛化”的权衡曲线:
- 欠表达区:层数太少,训练与测试误差都高,属于欠拟合;
- 匹配区:表达能力与数据复杂度相当,泛化间隙小;
- 过表达区:层数过多、参数冗余,训练误差趋近于零,测试误差回升,泛化间隙显著扩大。
判断是否进入过表达区,可以观察有效参数维度:若参数数量远超训练样本数,或损失曲面出现大量近似零曲率的平坦方向,说明模型有大量“闲置自由度”去记忆噪声。此时应优先考虑减少层数、加入参数正则或使用数据增强,而不是继续增加训练轮次。
四、典型过拟合案例展示
下面给出一个教学示例(参数与结果均为合理假设,用于说明诊断流程,非实测数据)。任务是对 4 比特的量子态做二分类,数据集共 200 个样本,训练集 160、测试集 40。ansatz 采用硬件高效结构:8 层,每层含单比特旋转 RY、RZ 与环形 CNOT 纠缠,共 8×4×2 = 64 个可训练参数。优化器用 Adam,学习率 0.05,损失为测量期望值的均方误差。
# 伪代码:诊断过拟合的关键观测点
for epoch in range(120):
L_train = evaluate(model, train_set, shots=2048)
L_test = evaluate(model, test_set, shots=2048)
gap = L_test - L_train
if epoch % 20 == 0:
F_train = tomography_fidelity(model, train_set[:8])
F_test = tomography_fidelity(model, test_set[:8])
print(epoch, L_train, L_test, gap, F_train, F_test)
假设的观测结果是:第 20 轮时 L_train=0.18、L_test=0.21,间隙 0.03,训练/测试层析保真度分别为 0.91 与 0.88,属于正常拟合;第 80 轮时 L_train=0.04、L_test=0.33,间隙扩大到 0.29,训练保真度升到 0.98,测试保真度却降到 0.74。这一组数据同时命中了表现①和②:性能差距扩大,且层析保真度在训练集与测试集之间出现明显分裂。
进一步检查表现③:64 个参数对应 160 个训练样本,参数/样本比约 0.4,看似不高,但 8 层 ansatz 的纠缠门数量使有效表达能力远超任务所需。将层数从 8 降到 3(参数降至 24)后重新训练,假设 L_train=0.12、L_test=0.15,间隙收窄到 0.03,测试层析保真度回升到 0.86。这说明过拟合的根因是表达能力过剩,而非训练不足。
L_test 波动 0.05 以上,建议每个评估点重复 5 次取均值,并同时报告标准差,避免把统计涨落误判为过拟合。把四种表现串起来看,它们构成一条从“现象”到“机理”再到“根因”的诊断链:性能差距是最先出现的警报,层析重构误差揭示模型在态层面的记忆行为,表达能力分析解释为什么会记忆,典型案例则提供可复现的验证路径。掌握这条链条,后续的正则化、数据增强与电路结构简化才有明确的着力点。