本站内容由 AI 生成,可能存在错误。如发现问题,欢迎到 GitHub Issues 反馈。

Kernel 矩阵与再生核:数据定义的给定算子

Kernel 矩阵与再生核:数据定义的给定算子

更新于 2026-04-23

上一篇我们在图上做随机游走,生成节点序列以学习嵌入。图的转移矩阵是由离散的边定义的算子——两个节点之间有没有连接,决定了概率能否流过去。但如果数据不在图上,而是分布在连续的 Rd\mathbb{R}^d 空间中呢?我们需要一种方式来度量任意两个点之间的”相似度”,并将这种相似度编码为一个矩阵。

这就是 kernel 矩阵(kernel matrix)的角色。给定 nn 个数据点 x1,,xnRd\mathbf{x}_1, \ldots, \mathbf{x}_n \in \mathbb{R}^d 和一个核函数(kernel function)k:Rd×RdRk: \mathbb{R}^d \times \mathbb{R}^d \to \mathbb{R},kernel 矩阵 KRn×nK \in \mathbb{R}^{n \times n} 定义为:

Kij=k(xi,xj)K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)

KK 是 Part 2 三族算子矩阵中的第三族——相似度矩阵。在算子全景中我们预告过:KK 乘以一个向量 f\mathbf{f} 就是对函数 ff 做一次”加权平均”——每个点的新值是所有点的值按相似度加权求和。它既是数据定义的,又是一个算子。

本文将从 kernel 矩阵的构造出发,建立 Mercer 定理的严格陈述,揭示 kernel trick 的矩阵本质(K=ΦΦTK = \Phi\Phi^T),连接回 Art. 6 PCA 推广出 Kernel PCA,简述 Gaussian Process 中 K1K^{-1} 的核心角色,并讨论 Cholesky 分解在高效求解中的作用。

为什么 kernel 矩阵重要

Art. 6 PCA 中我们看到了 PCA 的局限:它只能捕获线性关系。如果数据分布在一个弯曲的流形上(如”瑞士卷”),线性投影会把本该分开的结构混在一起。

核心困境是:许多强大的线性方法(PCA、线性回归、SVM 的线性版本)依赖于内积 xi,xj\langle \mathbf{x}_i, \mathbf{x}_j \rangle。如果数据的结构是非线性的,直接用原始空间的内积就不够。

Kernel 方法的核心洞察:不要试图在原始空间中发明非线性算法。而是把数据通过一个非线性映射 ϕ:RdH\phi: \mathbb{R}^d \to \mathcal{H} 送入一个高维(甚至无穷维)的特征空间 H\mathcal{H},在那里用线性方法。关键是——我们从不需要显式计算 ϕ(x)\phi(\mathbf{x}),只需要计算特征空间中的内积 ϕ(xi),ϕ(xj)\langle \phi(\mathbf{x}_i), \phi(\mathbf{x}_j) \rangle,而这正是核函数 k(xi,xj)k(\mathbf{x}_i, \mathbf{x}_j) 提供的。

下面的示意图展示了这个核心思路的几何直觉:原始空间中不可线性分离的数据,经过非线性映射 ϕ\phi 被”提升”到高维空间后变成线性可分的——而 kernel trick 让我们绕过显式计算 ϕ\phi

Kernel Trick 的几何直觉:从不可分到可分
非线性映射 φ 将数据送入高维空间,原本缠绕的结构变成线性可分
原始空间 R²线性不可分 ✗φ特征映射特征空间 Hx₁‖x‖²线性可分 ✓k(x, y) = ⟨φ(x), φ(y)⟩ → K = ΦΦᵀ → 无需显式计算 φ

三种常见核函数

三种核函数的响应曲线线性核k(x,y) = xᵀyφ(x) = x(恒等映射)多项式核 (p=2)k(x,y) = (xᵀy+1)²φ: ℝ² → ℝ⁶(交叉项)高斯/RBF 核k(x,y) = exp(-‖x-y‖²/2σ²)φ: ℝᵈ → ℝ∞(无穷维)特征空间维度递增:有限维 → 无穷维

