2. 对比任务定义与数据集构建
在量子模型与经典模型的公平对比中,最容易被忽视、却最影响结论可信度的环节,恰恰发生在模型训练之前——任务如何定义、数据如何划分、预处理如何执行、指标如何计算。如果量子模型和经典模型使用不同的数据子集、不同的归一化方式或不同的评估口径,那么最终的性能差异很可能来自数据层面的偏差,而非模型本身的表达能力。本节的核心目标,是建立一套量子与经典模型可共享的数据契约,使两者在完全相同的输入条件下接受检验。
一、任务定义:先锁定可比较的问题形式
公平对比的第一步是把任务定义写成与模型无关的规格说明。以分类任务为例,需要明确:输入特征维度、标签空间大小、各类别是否平衡、允许使用的特征类型(连续/离散)、以及评价的是二分类还是多分类。以回归任务为例,需要明确目标变量的取值范围、是否存在长尾分布、损失函数的形式。以生成任务为例,则需要明确生成样本的维度、评价使用的是分布距离还是下游任务指标。
这一步的关键在于:任务定义必须先于模型选型确定,并且对量子模型和经典模型完全一致。例如,若量子模型采用角度编码,其特征需要缩放到 [0, π] 或 [-π/2, π/2];而经典模型通常使用标准化到零均值、单位方差的特征。这两种预处理若各自为政,就会引入不可比性。合理的做法是:先确定一个共享的原始数据表示,再为两类模型分别定义确定性的、可复现的映射函数,并记录映射参数,使任何一方都能从同一原始样本重建出自己的输入。
二、数据集划分:共享同一份索引
数据划分是公平性最容易失守的地方。常见错误包括:量子模型因样本编码成本高而只使用小子集,经典模型却使用全量数据;或者两者使用不同的随机种子划分,导致训练集与测试集重叠情况不同。正确做法是只划分一次,生成固定的训练/验证/测试索引文件,量子与经典模型都从该索引读取样本。
对于小样本场景(量子机器学习中很常见),建议采用分层抽样保证各类别比例一致,并固定随机种子。若数据量极小,可使用多次重复的分层 K 折交叉验证,但必须保证量子与经典模型在同一组折划分上评估,报告均值与标准差,而不是各取最优折。下表给出一个可复用的划分记录示例(示例参数,非实测结果):
| 字段 | 示例值 | 作用 |
|---|---|---|
| 数据集名称 | iris-binary-v1 | 版本化标识,避免数据漂移 |
| 样本总数 | 300 | 两类各 150,分层抽样 |
| 划分比例 | 60% / 20% / 20% | 训练/验证/测试 |
| 随机种子 | 42 | 保证索引可复现 |
| 索引文件 | split_seed42.json | 双方共享读取 |
| 缺失值策略 | 中位数填充 | 仅在训练集上拟合 |
需要特别强调:任何依赖数据的预处理(如均值方差标准化、中位数填充、PCA 降维)都只能在训练集上拟合参数,再应用到验证集和测试集。若在划分前对全量数据做标准化,测试集信息会泄漏进训练过程,量子与经典模型都会虚高,且虚高程度可能不同,进一步破坏可比性。
三、预处理流程:共享骨架,分支映射
下图展示了一个推荐的数据流结构:原始数据经过统一的清洗与划分后,进入共享的预处理骨架,再分别映射为经典模型输入和量子模型输入,最终汇入同一套评估指标。图中标注了关键的“只在训练集拟合”约束和两侧的映射差异。
图中橙色环节是公平性的“闸门”:共享预处理骨架只允许在训练集上拟合参数,然后以只读方式应用到验证集与测试集。紫色与绿色分支代表两类模型各自的输入映射,它们可以不同,但必须确定性、可复现、参数留档。例如量子侧把特征线性缩放到 [-π/2, π/2] 用于角度编码,经典侧使用 StandardScaler,两者都从同一份清洗后的训练数据出发,映射参数分别保存,任何审阅者都能重放整个流程。
四、评估指标:同一口径才有可比性
指标选择要与任务类型匹配,并且对两类模型使用完全相同的计算函数。分类任务常用准确率、宏平均 F1、AUC;若类别不平衡,应优先报告宏平均 F1 与混淆矩阵,而不是只看准确率。回归任务常用 MAE、RMSE 与 R²,注意 R² 在测试集分布偏移时可能为负,需如实报告。生成任务则常用 MMD、FID 类分布距离或下游分类器准确率,关键是参考分布与评价样本集合固定。
此外,量子模型常因采样次数有限而带有统计噪声,经典模型则可能因初始化不同而波动。公平的做法是:对两类模型都运行相同次数的重复实验(例如 5 个不同随机种子),报告均值 ± 标准差,而不是挑选最好的一次结果。若量子模型受限于硬件量子比特数而必须降维,那么经典模型也应在相同降维后的特征上评估,或至少同时报告“全特征经典基线”和“同维度经典基线”两组结果,让读者看清差异来源。
五、可复现的交付物
把上述约定固化为一份可执行的配置,是保证公平对比可被审阅和复现的关键。下面给出一个配置样例(示例参数,非实测结果),量子侧与经典侧共享数据与评估部分,仅在模型输入映射处分支:
task: binary_classification
dataset: iris-binary-v1 # 300 样本,两类各 150
split:
seed: 42
train: 0.6
val: 0.2
test: 0.2
stratify: true
index_file: split_seed42.json
preprocess:
fit_on: train_only
missing: median
shared: [clean, dedup]
quantum_input:
scale: [-1.5708, 1.5708] # 角度编码范围
encoding: angle
qubits: 4
classical_input:
scaler: standard
pca: null
metrics:
primary: macro_f1
secondary: [accuracy, auc]
repeats: 5
report: mean_std
这份配置的价值在于:它把“数据层面公平”从口头承诺变成了可检查的字段。审阅者只需核对 index_file 是否被两侧共同引用、fit_on 是否为 train_only、repeats 是否一致,就能快速判断对比是否成立。任务定义、数据划分、预处理与评估指标四者环环相扣,任何一环松动,量子与经典模型的比较就会退化为两次独立实验的并置,而非真正的公平对比。