第二章 核函数数学原理:再生核希尔伯特空间(RKHS)、Mercer定理、正定核与条件正定核

说实话,很多搞机器学习的同学一听到「再生核希尔伯特空间」这几个字,头皮就开始发麻。我当年也一样,第一次看到RKHS的数学定义时,心里想的是:这玩意儿跟我写代码有什么关系?

后来在项目中踩过几次坑,才明白——不理解RKHS,你调参就是瞎调。你想想看,为什么高斯核比线性核效果好?为什么某些核函数组合起来会失效?这些问题的答案,都藏在这套数学框架里。

好,咱们今天就把这块硬骨头啃下来。我会尽量用工程思维来讲,而不是纯数学推导。

2.1 从特征映射到核技巧

先回忆一下线性SVM。它只能处理线性可分的数据。但现实世界的数据,哪有那么规整?

解决办法很简单:把数据映射到高维空间。比如二维数据 (x1, x2),我加一个维度变成 (x1, x2, x1*x2, x1², x2²)。在高维空间里,原本线性不可分的数据可能就变得线性可分了。

但问题来了——高维映射的计算量太大了。尤其是当维度爆炸时,你根本算不动。

这时候核技巧就登场了。它的核心思想是:我不需要显式地计算高维映射,只需要计算两个样本在高维空间中的内积。而这个内积,可以通过一个核函数直接算出来。

核技巧的本质:用低维空间的计算量,获得高维空间的表达能力。

举个简单的例子。假设映射函数是 φ(x) = (x1², x2², √2*x1*x2),那么两个样本 φ(a) 和 φ(b) 的内积是:

φ(a)·φ(b) = a1²b1² + a2²b2² + 2*a1*a2*b1*b2
           = (a1*b1 + a2*b2)²
           = (a·b)²

看到了吗?我根本不需要计算 φ(x),直接用原始向量的内积平方就搞定了。这就是核函数 K(a,b) = (a·b)²。

嗯,这里要注意:不是所有函数都能当核函数。它必须满足一些数学条件。这就引出了我们的核心概念——再生核希尔伯特空间。

2.2 再生核希尔伯特空间(RKHS)

RKHS这个名字听起来很吓人,但它的核心思想其实很直观。

想象一下,我们有一个函数空间。空间里的每个元素都是一个函数。现在,我想在这个空间里做内积运算。但函数是无穷维的,怎么算内积?

RKHS给出了一个优雅的答案:存在一个核函数 K,使得对于任意函数 f,它在点 x 处的取值,等于 f 与 K(x, ·) 的内积。

用数学语言说就是:

f(x) = ⟨f, K(x, ·)⟩

这个性质叫做「再生性质」。K(x, ·) 就是再生核。

我在项目中遇到过一个问题:用高斯核做回归,预测结果总是不平滑。后来发现,是因为我没有理解RKHS的范数约束。RKHS中的函数,其光滑程度是由核函数控制的。高斯核的带宽参数越小,空间中的函数越「崎岖」,过拟合风险越大。

个人经验:选择核函数时,先想想你期望的预测函数长什么样。如果希望它平滑,就用大带宽的高斯核;如果希望它捕捉细节,就用小带宽。这个直觉来自RKHS的几何性质。

2.3 Mercer定理

Mercer定理回答了这样一个问题:什么样的函数可以当作核函数?

它的结论是:一个对称函数 K(x, y) 是正定核的充要条件是,对于任意有限个样本点,其对应的Gram矩阵是半正定的。

说白了,就是核矩阵的所有特征值都大于等于0。

这个条件为什么重要?因为只有满足这个条件,我们才能保证存在一个RKHS,使得K是它的再生核。否则,你算出来的核矩阵可能不是合法的内积矩阵,优化问题可能没有解。

我记得有一次,一个同事自己设计了一个核函数,看起来挺合理,但训练时SVM就是不收敛。我帮他检查了一下,发现核矩阵有负特征值。这就是典型的「伪核」问题。

避坑指南:我曾经在文本分类任务中,尝试用自定义的相似度函数代替核函数。结果模型训练到一半就崩了。后来才意识到,那个相似度函数不满足Mercer条件。所以,不要随便拿一个相似度函数就当核函数用。

2.4 正定核与条件正定核

正定核是我们最常用的核函数。高斯核、多项式核、线性核,都是正定核。它们满足:

∑ᵢ∑ⱼ cᵢcⱼ K(xᵢ, xⱼ) ≥ 0, 对所有 cᵢ ∈ ℝ

但有些情况下,我们需要的核函数不满足这个条件,只满足一个弱化的版本——条件正定核。

条件正定核的定义是:当系数向量 c 满足 ∑ cᵢ = 0 时,上面的不等式成立。

你可能会问:这有什么用?

举个例子。多项式核 K(x,y) = (x·y + c)^d 是正定核。但如果我们去掉常数项 c,变成 K(x,y) = (x·y)^d,它就不再是正定核了——它是条件正定核。

为什么?因为 (x·y)^d 对应的特征映射中,包含了常数项特征。当系数和为0时,常数项的影响被抵消了,所以核矩阵仍然是半正定的。

关键区别:正定核保证对所有系数都成立,条件正定核只对零和系数成立。但在实际应用中,只要你的数据做了中心化处理,条件正定核和正定核的效果是一样的。

2.5 知识体系总览

为了帮你理清这些概念之间的关系,我画了一张图:

核函数数学原理知识体系 核技巧 再生核希尔伯特空间 (RKHS) 再生性质:f(x) = ⟨f, K(x,·)⟩ Mercer定理 Gram矩阵半正定 ⇔ 存在RKHS 正定核 ∑ᵢ∑ⱼ cᵢcⱼK(xᵢ,xⱼ) ≥ 0 条件正定核 ∑cᵢ=0时,不等式成立 从核技巧出发,经过RKHS和Mercer定理,最终落到正定核与条件正定核

2.6 常见核函数对比

最后,我把常用的核函数整理成了一张表。你在实际项目中可以直接参考:

核函数 表达式 类型 适用场景 注意事项
线性核 K(x,y) = x·y 正定核 线性可分数据 等价于原始空间
多项式核 K(x,y) = (x·y + c)^d 正定核 低维非线性 d过大易过拟合
高斯核 K(x,y) = exp(-||x-y||²/2σ²) 正定核 通用,非线性强 σ需要仔细调参
拉普拉斯核 K(x,y) = exp(-||x-y||/σ) 正定核 对异常值鲁棒 比高斯核更稀疏
幂次核 K(x,y) = (x·y)^d 条件正定核 数据已中心化 需配合中心化使用

我的建议:如果你不确定用什么核,先试高斯核。它几乎适用于所有场景。然后根据验证集表现,再考虑是否换成其他核。这是最稳妥的做法。

好了,这一章的内容就到这里。核函数的数学原理确实有点绕,但只要你理解了RKHS的几何意义和Mercer定理的约束条件,后面用起来就会顺手很多。

想要更多资料,联系可可