在定义 kernel 矩阵之前,先介绍三种最常用的核函数。设 x,yRd\mathbf{x}, \mathbf{y} \in \mathbb{R}^d

线性核(Linear Kernel):

k(x,y)=xTyk(\mathbf{x}, \mathbf{y}) = \mathbf{x}^T \mathbf{y}

最简单的核——就是原始空间的内积。对应的特征映射是恒等映射 ϕ(x)=x\phi(\mathbf{x}) = \mathbf{x}。Kernel 矩阵退化为 Gram 矩阵 K=XXTK = X X^T

多项式核(Polynomial Kernel):

k(x,y)=(xTy+c)pk(\mathbf{x}, \mathbf{y}) = (\mathbf{x}^T \mathbf{y} + c)^p

其中 c0c \geq 0 是常数,pNp \in \mathbb{N} 是阶数(degree)。当 p=2,c=1p = 2, c = 1 时,对二维输入 x=(x1,x2)\mathbf{x} = (x_1, x_2),对应的显式特征映射为:

ϕ(x)=(x12,  x22,  2x1x2,  2x1,  2x2,  1)T\phi(\mathbf{x}) = (x_1^2, \; x_2^2, \; \sqrt{2}\,x_1 x_2, \; \sqrt{2}\,x_1, \; \sqrt{2}\,x_2, \; 1)^T

可以验证 ϕ(x)Tϕ(y)=(x1y1+x2y2+1)2=k(x,y)\phi(\mathbf{x})^T \phi(\mathbf{y}) = (x_1 y_1 + x_2 y_2 + 1)^2 = k(\mathbf{x}, \mathbf{y})。原始的 2 维空间被映射到了 6 维——所有二次交叉项都出现了。

高斯核 / RBF 核(Gaussian / Radial Basis Function Kernel):

k(x,y)=exp ⁣(xy22σ2)k(\mathbf{x}, \mathbf{y}) = \exp\!\left(-\frac{\|\mathbf{x} - \mathbf{y}\|^2}{2\sigma^2}\right)

其中 σ>0\sigma > 0 是带宽参数(bandwidth)。RBF 核的特征空间是无穷维的——ϕ\phi 映射到一个无穷维的 Hilbert 空间。直觉上,σ\sigma 控制”相似”的范围:σ\sigma 小时只有非常近的点才有显著的核值,σ\sigma 大时远处的点也有不小的核值。

可视化:Kernel 矩阵的结构

下面的交互组件展示了一个包含两个聚类的 2D 点云(点 0–4 和点 5–9)在三种核函数下的 KK 矩阵热力图,以及对应的特征值衰减。

选择核函数:
K 矩阵00112233445566778899特征值衰减λ3.71λ3.36λ1.09λ1.06λ0.45λ0.14λ0.10λ0.05λ0.04λ₁₀0.02虚线框标记两个聚类(点 0–4 与 5–9)。调整核函数观察矩阵结构变化。

观察要点

  • 线性核K=XXTK = XX^T,矩阵值反映数据的欧氏内积。右下角(远离原点的聚类)数值更大,因为内积更大。
  • 多项式核:交叉项放大了聚类内部的相似性,块状结构更明显。
  • RBF 核:块对角结构非常突出——同一聚类内部的点核值接近 1,不同聚类之间核值接近 0。调节 σ\sigmaσ\sigma 小时矩阵趋于单位阵(只有自己和自己相似);σ\sigma 大时趋于全 1 矩阵(所有点都相似)。
  • 特征值衰减:对所有核,特征值都是非负的(正半定),且快速衰减。RBF 核的衰减最快——大部分”信息”集中在前几个特征值中。

Mercer 定理:正定核与特征映射

Mercer 定理:两种等价视角函数空间视角k(x,y) = Σᵢ λᵢ eᵢ(x)eᵢ(y)λ₀₀λ₀₁λ₀₂λ₀₃λ₀₄λᵢ ≥ 0,快速衰减矩阵视角K = ΦΦᵀKn×n=Φn×mΦᵀm×nm 可以是 ∞正定核 k ⟺ 存在特征映射 φ 使得 k(x,y) = ⟨φ(x), φ(y)⟩ — 核函数就是高维内积

