1. 课程导入与全景认知
在经典机器学习中,我们把一条样本写成向量 x = (x₁, x₂, …, x_d),模型直接在这个实数空间里做线性组合、核函数或梯度更新。量子机器学习面临的第一道关卡却不同:量子线路只能对量子态施加酉变换并测量,它"看不见"经典向量。因此,任何量子模型的第一步都必须回答同一个问题——如何把经典数据变成一个量子态。这一步就是本课程的主题:量子特征映射与数据编码。
更准确地说,我们要构造一个映射 x ↦ |φ(x)⟩,把 d 维经典数据嵌入到 2ⁿ 维(n 个量子比特)的希尔伯特空间中。这个映射由参数化量子线路实现:编码线路 U(x) 作用在初态 |0…0⟩ 上,得到 |φ(x)⟩ = U(x)|0…0⟩。此后无论做量子核方法、变分分类器还是量子神经网络,后续线路都只在这个已制备好的态上工作。所以编码线路不是"预处理",而是量子模型不可分割的组成部分,它的选择直接决定了模型能表达什么、不能表达什么。
为什么不能随便选一个映射了事?因为不同的编码方式会把数据放到希尔伯特空间中完全不同的"位置",从而改变后续模型可用的核函数与决策边界。以最常用的角度编码为例,对单个特征做 RY(θ) 旋转,若取 θ = x,则两个样本的内积为 cos((x−x′)/2);若取 θ = 2x,内积变为 cos(x−x′)。同一个数据集,仅仅因为编码时的缩放系数不同,量子核的带宽、周期性和分辨能力就变了。这就是"编码即建模"的含义,也是本课程要反复训练的判断力:先想清楚数据要以什么形式进入希尔伯特空间,再谈线路设计。
围绕这一核心,本课程的技术链条可以拆成四个相互衔接的环节。第一是编码基元:单比特旋转门、受控旋转、相位门等基本积木,以及它们各自对应的数学形式。第二是编码策略:基态编码、角度编码、振幅编码、数据重上传(data re-uploading)、IQP 式编码等,它们在资源开销、表达能力和硬件友好度上各有取舍。第三是特征映射的性质分析:映射是否单射、是否引入纠缠、对应的量子核是否具有周期性或带宽限制、是否会出现"特征坍缩"。第四是与下游任务的对接:编码线路如何嵌入量子核方法或变分线路,如何与测量、优化器、噪声模型配合。下图给出这四个环节的关系全景。
理解这张地图后,就能看清本课程与相邻课程的分工。量子门与线路基础课讲"积木怎么搭",量子算法课讲"用这些态做什么任务",而本课程聚焦中间那一段:数据以何种方式、付出多少资源、获得何种表达力地进入量子态。这个定位决定了我们的学习重点不是背线路图,而是建立"数据—映射—核/特征—任务表现"之间的因果判断能力。
接下来需要建立几个贯穿全课程的基本量感。其一是维度关系:n 个量子比特的态空间是 2ⁿ 维复向量空间,而振幅编码恰好需要 2ⁿ 个实数(忽略全局相位),因此 d 个特征用振幅编码只需 n = ⌈log₂ d⌉ 个比特,这是最"省比特"的方案;代价是制备线路通常较深,且需要归一化。其二是角度编码的比特数:每个特征占一个旋转门,d 个特征至少需要 d 个门,比特数可少至 1(数据重上传时反复复用同一比特),但线路深度随特征数增长。其三是表达力与可训练性的张力:编码越"丰富"(如引入纠缠与多次重上传),对应的量子核越复杂,但也越容易遇到核矩阵集中(concentration)与梯度消失。
为了让这些抽象关系落地,我们用一个贯穿全课程的小例子建立手感。假设有一个二维二分类数据集,样本为 x = (x₁, x₂),取值在 [0, π] 内。采用角度编码,线路为:对 qubit 0 施加 RY(x₁),对 qubit 1 施加 RY(x₂),再用一个 CNOT 引入纠缠。用 Qiskit 风格伪代码表示如下(示例参数,非实测结果):
from qiskit import QuantumCircuit
import numpy as np
def encoding_circuit(x1, x2):
qc = QuantumCircuit(2)
qc.ry(x1, 0) # 特征 x1 编码到 qubit 0
qc.ry(x2, 1) # 特征 x2 编码到 qubit 1
qc.cx(0, 1) # 引入纠缠,扩展特征空间
return qc
# 两个样本的量子核(内积模平方)示例
def kernel(x, y):
qc = encoding_circuit(*x).compose(encoding_circuit(*y).inverse())
return abs(qc.statevector()[0])**2 # 仅示意,实际需模拟器
这段代码的关键不在语法,而在两个可观察的判断点。第一,编码是否单射:由于 RY(θ) 以 2π 为周期,若特征取值范围超过 2π,不同样本可能映射到同一量子态,造成信息丢失——所以实践中常把数据缩放到 [0, π] 或 [0, 2π) 并记录缩放系数。第二,纠缠是否必要:去掉 CNOT 后,量子核退化为两个单比特核的乘积,模型无法捕捉特征间的交互;加上 CNOT 后核函数出现交叉项,表达力提升,但线路深度增加、噪声影响变大。这正是"编码即建模"的具体体现。
最后说明本课程的组织逻辑与学习路径。前几章先建立基元与数学语言,让你能写出任意编码线路的态表达式;中段逐一展开角度编码、振幅编码、基态编码、数据重上传与 IQP 编码,每种方案都配以资源估算与核函数分析;随后进入性质分析专题,讨论单射性、纠缠、带宽与集中现象;再往后对接量子核方法与变分模型,并引入噪声与硬件约束;末尾用综合案例把整条链条串起来。建议的学习方式是"手算 + 小规模模拟"并行:对 1~2 个比特的线路亲手推导态向量,再用模拟器验证,这样对编码行为的直觉会比单纯阅读线路图牢固得多。
回到最初的问题:量子特征映射与数据编码,本质上是为经典数据设计一条进入希尔伯特空间的"通道"。通道的形状决定了后续量子模型能看到什么、能区分什么。本课程的目标,就是让你在设计这条通道时,既有数学上的清晰,也有工程上的分寸。