qml.kernels

概述

该子包定义了与量子核方法相关的函数。一方面,这包括在训练和测试数据集上系统性地调用量子核以获得核矩阵的函数。另一方面,它提供了用于那些核矩阵的后处理方法,可用于缓解设备噪声和采样错误。

函数

closest_psd_matrix(K[, fix_diagonal, solver])

返回与给定核矩阵最接近的正半定矩阵。

displace_matrix(K)

通过添加单位矩阵的多倍数,从给定的核矩阵中移除负特征值。

flip_matrix(K)

通过取绝对值,从给定的核矩阵中移除负特征值。

kernel_matrix(X1, X2, kernel)

计算两个给定数据集的成对核值矩阵。

mitigate_depolarizing_noise(K, num_wires, method)

使用核矩阵的对角线条目估计去极化噪声率,并减轻噪声,假设为全局去极化噪声模型。

polarity(X, Y, kernel[, ...])

给定核函数的极性。

square_kernel_matrix(X, kernel[, ...])

计算给定数据集的成对核值的平方矩阵。

target_alignment(X, Y, kernel[, ...])

给定核函数的目标对齐。

threshold_matrix(K)

从给定的核矩阵中移除负特征值。

描述

给定一个核

\[k: \mathbb{R}^d \times \mathbb{R}^d \to \mathbb{R}, \quad (x_1, x_2)\mapsto k(x_1, x_2)\]

在训练数据集\(\{(x_1, y_1),\cdots (x_n, y_n)\}\)上,核矩阵\(k\)被定义为\(x_i\in\mathbb{R}^d\)\(y_i\in\{-1, 1\}\)

\[K_{ij} = k(x_i, x_j).\]

对于有效的核,这是一个实的对称正半定矩阵。我们还为训练数据集定义了理想核矩阵,它能够完美预测两个点是否具有相同的标签:

\[K^\ast_{ij} = y_i y_j\]

我们可以通过可以表示为两个矩阵之间的Frobenius内积的核极性来测量\(K\)\(K^\ast\)之间的相似性:

\[\operatorname{P}(k) = \langle K^\ast, K \rangle_F = \sum_{i,j=1}^n y_i y_j k(x_i, x_j)\]

此外,还有 核目标对齐,这是核极性的标准化对应物:

\[\begin{split} \operatorname{TA}(k) &= \frac{P(k)}{\lVert K^\ast \rVert_F\;\lVert K \rVert_F}\\ \lVert K\rVert_F &= \sqrt{\sum_{i,j=1}^n k(x_i, x_j)^2}\\ \lVert K^\ast\rVert_F &= \sqrt{\sum_{i,j=1}^n (y_iy_j)^2}\end{split}\]

对于每个类具有不同数量训练点的数据集,标签会根据各自类中的数据点数量进行重新缩放,以避免内核极性和内核目标对齐受到单个类的内核特性的主导。

给定一个可调用的核函数,所有这些量都可以使用本模块中的方法轻松计算。