现在我们要回答一个根本问题:什么样的函数 kk 可以作为核函数? 答案是 Mercer 定理——kernel 方法的理论基石。

正定核的定义

定义:一个对称函数 k:X×XRk: \mathcal{X} \times \mathcal{X} \to \mathbb{R}(即 k(x,y)=k(y,x)k(\mathbf{x}, \mathbf{y}) = k(\mathbf{y}, \mathbf{x}))称为正定核(positive definite kernel),如果对任意有限点集 {x1,,xn}X\{\mathbf{x}_1, \ldots, \mathbf{x}_n\} \subset \mathcal{X},由 Kij=k(xi,xj)K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j) 定义的矩阵 KK 都是半正定的

i=1nj=1ncicjk(xi,xj)0cRn,  nN,  x1,,xnX\sum_{i=1}^{n}\sum_{j=1}^{n} c_i c_j \, k(\mathbf{x}_i, \mathbf{x}_j) \geq 0 \quad \forall\, \mathbf{c} \in \mathbb{R}^n, \; \forall\, n \in \mathbb{N}, \; \forall\, \mathbf{x}_1, \ldots, \mathbf{x}_n \in \mathcal{X}

换言之:无论你怎么选数据点,生成的 kernel 矩阵 KK 都是半正定的。

Mercer 定理

定理(Mercer, 1909):设 X\mathcal{X}Rd\mathbb{R}^d 中的紧集,k:X×XRk: \mathcal{X} \times \mathcal{X} \to \mathbb{R} 是连续的对称函数。则 kk 是正定核,当且仅当存在一个特征空间 H\mathcal{H}(Hilbert 空间)和一个映射 ϕ:XH\phi: \mathcal{X} \to \mathcal{H},使得:

k(x,y)=ϕ(x),ϕ(y)Hk(\mathbf{x}, \mathbf{y}) = \langle \phi(\mathbf{x}), \phi(\mathbf{y}) \rangle_{\mathcal{H}}

等价地,kk 承认一个谱展开

k(x,y)=i=1λiei(x)ei(y)k(\mathbf{x}, \mathbf{y}) = \sum_{i=1}^{\infty} \lambda_i \, e_i(\mathbf{x}) \, e_i(\mathbf{y})

其中 λi0\lambda_i \geq 0 是非负特征值,{ei}\{e_i\}L2(X)L^2(\mathcal{X}) 中的正交特征函数,级数绝对一致收敛。

逐项理解

  • “当且仅当”:这是一个充要条件。正定性完全等价于特征映射的存在。
  • ϕ\phi 可以是无穷维的:对于 RBF 核,H\mathcal{H} 是无穷维 Hilbert 空间,ϕ(x)\phi(\mathbf{x}) 是一个无穷维向量。
  • 谱展开:这是核函数的”特征分解”。与矩阵的谱分解 A=iλiqiqiTA = \sum_i \lambda_i \mathbf{q}_i \mathbf{q}_i^TArt. 2 特征分解)完全类比——只是从有限维推广到了函数空间。
  • λi0\lambda_i \geq 0:所有特征值非负,这正是正半定性的函数空间版本。

Mercer 定理的矩阵含义

对于有限数据集,Mercer 定理意味着:如果 kk 是正定核,则对任意 nn 个点生成的 KK 矩阵,都存在分解:

K=ΦΦTK = \Phi \Phi^T

其中 ΦRn×m\Phi \in \mathbb{R}^{n \times m}mm 可能是 \infty),第 ii 行是 ϕ(xi)T\phi(\mathbf{x}_i)^T

这意味着 KK每一个元素都是高维空间中的内积:

Kij=ϕ(xi)Tϕ(xj)K_{ij} = \phi(\mathbf{x}_i)^T \phi(\mathbf{x}_j)

Kernel Trick 的矩阵视角

Kernel Trick 的矩阵视角原始空间 ℝᵈXn×dGramGXXᵀGᵢⱼ=xᵢᵀxⱼkernel trickxᵢᵀxⱼ → k(xᵢ,xⱼ)特征空间 𝓗(可无穷维)Φn×mKΦΦᵀKᵢⱼ=k(xᵢ,xⱼ)不需要构造 Φ!复杂度只取决于 n所有只涉及内积 xᵢᵀxⱼ 的算法(PCA、SVM、岭回归),都可以用 K 替换 G 来"升维"

