跳到正文
格致开物MATHWIKI

再生核希尔伯特空间

再生核希尔伯特空间(reproducing kernel Hilbert space,RKHS)是一个由函数组成的 Hilbert 空间,其中在固定点取函数值是连续线性泛函。这个条件使每次取值都能表示为与某个特定函数的内积,称为再生性质。核方法中的 Gram 矩阵、正则化和平滑,都可以由这个函数空间结构解释。

用导数能量控制一个点的函数值

在 [0,1] 上,考虑绝对连续、满足 f(0)=0 且导数平方可积的实函数。定义 ⟨f,g⟩H=∫01f′(t)g′(t)dt,‖f‖H2=∫01|f′(t)|2dt. 端点条件排除了导数为零但函数非零的常数,因此这个量是范数。映射 f↦f′ 与 L2(0,1) 等距对应,逆映射为 v↦∫0xv(t)dt;由 L2 完备性,H 也是 Hilbert 空间。

固定 x∈[0,1],Cauchy–Schwarz 给出 |f(x)|=|∫0xf′(t)dt|≤x‖f‖H. 所以点值受到整体导数能量控制,不会在范数趋零时仍保持固定高度。这正是评价泛函连续性。

核函数与再生性质

定义 Kx(t)=min⁡(t,x)。它在 t<x 时导数为一,t>x 时为零,在单个折点处导数值不影响积分。因此 ⟨f,Kx⟩H=∫0xf′(t)dt=f(x). 这个函数在内积中“再生”点值,二变量核为 K(s,t)=min⁡(s,t)。取 f=Kx 还能看到 ‖Kx‖H2=x,上述点值界对它达到等号。

三个不同取值点对应的最小值核函数先以斜率一上升再成为常数
Kₓ(t)=min(t,x),折点位于被评价的点x。导数是一段区间的指示函数,因此与f导数作内积就恢复f(x)。

一般定义中,设 H 是集合 X 上实函数的 Hilbert 空间。若对每个 x∈X,映射 f↦f(x) 连续,Riesz 表示定理给出唯一 Kx∈H,满足 f(x)=⟨f,Kx⟩H。定义 K(x,y)=Ky(x),便有 K(x,y)=⟨Ky,Kx⟩H=K(y,x). 对任意有限点集与实系数 ci, ∑i,jcicjK(xi,xj)=‖∑iciKxi‖H2≥0. 所以 Gram 矩阵半正定。反方向的 Moore–Aronszajn 定理说明,对称半正定核可构造唯一相应的 RKHS;正定核在这里指每个有限 Gram 矩阵半正定,不要求所有点集都严格正定。[1]

正则化问题的有限维表示

给定数据 (xi,yi),考虑 minf∈H∑i=1m(f(xi)−yi)2+λ‖f‖H2,λ>0. 令 S=span⁡{Kx1,…,Kxm}。任意 f 可分解为 f=g+h,其中 g∈S,h⊥S。再生性质给出 h(xi)=⟨h,Kxi⟩=0,所以两者在训练点的误差相同,而 ‖f‖H2=‖g‖H2+‖h‖H2。只要 h≠0,正则项就严格增大;最优函数因此必可写成 f(x)=∑j=1mαjK(x,xj). 这证明了本问题的表示定理,不是预先假设最优解刚好落在有限维空间。

记 Gij=K(xi,xj)。取 α=(G+λI)−1y,矩阵因 cT(G+λI)c≥λ‖c‖22 而可逆。它确实给出极小解:有限维目标为 ‖Gα−y‖2+λαTGα,梯度为 2G[(G+λI)α−y],上述选择使其为零,目标又为凸函数。即便 G 奇异,这个选取也成立,不需要先约去 G。原函数目标严格凸,最优函数唯一;奇异核的其他系数表示可能对应同一个函数。

两个样本的完整计算

