3. 量子态编码与数据表示方法
量子异常检测模型的第一道工程决策,往往不是选什么量子线路结构,而是如何把一条经典特征向量变成量子态。编码方式决定了量子态中承载了多少原始信息、需要多深的线路来制备它,以及在含噪声中等规模量子(NISQ)设备上还能保留多少可用信号。本节围绕振幅编码、角度编码和基编码三类主流策略,讨论它们的数学形式、信息保真度特征与线路深度代价,并给出可落地的选择依据。
三类编码的数学形式与制备代价
振幅编码把归一化后的经典向量直接映射为量子态的复振幅:给定特征向量 x ∈ ℝN,先做 x ← x/‖x‖,再令 |ψ⟩ = Σi xi|i⟩。它的信息密度最高——n 个量子比特可承载 2n 个特征分量,理论上 10 个量子比特就能装下 1024 维特征。但代价在于制备:把任意实向量加载为振幅需要受控旋转与多控门级联,通用制备线路深度约为 O(2n),即便采用 Mottonen 等优化分解,深度仍随维度快速上升。在含噪设备上,深线路带来的门错误会直接侵蚀振幅中编码的细微差异,而异常检测恰恰依赖这些细微差异。
角度编码(又称旋转编码)把每个特征分量映射为一个量子比特的旋转角:|ψi⟩ = cos(θi/2)|0⟩ + sin(θi/2)|1⟩,其中 θi = xi(或经缩放后的值)。n 个特征需要 n 个量子比特,线路只需一层单比特 RY 门,深度为 O(1)(并行执行时)或 O(n)(串行时)。它的信息容量是线性的,但制备极浅、对噪声友好,且特征与量子比特一一对应,便于在后续线路中对特定特征做受控操作。代价是特征值必须落在可分辨的角度区间内,且需要预先做缩放与截断。
基编码把经典离散值直接映射为计算基态:例如将类别标签 0/1/2 映射为 |00⟩、|01⟩、|10⟩,或将一个特征区间离散化后用二进制串表示。它不需要任何旋转门,制备深度几乎为零,读取时也只需测量计算基。但基编码只能表达离散、有限精度的信息,连续特征必须先量化,量化误差会直接成为异常检测的漏报来源。
信息保真度:编码损失从哪里来
“保真度”在这里指编码后的量子态在多大程度上保留了原始特征中区分正常与异常所需的信息。三类编码的损失机制不同,需要分别对待。
振幅编码的损失主要来自归一化。归一化会丢弃向量的模长,若异常信号恰好体现在整体幅值上(例如某传感器读数整体偏高),归一化后这一信息就消失了。工程上的补救办法是把模长单独作为一个角度特征编码到额外量子比特上,或在归一化前先做逐维标准化,让模长本身不携带判别信息。
角度编码的损失来自角度混叠与缩放。RY 门的旋转具有 2π 周期性,若特征值未缩放到 [−π, π] 区间,不同特征值可能映射到同一量子态。更隐蔽的问题是:当特征值集中在很小的区间内时,态之间的夹角极小,测量统计上难以区分。实践中通常对每个特征做 min-max 缩放至 [0, π] 或 z-score 后截断至 [−π/2, π/2],并在训练集上固定缩放参数,避免测试集分布漂移导致角度越界。
基编码的损失来自量化。把连续值分成 2k 个区间,每个区间内的差异被完全抹平。若异常表现为小幅偏移(例如温度从 25.0℃ 漂移到 25.8℃),而分箱宽度为 2℃,则该异常在编码阶段就已不可见。因此基编码更适合本身离散的特征,如设备状态码、告警等级、协议类型。
线路深度对异常检测任务的实际影响
编码线路只是整个模型的前端,后续还要接特征映射层、纠缠层和测量层。编码深度会与后续线路深度叠加,共同决定总门数。以一个 8 特征、使用角度编码的示例配置来看:编码层 8 个并行 RY 门,深度为 1;若后续接两层强纠缠层(每层含 8 个 RY 与 7 个 CNOT),总深度约为 1 + 2×(1+1) = 5 层。而同样 8 维特征改用振幅编码,仅制备线路就可能达到 20 层以上,在双比特门错误率约 10−3 量级的设备上,累积错误已足以让异常样本与正常样本的测量分布重叠。
这带来一个重要的工程判断:异常检测并不需要编码器保留全部信息,而需要保留“正常流形”与“异常偏离”之间的可分辨差异。因此选型时不应盲目追求信息容量最大的振幅编码,而应优先保证编码后态之间的区分度在噪声下仍然可测。一个可操作的验证方法是:取正常样本与注入异常的样本各若干条,分别编码后用同一测量基做多次采样,统计两类样本测量结果的分布重叠程度;若重叠严重,说明编码或后续线路需要调整。
一个可执行的编码选型与验证流程
下面给出一个可直接套用的选型检查流程,适用于表格型工业数据或网络流量特征的异常检测场景。示例参数为合理假设,实际使用时需替换为真实数据统计值。
输入:特征矩阵 X(示例:2000 条样本 × 12 维)
步骤 1 特征分类
- 连续特征:10 维(温度、压力、流量等)
- 离散特征:2 维(设备状态码 0-3、告警等级 0-2)
步骤 2 维度与设备约束
- 可用量子比特:8
- 双比特门错误率:约 1e-3
- 目标总线路深度:≤ 12 层
步骤 3 编码决策
- 10 维连续特征 → 先 PCA 降至 6 维 → 角度编码(6 qubit)
- 2 维离散特征 → 基编码(2 qubit,状态码用 2 bit,告警等级用 1 bit 并复用)
- 合计 8 qubit,编码层深度 = 1
步骤 4 保真度验证
- 取正常样本 100 条、注入异常样本 100 条
- 编码后统一测量 Z 基,每样本采样 1024 shots
- 计算两类样本测量比特串分布的 JS 散度
- 判据:JS 散度 > 0.3 视为可分辨;否则调整缩放区间或增加编码层
步骤 5 记录
- 固定缩放参数(均值、标准差、分箱边界)并随模型版本存档
该流程的关键在于步骤 4:它把“编码是否够用”从主观判断变成了可测量的指标。JS 散度低于阈值时,优先检查缩放区间是否过窄、分箱是否过粗,而不是直接加深后续线路——后者往往只是用更多噪声换取边际收益。
常见误区与排障要点
- 归一化与标准化混用:振幅编码要求 L2 归一化,角度编码通常要求逐维标准化,两者不能互换。若在振幅编码前误用 z-score,向量模长不再为 1,制备出的态与预期不符。
- 缩放参数在测试集上重算:角度编码的缩放边界必须来自训练集。若测试时重新计算 min/max,异常样本的极端值会把正常样本压缩到极窄角度区间,导致漏报。
- 忽视测量基与编码的匹配:角度编码后的信息主要分布在 X/Y 基的期望值上,若后续只测 Z 基,可能读不出编码的差异。应在设计阶段就确定测量方案。
- 基编码分箱边界漂移:分箱边界应作为模型资产固化,数据分布缓慢漂移时需定期复核,否则异常会落入与正常样本相同的箱内。
编码策略的选择本质上是信息容量与可制备性之间的权衡。在当前的硬件条件下,优先保证“编码后的差异在噪声中可测”,比追求理论上的信息密度更有实际价值。后续的特征映射与测量设计,都应建立在编码阶段已经验证过保真度的基础之上。