有了 K=ΦΦTK = \Phi\Phi^T,kernel trick 的本质变得清晰:

Kernel trick:任何只通过内积 xiTxj\mathbf{x}_i^T \mathbf{x}_j 使用数据的算法,都可以用 k(xi,xj)k(\mathbf{x}_i, \mathbf{x}_j) 替换内积,从而隐式地在高维特征空间中工作。

在矩阵语言中:原始数据矩阵 XRn×dX \in \mathbb{R}^{n \times d} 的 Gram 矩阵是 G=XXTG = XX^TGij=xiTxjG_{ij} = \mathbf{x}_i^T \mathbf{x}_j)。Kernel trick 把 GG 替换为 KK

G=XXTK=ΦΦTG = XX^T \quad \longrightarrow \quad K = \Phi\Phi^T

所有依赖 GG 的计算——PCA、SVM、岭回归——自动升级为在高维特征空间中工作,而计算复杂度只取决于 nn(数据点数),不取决于 mm(特征空间维度,可以是无穷)。

这是一个深刻的矩阵洞察:我们从不需要构造 Φ\Phi,只需要 ΦΦT=K\Phi\Phi^T = K 就像 SVD 中我们可以只用 AATAA^T 而不需要显式构造 AA 的某些分解一样(Art. 3 SVD)。

Kernel PCA:连接 Part 1

PCA(Art. 6 PCA)在协方差矩阵上做特征分解。标准 PCA 是线性的——但如果我们先用 ϕ\phi 把数据映射到高维空间,再做 PCA 呢?

从线性 PCA 到 Kernel PCA

标准 PCA 对中心化数据矩阵 X~Rn×d\tilde{X} \in \mathbb{R}^{n \times d} 的协方差矩阵 C=1n1X~TX~C = \frac{1}{n-1}\tilde{X}^T\tilde{X} 做特征分解。

在特征空间中,数据变为 Φ=[ϕ(x1),,ϕ(xn)]TRn×m\Phi = [\phi(\mathbf{x}_1), \ldots, \phi(\mathbf{x}_n)]^T \in \mathbb{R}^{n \times m}(假设已中心化),协方差矩阵变为:

Cϕ=1n1ΦTΦRm×mC_\phi = \frac{1}{n-1}\Phi^T\Phi \in \mathbb{R}^{m \times m}

mm 是无穷维时,直接处理 CϕC_\phi 不可行。但回忆 Art. 6 PCA 中的 Turk-Pentland 技巧:当 nmn \ll m 时,我们转而处理 n×nn \times n 的矩阵 ΦΦT\Phi\Phi^T

Cϕv=λvC_\phi \mathbf{v} = \lambda \mathbf{v} 是特征空间中协方差矩阵的特征值问题。左乘 Φ\Phi 后可以证明:

1n1ΦΦT(Φv)=λ(Φv)\frac{1}{n-1}\Phi\Phi^T (\Phi \mathbf{v}) = \lambda (\Phi \mathbf{v})

1n1Kα=λα\frac{1}{n-1}K \boldsymbol{\alpha} = \lambda \boldsymbol{\alpha},其中 K=ΦΦTK = \Phi\Phi^T 是 kernel 矩阵,α=Φv\boldsymbol{\alpha} = \Phi \mathbf{v}

下图展示了 Kernel PCA 的完整流程——注意自始至终 ϕ\phi 都没有出现,所有计算只涉及 n×nn \times n 的核矩阵 KK

Kernel PCA 流程:全程只需核矩阵 K
无需显式计算 φ(x),复杂度从 O(m³) 降到 O(n³)
数据点x₁, …, xₙ ∈ Rᵈ计算核矩阵Kᵢⱼ = k(xᵢ, xⱼ)中心化 + 特征分解K̃ αᵢ = nλᵢ αᵢ投影坐标αᵢ = i-th PC关键:φ 从未出现——所有计算只涉及 K ∈ Rⁿˣⁿ

