再生核希尔伯特空间
再生核希尔伯特空间(reproducing kernel Hilbert space,RKHS)是一个由函数组成的 Hilbert 空间,其中在固定点取函数值是连续线性泛函。这个条件使每次取值都能表示为与某个特定函数的内积,称为再生性质。核方法中的 Gram 矩阵、正则化和平滑,都可以由这个函数空间结构解释。
用导数能量控制一个点的函数值
在 上,考虑绝对连续、满足 且导数平方可积的实函数。定义 端点条件排除了导数为零但函数非零的常数,因此这个量是范数。映射 与 等距对应,逆映射为 ;由 完备性, 也是 Hilbert 空间。
固定 ,Cauchy–Schwarz 给出 所以点值受到整体导数能量控制,不会在范数趋零时仍保持固定高度。这正是评价泛函连续性。
核函数与再生性质
定义 。它在 时导数为一, 时为零,在单个折点处导数值不影响积分。因此 这个函数在内积中“再生”点值,二变量核为 。取 还能看到 ,上述点值界对它达到等号。
一般定义中,设 是集合 上实函数的 Hilbert 空间。若对每个 ,映射 连续,Riesz 表示定理给出唯一 ,满足 。定义 ,便有 对任意有限点集与实系数 , 所以 Gram 矩阵半正定。反方向的 Moore–Aronszajn 定理说明,对称半正定核可构造唯一相应的 RKHS;正定核在这里指每个有限 Gram 矩阵半正定,不要求所有点集都严格正定。[1]
正则化问题的有限维表示
给定数据 ,考虑 令 。任意 可分解为 ,其中 。再生性质给出 ,所以两者在训练点的误差相同,而 。只要 ,正则项就严格增大;最优函数因此必可写成 这证明了本问题的表示定理,不是预先假设最优解刚好落在有限维空间。
记 。取 ,矩阵因 而可逆。它确实给出极小解:有限维目标为 ,梯度为 ,上述选择使其为零,目标又为凸函数。即便 奇异,这个选取也成立,不需要先约去 。原函数目标严格凸,最优函数唯一;奇异核的其他系数表示可能对应同一个函数。
两个样本的完整计算
采用最小值核,样本点 ,观测值 ,取 。有 行列式为 ,故 。拟合函数为 它在两个训练点的值为 ,没有强行穿过数据;导数惩罚与拟合误差作了折中。可复核 ,残差平方和为 ,总目标为 。
有解变式只保留一个样本 ,仍取 。系数为 ,所以预测值为 ,函数范数平方为 ,目标为 。这可检验核对角值、正则参数与系数的关系。
可运行的核岭回归
代码针对实值最小值核,输入区间内样本点、目标与正参数,返回系数和预测函数,不修改输入。矩阵构造为 ,通用稠密求解约为 ,存储 ;每个新点预测为 。它展示函数空间问题如何落成有限线性系统。[2]
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与平方可积空间的区别
普通 空间把几乎处处相同的函数视为同一个元素,单个点的值可以任意修改,因此点评价并不良定义。即使选连续代表,也不能用纯 范数控制任意窄的高峰:高为一、底宽趋零的三角峰范数趋零,峰顶值仍为一。再生核条件正是排除这种不受范数控制的点值行为。
核并非任意相似度函数。非对称或产生负 Gram 二次型的相似度,不能直接充当这里的实 RKHS 核;不同核还隐含不同的函数正则性和边界结构。最小值核强制 ,若实际问题需要任意截距,应改变空间或另外加入不受惩罚的截距,而非忽略这一约束。
参考资料
- ↑ Nachman Aronszajn. “Theory of Reproducing Kernels”, Transactions of the American Mathematical Society 68 (1950), 337–404. 原论文,Part I §§1—2,特别是第 343—344 页的再生性质、点求值连续性、核的半正定性与逆向构造。
- ↑ scikit-learn developers. Kernel ridge regression,核空间中的平方损失与二范数正则。