采用最小值核,样本点 x1=1/4,x2=3/4,观测值 y=(1,0)T,取 λ=1/4。有 G=(1/41/41/43/4),G+λI=(1/21/41/41). 行列式为 7/16,故 α=(16/7,−4/7)T。拟合函数为 f(x)=167min⁡(x,1/4)−47min⁡(x,3/4). 它在两个训练点的值为 (3/7,1/7),没有强行穿过数据;导数惩罚与拟合误差作了折中。可复核 ‖f‖H2=αTGα=44/49,残差平方和为 17/49,总目标为 17/49+(1/4)(44/49)=4/7。

最小值核正则化拟合为分段直线,在两个观测点处分别为3/7和1/7
观测为(1/4,1)、(3/4,0),λ=1/4。三个区段的导数依次为12/7、−4/7、0;正则化允许偏离观测以减少导数能量。

有解变式只保留一个样本 x=1/2,y=1,仍取 λ=1/4。系数为 1/(1/2+1/4)=4/3,所以预测值为 2/3,函数范数平方为 (4/3)2(1/2)=8/9,目标为 1/9+(1/4)(8/9)=1/3。这可检验核对角值、正则参数与系数的关系。

可运行的核岭回归

代码针对实值最小值核,输入区间内样本点、目标与正参数,返回系数和预测函数,不修改输入。矩阵构造为 O(m2),通用稠密求解约为 O(m3),存储 O(m2);每个新点预测为 O(m)。它展示函数空间问题如何落成有限线性系统。[2]

Python 3
import numpy as np


def min_kernel_ridge(points, targets, regularization=0.25):
    x = np.array(points, dtype=float, copy=True)
    y = np.array(targets, dtype=float, copy=True)
    lam = float(regularization)
    if x.ndim != 1 or not x.size or y.shape != x.shape:
        raise ValueError("matching nonempty sample vectors required")
    if not np.isfinite(x).all() or not np.isfinite(y).all() or not np.isfinite(lam) or lam <= 0:
        raise ValueError("finite data and positive regularization required")
    if (x < 0).any() or (x > 1).any():
        raise ValueError("sample points must lie in [0,1]")
    G = np.minimum(x[:, None], x[None, :])
    alpha = np.linalg.solve(G+lam*np.eye(x.size), y)
    if not np.isfinite(alpha).all():
        raise ArithmeticError("nonfinite kernel coefficients")

    def predict(value):
        value = float(value)
        if not np.isfinite(value) or not 0 <= value <= 1:
            raise ValueError("prediction point must lie in [0,1]")
        return float(np.minimum(value, x) @ alpha)
    return alpha, predict


alpha, predict = min_kernel_ridge([0.25, 0.75], [1, 0])
print(alpha)  # [16/7, -4/7]
print(predict(0.25), predict(0.75))  # 3/7, 1/7

与平方可积空间的区别

普通 L2 空间把几乎处处相同的函数视为同一个元素,单个点的值可以任意修改,因此点评价并不良定义。即使选连续代表,也不能用纯 L2 范数控制任意窄的高峰:高为一、底宽趋零的三角峰范数趋零,峰顶值仍为一。再生核条件正是排除这种不受范数控制的点值行为。

核并非任意相似度函数。非对称或产生负 Gram 二次型的相似度,不能直接充当这里的实 RKHS 核;不同核还隐含不同的函数正则性和边界结构。最小值核强制 f(0)=0,若实际问题需要任意截距,应改变空间或另外加入不受惩罚的截距,而非忽略这一约束。

参考资料

  1. ↑ Nachman Aronszajn. “Theory of Reproducing Kernels”, Transactions of the American Mathematical Society 68 (1950), 337–404. 原论文,Part I §§1—2,特别是第 343—344 页的再生性质、点求值连续性、核的半正定性与逆向构造。
  2. ↑ scikit-learn developers. Kernel ridge regression,核空间中的平方损失与二范数正则。