Kernel PCA 算法(Schölkopf, Smola & Müller, 1998):

  1. 计算 kernel 矩阵 Kij=k(xi,xj)K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)
  2. 中心化 kernel 矩阵:K~=K1n11TKK1n11T+1n211TK11T\tilde{K} = K - \frac{1}{n}\mathbf{1}\mathbf{1}^T K - K \frac{1}{n}\mathbf{1}\mathbf{1}^T + \frac{1}{n^2}\mathbf{1}\mathbf{1}^T K \mathbf{1}\mathbf{1}^T
  3. K~\tilde{K} 做特征分解:K~αi=nλiαi\tilde{K}\boldsymbol{\alpha}_i = n\lambda_i \boldsymbol{\alpha}_i
  4. 数据点在第 ii 个核主成分上的投影坐标为 αi\boldsymbol{\alpha}_i(归一化后)

关键对比

标准 PCAKernel PCA
数据空间原始 Rd\mathbb{R}^d特征空间 H\mathcal{H}(可无穷维)
核心矩阵C=1n1XTXRd×dC = \frac{1}{n-1}X^TX \in \mathbb{R}^{d \times d}K=ΦΦTRn×nK = \Phi\Phi^T \in \mathbb{R}^{n \times n}
计算复杂度O(d3)O(d^3)O(nd2)O(nd^2)O(n3)O(n^3)(与特征维度无关)
能力线性子空间非线性流形

Kernel PCA 完美体现了 kernel trick 的威力:复杂度从 O(m3)O(m^3)(无穷!)降到 O(n3)O(n^3),所有操作只涉及 KK

Gaussian Process:kernel 矩阵求逆

Gaussian Process 回归:K⁻¹ 的核心角色① 构造核矩阵Kᵢⱼ = k(xᵢ,xⱼ)② Cholesky 分解K + σ²I = LLᵀL 是下三角矩阵O(n³/3)③ 求解 αLLᵀα = y前向/后向替代O(n²)④ 预测μ* = k*ᵀασ²* = k** -k*ᵀ(K+σ²I)⁻¹k*核心瓶颈:Cholesky 分解 O(n³/3) — 从不直接计算 K⁻¹,而是通过三角求解副产品:log det(K+σ²I) = 2Σlog Lᵢᵢ — 用于超参数优化(边际似然)对比 Art. 17 Kalman 滤波:两者都用矩阵求逆实现最优估计

Gaussian Process(GP,高斯过程)是 kernel 方法的贝叶斯版本。如果 kernel 方法的核心是”用 KK 编码相似度”,那么 GP 的核心是”用 K1K^{-1} 做推断”。

GP 回归的核心公式

给定训练数据 {(xi,yi)}i=1n\{(\mathbf{x}_i, y_i)\}_{i=1}^n,GP 假设函数值 y=(y1,,yn)T\mathbf{y} = (y_1, \ldots, y_n)^T 服从多元高斯分布:

yN(0,  K+σn2I)\mathbf{y} \sim \mathcal{N}(\mathbf{0}, \; K + \sigma_n^2 I)

其中 Kij=k(xi,xj)K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j) 是核矩阵,σn2\sigma_n^2 是观测噪声方差。

对于新输入 x\mathbf{x}_*,预测均值和方差为(Rasmussen & Williams, 2006, Chapter 2):

μ=kT(K+σn2I)1y\mu_* = \mathbf{k}_*^T (K + \sigma_n^2 I)^{-1} \mathbf{y}

σ2=k(x,x)kT(K+σn2I)1k\sigma_*^2 = k(\mathbf{x}_*, \mathbf{x}_*) - \mathbf{k}_*^T (K + \sigma_n^2 I)^{-1} \mathbf{k}_*

其中 k=(k(x,x1),,k(x,xn))T\mathbf{k}_* = (k(\mathbf{x}_*, \mathbf{x}_1), \ldots, k(\mathbf{x}_*, \mathbf{x}_n))^T 是新点与训练点之间的核向量。

