1. 量子数据编码与特征映射工程导论
量子机器学习并不是把经典数据直接“倒进”量子计算机就能获得加速。量子处理器天然操作的是量子态:一组归一化复振幅、相位与纠缠关系。经典数据则通常以表格、图像、时间序列或图结构存在。二者之间必须经过一层工程化转换——量子数据编码(Quantum Data Encoding)与特征映射(Feature Mapping)。本课程讨论的正是这层转换的工程方法:如何把经典样本映射为量子态,如何设计可训练的特征映射,如何评估编码带来的表达能力与代价,以及如何在真实硬件约束下落地。
课程定位:连接数据工程与量子算法
可以把整个技术栈分成四层。最底层是经典数据层:原始样本、标签、特征工程结果。往上是编码层:把每个特征值编码为旋转角、振幅或相位。再往上是量子模型层:由参数化量子电路(PQC)构成的可训练模型,如变分量子分类器、量子核方法。最上层是测量与优化层:通过测量得到期望值,计算损失,再用经典优化器更新参数。
本课程的定位不是泛泛介绍量子计算,而是聚焦“数据如何进入量子模型”这一关键接口。它既涉及数学(希尔伯特空间、内积、核函数),也涉及工程(电路深度、噪声、测量次数、梯度估计)。
核心问题:编码决定了模型的上限
一个常见的误解是:只要量子电路足够深,模型就能拟合任意数据。实际上,编码方式直接决定了数据在量子态空间中的几何结构。若编码把两个不同样本映射到几乎相同的量子态,后续电路再深也难以区分它们。因此,编码设计要回答三个问题:
- 表达能力:映射后的量子态能否区分原始数据中的关键模式?
- 可训练性:参数梯度是否消失(贫瘠高原)或爆炸?
- 硬件可行性:电路深度、门数量、测量次数是否在噪声容忍范围内?
这三者往往互相制约。例如,角度编码简单但表达能力有限;振幅编码表达能力强,但制备任意量子态需要指数级深度的电路。工程实践就是在三者之间做权衡。
技术栈全景:从数据到量子态
下面这张图展示了从经典样本到量子模型输出的完整信号链。左侧是经典数据,经过特征预处理后进入编码层;编码层把每个特征映射为量子门参数;量子模型层执行参数化电路;测量层得到期望值;最后进入经典优化循环。
图中虚线回路表示经典优化器根据测量结果反向更新参数。注意:编码层中的参数可能分为两类——数据编码参数(由输入样本决定,不可训练)和可训练编码参数(如数据重上传中的缩放因子,可被优化)。区分这两类参数是工程实现中的关键。
工程实践路线图
从零开始构建一个量子编码与特征映射项目,通常经历以下阶段。这里给出一个可参考的路线,但具体项目可根据数据规模和硬件条件调整。
| 阶段 | 关键任务 | 典型输出 |
|---|---|---|
| 数据准备 | 清洗、归一化到 [-π, π] 或 [0, π],处理缺失值 | 标准化后的特征矩阵 |
| 编码方案选择 | 根据特征维度、硬件量子比特数选择角度/振幅/相位编码 | 编码电路模板 |
| 特征映射设计 | 设计数据重上传层数、纠缠拓扑、可训练缩放 | 参数化量子电路 |
| 仿真验证 | 在态矢量模拟器上验证表达能力与梯度行为 | 损失曲线、梯度方差 |
| 硬件执行 | 编译到目标后端,设置测量次数与误差缓解 | 期望值估计 |
| 迭代优化 | 联合优化编码参数与电路参数,监控贫瘠高原 | 收敛模型与评估指标 |
一个具体的教学示例
假设我们有一个二维二分类数据集,样本点分布在单位圆内,标签由半径决定:内圈为类别 0,外圈为类别 1。我们使用两个量子比特,采用角度编码:
# 角度编码示例(伪代码)
for i, x_i in enumerate(sample):
circuit.ry(2 * x_i, qubit=i) # 将特征值映射为旋转角
circuit.rz(2 * x_i, qubit=i) # 增加相位信息
# 数据重上传:重复编码层 L 次
for layer in range(L):
circuit.ry(2 * x_i, qubit=i)
circuit.cx(0, 1) # 纠缠
circuit.ry(trainable_theta[layer], qubit=i)
这里 2 * x_i 是编码缩放因子。若特征已归一化到 [-π/2, π/2],则旋转角覆盖 [-π, π],能充分利用布洛赫球。若缩放因子过小,不同样本的量子态会聚集在布洛赫球同一区域,分类边界模糊;若过大,则可能引入周期性混叠。实际工程中,缩放因子本身也可以作为可训练参数,通过梯度下降自动调整。
如何判断编码方案是否合适
可以从三个可观测指标入手。第一,核矩阵秩:计算编码后量子态之间的内积矩阵,若秩远小于样本数,说明表达能力不足。第二,梯度方差:在随机初始化下估计参数梯度,若方差随量子比特数指数衰减,说明存在贫瘠高原。第三,硬件执行保真度:比较模拟器与真实后端的期望值差异,若差异过大,说明噪声已淹没编码信号。