量子核、噪声与示例
量子核适合小样本监督学习、聚类、降维和异常检测;噪声组件用于评估通道噪声与读出误差对模型的影响。本页同时给出可直接运行的示例入口。
量子核
import torch
from unitarylab.library.qml.kernels import (
OverlapKernel,
kernel_matrix,
)
x = torch.tensor([
[0.0, 0.2],
[0.3, -0.1],
[0.8, 0.4],
], dtype=torch.float64)
kernel = OverlapKernel(num_qubits=2)
gram = kernel_matrix(x, kernel=kernel)
print(gram)| 能力 | 接口 |
|---|---|
| 基础核 | OverlapKernel、StatevectorFidelityKernel、ProjectedQuantumKernel |
| 监督学习 | QuantumKernelClassifier、QuantumKernelRegressor |
| 无监督学习 | QuantumKernelKMeans、QuantumKernelPCA、QuantumKernelAnomalyDetector |
| 矩阵工具 | kernel_matrix()、center_kernel()、closest_psd_matrix()、kernel_target_alignment() |
训练 Gram 矩阵应为方阵;预测时交叉核矩阵的第二维必须对应训练样本。有限 shots 或数值误差可能使矩阵不完全对称正半定,可先对称化并使用 closest_psd_matrix() 修正。
噪声与读出误差
from unitarylab.library.qml.noise import (
DepolarizingChannel,
NoiseModel,
ReadoutErrorModel,
mitigate_readout_probabilities,
)
noise = NoiseModel()
noise.add(DepolarizingChannel(probability=0.01), wires=(0, 1))内置通道包括 BitFlipChannel、PhaseFlipChannel、AmplitudeDampingChannel 和 DepolarizingChannel。NoiseModel 将通道与线路位置或门条件关联;ReadoutErrorModel 描述测量混淆,mitigate_readout_probabilities() 用校准模型校正概率。
概率参数必须在有效区间内。误差缓解可能产生小的负分量或放大统计噪声,输出应检查归一化和物理范围。噪声模型不能替代真实设备标定;比较模型时应同时报告无噪声基线、shots 和随机种子。
PyTorch 集成示例
import torch
from unitarylab.library.qml.examples.classification import build_classifier
module = build_classifier("reuploading", seed=0)
x = torch.zeros((2, 4), dtype=torch.float64)
logits = module(x)
print(logits.shape)示例子包提供以下入口:
| 场景 | 模块 |
|---|---|
| 分类 | qml.examples.classification |
| 回归 | qml.examples.regression |
| 生成建模 | qml.examples.generative |
| QGAN | qml.examples.qgan |
| 连续变量 QNN | qml.examples.cvqnn |
| 异常检测 | qml.examples.anomaly_detection |
| 小型数据集 | qml.examples.datasets |
示例适合验证安装和工作流,不代表针对具体数据集的最优超参数。生产训练应独立划分验证集、记录实验配置,并逐步扩大数据量和线路规模。
常见错误
- 特征数与编码层要求不一致:先缩放、选择或补齐特征。
- PyTorch 输入与模型参数 dtype/device 不一致:在训练前统一转换。
- 分类标签不是整数类别索引,或类别数与输出维度不一致。
- shots 太小导致核矩阵和梯度波动过大。
- 在测试集上选择核、噪声强度或模型超参数,造成数据泄漏。
相关页面
最后更新于