矩阵视角的关键观察

  • 预测完全由 K1K^{-1}(准确说是 (K+σn2I)1(K + \sigma_n^2 I)^{-1})决定。核矩阵编码了数据点之间的先验相似度,它的逆编码了”去相关后”的信息贡献。
  • 计算瓶颈是 n×nn \times n 矩阵的求逆,复杂度 O(n3)O(n^3)。这限制了 GP 的规模——当 nn 超过几万时,朴素 GP 变得不可行。
  • σn2I\sigma_n^2 I 的加入既有物理意义(观测噪声),也有数值作用——它确保矩阵严格正定,避免数值奇异性。

Cholesky 分解在 GP 中的角色

实践中从不直接计算 K1K^{-1}。对于正定矩阵 K+σn2IK + \sigma_n^2 I,标准做法是 Cholesky 分解(Cholesky decomposition):

K+σn2I=LLTK + \sigma_n^2 I = LL^T

其中 LL 是下三角矩阵。然后通过前向/后向替代(forward/backward substitution)求解 LLTα=yL L^T \boldsymbol{\alpha} = \mathbf{y},得到 α=(K+σn2I)1y\boldsymbol{\alpha} = (K + \sigma_n^2 I)^{-1}\mathbf{y}

Cholesky 分解的优势:

  • 数值稳定:利用了正定性,不会产生主元为零的问题
  • 效率O(n3/3)O(n^3/3),比一般的 LU 分解快一倍
  • 副产品logdet(K+σn2I)=2ilogLii\log \det(K + \sigma_n^2 I) = 2 \sum_i \log L_{ii},这是 GP 边际似然(marginal likelihood)的核心项,用于超参数优化

在 Rasmussen & Williams (2006) 的标准 GP 实现中(Algorithm 2.1),Cholesky 分解是第一步——它是 GP 高效实现的基石。

数值例子:RBF Kernel 矩阵的构造与谱

数值例子:3 个一维点的 RBF Kernel 矩阵数据点x=0x=1x=3σ = 1k(xᵢ,xⱼ) = exp(-(xᵢ-xⱼ)²/2)x₁,x₂ 近 → K₁₂=0.607 大;x₁,x₃ 远 → K₁₃=0.011 小K1.0000.6070.0110.6071.0000.1350.0110.1351.000✓ 对称 ✓ 正定(所有顺序主子式 > 0)特征值1.68λ0.93λ0.39λΣλᵢ = 3.00 = tr(K) ✓

为了具体化上述理论,我们手算一个小例子。

数据:3 个一维点 x1=0,x2=1,x3=3x_1 = 0, \, x_2 = 1, \, x_3 = 3。核函数:RBF,σ=1\sigma = 1

k(xi,xj)=exp ⁣((xixj)22)k(x_i, x_j) = \exp\!\left(-\frac{(x_i - x_j)^2}{2}\right)

计算 KK 矩阵(利用对称性 Kij=KjiK_{ij} = K_{ji},只需算上三角):

K11=e0=1,K12=e1/20.607,K13=e9/20.011K_{11} = e^{0} = 1, \quad K_{12} = e^{-1/2} \approx 0.607, \quad K_{13} = e^{-9/2} \approx 0.011

K22=1,K23=e4/2=e20.135K_{22} = 1, \quad K_{23} = e^{-4/2} = e^{-2} \approx 0.135

K33=1K_{33} = 1

K=[10.6070.0110.60710.1350.0110.1351]K = \begin{bmatrix} 1 & 0.607 & 0.011 \\ 0.607 & 1 & 0.135 \\ 0.011 & 0.135 & 1 \end{bmatrix}

验证正半定性:计算特征多项式(或利用 Sylvester 判据——所有顺序主子式非负):

  • K11=1>0K_{11} = 1 > 0
  • det[10.6070.6071]=10.368=0.632>0\det\begin{bmatrix}1 & 0.607 \\ 0.607 & 1\end{bmatrix} = 1 - 0.368 = 0.632 > 0
  • det(K)1(10.018)0.607(0.6070.0015)+0.011(0.0820.011)0.9820.368+0.0010.615>0\det(K) \approx 1(1 - 0.018) - 0.607(0.607 - 0.0015) + 0.011(0.082 - 0.011) \approx 0.982 - 0.368 + 0.001 \approx 0.615 > 0

所有顺序主子式为正,KK 不仅半正定,而且正定。这与 RBF 核对不同点生成正定矩阵的已知性质一致(Micchelli, 1986)。

谱结构:通过数值计算,特征值约为 λ11.68,λ20.93,λ30.39\lambda_1 \approx 1.68, \, \lambda_2 \approx 0.93, \, \lambda_3 \approx 0.39。注意 λ1+λ2+λ3=3=tr(K)\lambda_1 + \lambda_2 + \lambda_3 = 3 = \text{tr}(K)(RBF 核的对角元素全为 1,迹等于 nn),这与 Art. 2 特征分解 中”特征值之和等于迹”一致。

Kernel Trick 的矩阵代数:K=ΦΦTK = \Phi\Phi^T

让我们用多项式核的具体例子看 K=ΦΦTK = \Phi\Phi^T 是如何工作的。

取 2D 数据点 x1=(1,0)T,x2=(0,1)T\mathbf{x}_1 = (1, 0)^T, \, \mathbf{x}_2 = (0, 1)^T,使用二次多项式核 k(x,y)=(xTy+1)2k(\mathbf{x}, \mathbf{y}) = (\mathbf{x}^T\mathbf{y} + 1)^2

直接计算 KK

K11=(11+00+1)2=4K_{11} = (1 \cdot 1 + 0 \cdot 0 + 1)^2 = 4

K12=K21=(10+01+1)2=1K_{12} = K_{21} = (1 \cdot 0 + 0 \cdot 1 + 1)^2 = 1

K22=(00+11+1)2=4K_{22} = (0 \cdot 0 + 1 \cdot 1 + 1)^2 = 4

K=[4114]K = \begin{bmatrix}4 & 1 \\ 1 & 4\end{bmatrix}

通过 Φ\Phi 计算:显式特征映射 ϕ(x)=(x12,x22,2x1x2,2x1,2x2,1)T\phi(\mathbf{x}) = (x_1^2, x_2^2, \sqrt{2}x_1 x_2, \sqrt{2}x_1, \sqrt{2}x_2, 1)^T

ϕ(x1)=(1,0,0,2,0,1)T,ϕ(x2)=(0,1,0,0,2,1)T\phi(\mathbf{x}_1) = (1, 0, 0, \sqrt{2}, 0, 1)^T, \quad \phi(\mathbf{x}_2) = (0, 1, 0, 0, \sqrt{2}, 1)^T

Φ=[100201010021]\Phi = \begin{bmatrix}1 & 0 & 0 & \sqrt{2} & 0 & 1 \\ 0 & 1 & 0 & 0 & \sqrt{2} & 1\end{bmatrix}

ΦΦT=[1+0+0+2+0+10+0+0+0+0+10+0+0+0+0+10+1+0+0+2+1]=[4114]=K\Phi\Phi^T = \begin{bmatrix}1 + 0 + 0 + 2 + 0 + 1 & 0 + 0 + 0 + 0 + 0 + 1 \\ 0 + 0 + 0 + 0 + 0 + 1 & 0 + 1 + 0 + 0 + 2 + 1\end{bmatrix} = \begin{bmatrix}4 & 1 \\ 1 & 4\end{bmatrix} = K \quad ✓

两种路径得到完全相同的 KK。但 kernel trick 的价值在于:我们可以只走第一条路(直接算 KK),绕开显式构造 Φ\Phi 当核函数对应无穷维特征空间(如 RBF)时,第二条路根本走不通——但第一条路始终可行。

“核”的词源小考

“核”(kernel)这个词在数学中有多重含义,它们之间有历史联系但指代不同的概念:

  1. 零空间意义的核(Kernel of a linear map):线性映射 TT 的核 ker(T)={x:Tx=0}\ker(T) = \{\mathbf{x} : T\mathbf{x} = \mathbf{0}\},即被映射到零的所有向量。这是代数学中最基本的用法。

  2. 积分核(Integral kernel):积分变换 (Tf)(x)=k(x,y)f(y)dy(Tf)(x) = \int k(x, y) f(y) dy 中的函数 k(x,y)k(x, y)。这里的”核”是变换的”核心”——定义变换的函数。Mercer 定理中的核函数正是这个意义。

  3. 正定核 / 再生核(Positive definite kernel / Reproducing kernel):满足 Mercer 条件的对称正定函数,它在再生核 Hilbert 空间(RKHS)中充当再生核——k(,x),fH=f(x)\langle k(\cdot, \mathbf{x}), f \rangle_\mathcal{H} = f(\mathbf{x}),即用核函数可以”再生”函数在任意点的值。

  4. ML 中的 kernel:沿用了积分核的概念——核函数定义了数据点之间的相似度,kernel 矩阵是这个函数的离散化。

从积分核到正定核再到 RKHS,这条线索是 Mercer (1909) → Aronszajn (1950) → Wahba (1990) → Schölkopf & Smola (2002) 逐步建立的。

与前后文的连接

回望:Kernel 矩阵是 Part 1 工具的自然延伸

  • 特征分解Art. 2 特征分解):KK 是对称半正定矩阵,谱定理保证它有实非负特征值和正交特征向量。Kernel PCA 本质上就是对 KK 做特征分解。
  • SVDArt. 3 SVD):如果我们把 KK 看成 ΦΦT\Phi\Phi^T,那么 KK 的特征分解等价于 Φ\Phi 的 SVD 的一部分——K=UΣ2UTK = U\Sigma^2 U^T,其中 U,ΣU, \Sigma 来自 Φ=UΣVT\Phi = U\Sigma V^T
  • PCAArt. 6 PCA):Kernel PCA 是 PCA 的直接推广,将线性降维扩展到非线性流形。

前瞻:三族算子的第二、第三交汇

  • 图 LaplacianArt. 21 图 Laplacian):RBF kernel 矩阵经常被用来构造图——KijK_{ij} 作为边权,然后构建图 Laplacian L=DKL = D - K。谱聚类的第一步就是用 kernel 建图,第二步才是图 Laplacian 的特征分解。Kernel 矩阵是图 Laplacian 的上游。
  • Efficient AttentionArt. 25 Efficient Attention):Transformer 的注意力矩阵 Aij=softmax(qiTkj/d)A_{ij} = \text{softmax}(\mathbf{q}_i^T \mathbf{k}_j / \sqrt{d}) 本质上是一个 kernel 矩阵——query 和 key 的内积经过 softmax 变成非负的相似度。线性注意力(linear attention)的核心思想正是用显式特征映射 ϕ\phi 替代 softmax,使计算从 O(n2)O(n^2) 降到 O(n)O(n)——这是 kernel trick 的逆向应用。

总结与展望

本文建立了 kernel 矩阵作为”数据定义的给定算子”的完整理论框架:

  • Kernel 矩阵 Kij=k(xi,xj)K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j) 将数据点之间的相似度编码为一个对称半正定矩阵
  • Mercer 定理kk 是正定核     \iff 存在特征映射 ϕ\phi 使得 k(x,y)=ϕ(x),ϕ(y)k(\mathbf{x}, \mathbf{y}) = \langle\phi(\mathbf{x}), \phi(\mathbf{y})\rangle。核函数有谱展开 k(x,y)=iλiei(x)ei(y)k(\mathbf{x}, \mathbf{y}) = \sum_i \lambda_i e_i(\mathbf{x})e_i(\mathbf{y})
  • Kernel trickK=ΦΦTK = \Phi\Phi^T,所有只涉及内积的算法可以隐式地在高维特征空间中工作,复杂度只取决于 nn
  • Kernel PCA:对 kernel 矩阵做特征分解,将 PCA 从线性推广到非线性
  • Gaussian ProcessK1K^{-1}(通过 Cholesky 分解高效计算)是 GP 预测的核心
  • 连接全景:kernel 矩阵是 Part 1 工具(特征分解、SVD、PCA)在 Part 2 算子语境下的自然延伸,同时是图 Laplacian 和 Efficient Attention 的上游

下一篇我们转向图 Laplacian——三族算子的第二族。如果 kernel 矩阵编码的是”两点有多相似”,图 Laplacian 编码的是”两点的差异如何沿图传播”。当你用 RBF kernel 给数据建一个相似度图,再构造图 Laplacian,谱聚类的数学就自然浮现了。