try ai
科普
编辑
分享
反馈
  • 核技巧

核技巧

SciencePedia玻尔百科
  • 核技巧通过直接从原始数据计算点积,避免了显式且代价高昂的数据变换,从而使算法能够在高维特征空间中运行。
  • 通过使用核函数,复杂的非线性数据模式可以使用高效的线性分类器来解决。
  • 表示定理保证了即使在使用无限维特征空间时,解在计算上仍然是可行的。
  • 核函数为度量相似性提供了一个通用的框架,在机器学习、生物信息学、计算化学等领域都有广泛应用。

引言

在机器学习的世界里,最根本的挑战之一是教会计算机识别复杂的模式。许多强大的算法被设计用来解决简单问题,比如用一条直线分离数据点。但当模式不再简单,当数据是一团纠缠不清的非线性乱麻时,会发生什么呢?一种常见的策略是将数据投影到一个更高维度的空间,在那里数据可能会变得不再纠缠,并且线性可分。然而,这种方法常常导致计算上的死胡同,因为这些特征空间可能大到无法管理,甚至是无限维的。

本文将探讨一个极其优雅的解决方案:​​核技巧​​。它解决了在高维表示需求与在其中进行计算的不可行性之间的知识鸿沟。您将发现这个数学“捷径”如何让我们在不离开计算舒适区的情况下,利用无限维空间的力量。第一章“原理与机制”将揭示其背后的数学魔力,解释核函数如何像一个通往这些强大特征空间的虫洞一样运作。随后,“应用与跨学科联系”一章将带您穿越不同的科学领域,揭示这个统一的思想如何被用来解决从解码基因组到设计新材料等现实世界的问题。

原理与机制

假设我们有一个任务。它可能是预测某个特定分子能否成为一种好药,或者是预测某只股票会上涨还是下跌。计算机通常通过将每个项目——分子、股票历史——表示为一堆数字,即一个向量,并置于某个高维空间中来处理这个问题。最简单的一类问题是,你可以画一条直线(或在更高维度上画一个平面)来将“好”的样本与“坏”的样本分开。许多算法从根本上就是为了找到这个分离平面而设计的,它们反复使用的数学工具就是简单的​​点积​​。

你可能还记得点积 x⋅z\boldsymbol{x} \cdot \boldsymbol{z}x⋅z 是向量相乘的一种方式。但它的意义远不止于此。它是一种相似性的度量。如果两个向量大致指向同一方向,它们的点积就很大且为正。如果它们指向相反方向,点积就很大且为负。如果它们相互垂直,点积则为零。因此,一个依赖点积的算法,其核心总是在问:“这个新数据点与我已经见过的样本有多相似?”

这对于一个简单的世界,一个“线性可分”的世界来说,是完全没问题的。但如果你的数据没那么简单呢?

逃离平面国:向更高维度投影

想象一下你的数据点分布在一条直线上。“好”的点在-1和+1处,“坏”的点正好在中间,位于0处。你无法在这条线上画一个点来将好的与坏的分开。你被困住了。

但是,如果我们能增加一个维度呢?让我们创造一个​​特征映射​​,一个我们称之为ϕ\phiϕ的函数,它将线上的每个点 xxx 提升到二维平面上的一个点 (x,x2)(x, x^2)(x,x2)。我们在-1处的点变为(-1, 1)。在+1处的点变为(1, 1)。而那个麻烦的0点则变为(0, 0)。看看发生了什么!在这个新的、更高维度的空间里,我们的点位于一条抛物线上。现在,将它们分开就变得轻而易举了。一条水平线,比如 y=0.5y=0.5y=0.5,就能完美地完成这个任务。

这就是基本策略:如果你的数据在原始空间中是一团乱麻,你通常可以通过将其投影到一个更高维度的​​特征空间​​来解开它。在这个新空间里,数据可能奇迹般地变得线性可分,我们那些简单的、基于点积的算法就能再次发挥作用。

但一个阴影随之而来。这个新的特征空间可能极其巨大。我们从一维到二维,这还算可控。但如果我们需将数据映射到一个百万维的空间呢?或者十亿维?甚至是无限维?要写下一个点的坐标都已不可能,更不用说计算它们之间的点积了。看起来,我们这个聪明的技巧把我们引向了一堵计算上的铜墙铁壁。

核技巧:一个绝妙的捷径

现在,魔法时刻到了。事实证明,一大类算法,包括著名的支持向量机(SVM),都具有一个非常特殊的性质。在它们所有的计算过程中,它们实际上从不需要知道单个数据点在高维特征空间中的坐标。它们唯一需要询问的,就是那个空间中两点之间的点积,即 ϕ(x)Tϕ(z)\phi(\boldsymbol{x})^T \phi(\boldsymbol{z})ϕ(x)Tϕ(z)。

这是一个惊人的漏洞。如果我们能找到一个函数,我们称之为 K(x,z)K(\boldsymbol{x}, \boldsymbol{z})K(x,z),它能接收我们原始低维空间中的两个点,并直接计算出它们在特征空间中映像的点积,而无需实际创建这些映像本身,那会怎样呢?

这个函数 K(x,z)K(\boldsymbol{x}, \boldsymbol{z})K(x,z) 就被称为​​核函数​​,使用它就是著名的​​核技巧​​。它就像一个连接你所处的简单空间和那个数据变得可分的广阔复杂空间之间的虫洞。你获得了那个强大的高维几何的所有好处,却从未支付前往那里的计算代价。你在自己的地盘上计算一个简单的 K(x,z)K(\boldsymbol{x}, \boldsymbol{z})K(x,z),它就给了你一个似乎需要通过一次极其复杂的旅程才能得到答案的问题的答案。

神奇核函数一览

这听起来可能像痴人说梦。这种神奇的函数真的存在吗?是的,而且它们无处不在!让我们构建几个来看看它们是如何工作的。

构建核函数的一个简单方法是,从一个明确的、可控的特征映射开始,看看它会产生什么样的点积。假设我们的输入 xxx 只是一个数字,我们定义一个特征映射,将其发送到一个三维向量:ϕ(x)=(1xsin⁡(ωx))T\phi(x) = \begin{pmatrix} 1 & x & \sin(\omega x) \end{pmatrix}^Tϕ(x)=(1​x​sin(ωx)​)T。对应的核是什么呢?我们只需计算点积:

K(x,x′)=ϕ(x)Tϕ(x′)=1⋅1+x⋅x′+sin⁡(ωx)sin⁡(ωx′)=1+xx′+sin⁡(ωx)sin⁡(ωx′)K(x, x') = \phi(x)^T \phi(x') = 1 \cdot 1 + x \cdot x' + \sin(\omega x) \sin(\omega x') = 1 + xx' + \sin(\omega x)\sin(\omega x')K(x,x′)=ϕ(x)Tϕ(x′)=1⋅1+x⋅x′+sin(ωx)sin(ωx′)=1+xx′+sin(ωx)sin(ωx′)

这是一个完全有效的核函数。它接收两个数 xxx 和 x′x'x′,然后返回它们在那个三维特征空间中的“相似度”。

现在,让我们尝试反过来。这才是真正有趣的地方。考虑一个看起来很简单的函数,用于二维向量 x=[x1,x2]T\boldsymbol{x} = [x_1, x_2]^Tx=[x1​,x2​]T:

K(x,z)=(αx1z1+βx2z2+γ)2K(\boldsymbol{x}, \boldsymbol{z}) = (\alpha x_1 z_1 + \beta x_2 z_2 + \gamma)^2K(x,z)=(αx1​z1​+βx2​z2​+γ)2

这被称为​​多项式核​​。它看起来像一个简单的计算。但它是否对应某个隐藏特征空间中的点积呢?让我们像 的分析中那样,把它展开。 经过一番代数运算,我们会发现这个表达式完全等于点积 ϕ(x)Tϕ(z)\phi(\boldsymbol{x})^T \phi(\boldsymbol{z})ϕ(x)Tϕ(z),其中特征映射 ϕ(x)\phi(\boldsymbol{x})ϕ(x) 是一个在​​六维​​空间中的向量:

ϕ(x)=(αx12βx222αβx1x22αγx12βγx2γ)\phi(\boldsymbol{x}) = \begin{pmatrix} \alpha x_1^2 \\ \beta x_2^2 \\ \sqrt{2\alpha\beta} x_1 x_2 \\ \sqrt{2\alpha\gamma} x_1 \\ \sqrt{2\beta\gamma} x_2 \\ \gamma \end{pmatrix}ϕ(x)=​αx12​βx22​2αβ​x1​x2​2αγ​x1​2βγ​x2​γ​​

看!我们在二维世界里做了一个简单的平方和计算,但我们却在隐式地操作由原始特征之间所有二阶交互组成的六维向量。核函数为我们自动地设计了一套更丰富的特征。

现在是压轴戏。让我们看看最强大和最广泛使用的核之一,​​高斯核​​,也称为径向基函数(RBF)核:

K(x,x′)=exp⁡(−γ(x−x′)2)K(x, x') = \exp\bigl(-\gamma(x-x')^2\bigr)K(x,x′)=exp(−γ(x−x′)2)

这个函数就是一个钟形曲线。当 xxx 和 x′x'x′ 相同时,它的值为1,随着它们距离的增大,它会平滑地衰减到0。这是一个非常自然的相似性度量。但是,这个简单的函数可能是哪个天体般的特征空间中的点积呢?答案是惊人的。通过遵循 中阐述的逻辑,我们可以将核重写为:

K(x,x′)=exp⁡(−γx2)exp⁡(−γx′2)exp⁡(2γxx′)K(x,x') = \exp(-\gamma x^2) \exp(-\gamma x'^2) \exp(2\gamma x x')K(x,x′)=exp(−γx2)exp(−γx′2)exp(2γxx′)

现在,回想一下指数函数的泰勒级数:exp⁡(u)=∑n=0∞unn!\exp(u) = \sum_{n=0}^{\infty} \frac{u^n}{n!}exp(u)=∑n=0∞​n!un​。将此应用于最后一项,我们得到:

K(x,x′)=∑n=0∞(exp⁡(−γx2)(2γx)nn!)(exp⁡(−γx′2)(2γx′)nn!)K(x,x') = \sum_{n=0}^{\infty} \left( \exp(-\gamma x^2) \frac{(\sqrt{2\gamma}x)^n}{\sqrt{n!}} \right) \left( \exp(-\gamma x'^2)\frac{(\sqrt{2\gamma}x')^n}{\sqrt{n!}} \right)K(x,x′)=n=0∑∞​(exp(−γx2)n!​(2γ​x)n​)(exp(−γx′2)n!​(2γ​x′)n​)

这具有 ∑n=0∞ψn(x)ψn(x′)\sum_{n=0}^{\infty} \psi_n(x) \psi_n(x')∑n=0∞​ψn​(x)ψn​(x′) 的形式。它就是一个点积!但这个和延伸到无穷大。这意味着我们的特征映射 ψ(x)\psi(x)ψ(x) 有无限个分量。通过计算一个简单的指数函数,我们隐式地在一个​​无限维空间​​中执行了点积。我们不仅逃离了平面国,还提升到了一个难以想象的丰富空间,而我们的计算双脚却始终稳稳地站在地面上。

它为何有效:驾驭复杂性

这种驾驭无限维度的能力似乎好得令人难以置信。当然,给一个算法一个无限强大的特征空间,肯定会导致它疯狂地“过拟合”,找到一个荒谬复杂的边界,完美地分开了训练数据,但在任何它未见过的新数据上都表现得一塌糊涂。为什么这没有发生呢?

原因是一段优美的数学,被称为​​表示定理 (Representer Theorem)​​。对于像SVM这样的算法,它告诉我们一些惊人的事情。即使我们允许我们的解——分离超平面的法向量 w\boldsymbol{w}w——存在于这个浩瀚的无限维空间中,最优解总是会在它的一个微小角落里被找到。具体来说,最优的 w⋆\boldsymbol{w}^{\star}w⋆ 总是我们训练数据点特征向量的线性组合:

w⋆=∑i=1nαiyiϕ(xi)\boldsymbol{w}^{\star} = \sum_{i=1}^n \alpha_i y_i \phi(\boldsymbol{x}_i)w⋆=i=1∑n​αi​yi​ϕ(xi​)

这意味着寻找最优解的过程被限制在我们数据所张成的有限维子空间内。我们不必在整个无限的荒野中搜索。这正是使问题变得易于处理的原因。

我们在特征空间中关于数据的所有基本几何信息都被 n×nn \times nn×n 的​​格拉姆矩阵 (Gram matrix)​​ 所捕获,其元素就是 Kij=K(xi,xj)K_{ij} = K(\boldsymbol{x}_i, \boldsymbol{x}_j)Kij​=K(xi​,xj​)。这个矩阵的秩告诉我们数据表示的“有效”维度。

这一洞见也帮助我们理解核函数如何对抗臭名昭著的​​维度灾难​​。这个“灾难”指出,随着我们输入空间的维度 d 增长,我们需要指数级增长的数据量才能找到有统计意义的模式。然而,核方法的理论保证并不依赖于环境维度 d!相反,它们依赖于像分离间隔这样的几何属性。如果我们的数据,即使在高维空间中,也具有某种内在的低维结构(比如位于一个光滑的薄片或曲线上),一个精心选择的核函数就能揭示它。核函数学习了一种与问题相关的“相似性”概念,使得算法即使在原始维度数巨大时也能成功。

一曲统一的交响乐

核方法的思想之所以如此深刻,是因为它不仅仅是针对某个算法的“技巧”。它是表示数据和相似性的一个基本原则,并且它出人意料地出现在各种不同的领域中。

考虑​​多项式插值​​这个经典的工程问题:找到一条穿过一组点的光滑曲线。我们可以使用拉格朗日基多项式 Lj(x)L_j(x)Lj​(x) 来定义一个函数,这些多项式构成了多项式空间的一个“核”:

K(x,z)=∑j=0nLj(x)Lj(z)K(x,z) = \sum_{j=0}^{n} L_j(x)L_j(z)K(x,z)=j=0∑n​Lj​(x)Lj​(z)

这个函数具有核的标志性属性。它充当一个“再生核”,意味着它可以仅凭其在数据点处的值来重构任何多项式。我们在机器学习中用于分类数据的数学结构,也正是数值分析中拟合曲线的核心。

更进一步,核函数为我们提供了一种对整个数据集进行统计的方法。利用一个叫做​​最大均值差异 (MMD)​​ 的概念,我们可以使用核函数将一整团数据点映射到无限维特征空间中的一个点——它的“均值嵌入”。两个不同数据云的嵌入之间的距离,就为我们提供了一个强大的度量,衡量它们底层概率分布的差异程度。这可以用来检验,例如,模型部署后看到的数据是否已经偏离了它训练时的数据,从而发出问题警报。

从用一条线分割点,到在无限维空间中寻找模式,再到拟合曲线和比较整个数据集,核是一个统一的概念。它证明了找到正确表示——正确的视角——的力量,在正确的视角下,一个复杂的问题会突然变得简单。它是一套优美的数学机器,让我们能够推理那些我们永远无法访问的空间,并解决那些我们原本束手无策的问题。

应用与跨学科联系

在上一章中,我们揭示了核技巧的美妙秘密。这是一种巧妙的数学柔道,一种用我们熟悉的、简单的线性工具来处理存在于极端弯曲、非线性世界中的问题的方法。我们永远不必真正访问那些奇异的高维世界;我们只需要一种方法来衡量那里的相似性——这就是核函数。这就像仅仅通过查看一种特殊的地图,就能判断两座山峰之间的距离,而无需亲自攀登它们。

现在,你可能会问:“这招确实很酷,但它能带我们去哪里?” 答案是:几乎无处不在。核技巧不仅仅是机器学习教科书里一个孤立的噱头。它是一个深刻而实用的思想,已在众多科学和工程学科中遍地开花。它是一个统一的概念,每当我们教机器识别复杂模式时,它就会出现,无论这些模式存在于金融市场、人类基因组,还是分子的基本结构中。让我们踏上一段旅程,看看这面“神奇透镜”在何处找到了它的力量。

数据的新几何学:从直线到地貌

机器学习的核心在于绘制边界。给定一堆数据——比如说经济指标——我们想画一条线来区分“繁荣”时期和“衰退”时期。线性分类器做的正是这件事:它画一条直线(或在更高维度上画一个平面)。但如果数据并非如此整齐排列呢?如果“繁荣”的点在一个圆圈里,而“衰退”的点同时在圆圈内外呢?一条直线就毫无用处了。

这正是核技巧首次展现其威力的地方。使用像径向基函数(RBF)这样基于邻近度来衡量相似性的核,我们可以改变这个问题。RBF核 K(x,z)=exp⁡(−γ∥x−z∥2)K(x, z) = \exp(-\gamma \|x-z\|^2)K(x,z)=exp(−γ∥x−z∥2) 本质上是说,如果点在原始空间中彼此靠近,它们就是相似的。通过使用这种相似性度量,像支持向量机(SVM)这样的算法可以学习到一个高度非线性的决策边界。它可以毫不费力地画出一个圆圈甚至更复杂的形状来分隔类别。在一个为测试此功能而设计的假设场景中,带有RBF核的SVM可以学会解决经典的“异或问题”(XOR problem)——其中类别像棋盘格一样排列——这是简单的线性分类器无法完成的任务。

这种创建灵活边界的能力具有深远的实际意义。在金融领域,我们可以用它来构建复杂的信用评分模型,或根据众多金融指标对经济体制进行分类。模型不再局限于简单的线性关系;它可以捕捉到那些通常驱动复杂经济体系的、微妙的、局部的相互作用。特定数据点与学习到的边界之间的距离成为模型对其分类“置信度”的一个代理。一个贷款申请人,其财务数据使其远离“违约/不违约”边界,这是一个明确的案例;而那些非常靠近边界的人则是一个模棱两可的案例,需要更仔细的考量。

但分类只是故事的一半。通常,我们没有标签;我们只想了解数据本身的结构。处理这个问题的经典方法是主成分分析(PCA),它能找到数据变化最大的那些直线“主干道”。这是一个用于降维的绝佳工具。但同样,如果数据不是沿着笔直的道路分布,而是沿着一条蜿蜒曲折的路径,就像瑞士的山路一样,那该怎么办?

核主成分分析(Kernel PCA)应运而生。通过应用核技巧,我们可以推广PCA来找到这些非线性结构。我们不是在原始数据空间中寻找直线,而是在由核定义的丰富特征空间中寻找直线。当这些直线投影回低维空间时,它们就变成了追踪我们数据真实底层结构的“弯曲主干道”。例如,排列成两个同心圆的数据会迷惑标准PCA,但使用合适核的核PCA可以轻松地将半径识别为最重要的潜在分量——这一壮举在代数上等同于找到中心化核(或格拉姆)矩阵的特征向量。同样的原理也让我们能够将其他经典线性方法,如费雪线性判别分析(Fisher's Linear Discriminant Analysis),推广为强大的非线性版本,为复杂的类别结构找到更好的分离方向。

自然的语言:面向物理和生命科学的核函数

对经典算法进行“核化”固然强大,但当我们将目光从仅仅是数字列表的数据转向其他类型时,这个思想的真正天才之处才显露出来。如果我们的数据是一段DNA序列、一个蛋白质、一篇文本文档或一个分子呢?关键的洞见在于,只要我们能定义一个有效的核——一个合理的相似性度量——我们就能应用同样强大的机器。其艺术在于为特定任务打造正确的核。

​​阅读生命之书。​​ 在生物信息学中,一个核心任务是理解基因组。其中一个问题是预测“操纵子”(operons)——细菌中一组相邻的、被一同开启或关闭的基因。生物学家知道,一个操纵子中的基因之间通常距离非常短,并且在基因之前的区域共享一些常见的DNA模式(基序)。我们如何把这一点教给机器呢?我们可以设计一个*复合核。对于DNA序列,我们使用一种字符串核*,通过计算共享的短子序列(称为kkk-mers)来衡量相似性。对于基因间距离,我们使用一个标准的RBF核。通过简单地将这两个核相加,我们创造了一个单一、强大的相似性度量,它融合了两种生物学信息来源。配备了这种复合核的SVM可以学习以惊人的准确性预测操纵子,有效地模仿了生物学家多方位的直觉。

​​词语的意义。​​ 同样的想法也适用于人类语言。假设我们想构建一个系统,通过衡量专利文本之间的相似性来检测潜在的专利侵权。我们如何比较两份文档?一个极其简单的方法是*kkk-gram谱核*。我们只需计算每份文档中所有长度为 kkk 的短字符序列(例如 'the', 'ion', 'ing')的数量。这为每份文档提供了一个(非常大的)计数特征向量。核函数就是这些向量的归一化点积。它衡量了它们在字符级纹理上的重叠程度。值得注意的是,这个对语法、句法或意义一无所知的简单想法,在文本分类任务中却非常有效,从垃圾邮件过滤到分析专利等技术文档,都表现出色。

​​发现与设计分子。​​ 或许最深刻的联系出现在物理科学中。现代材料科学越来越受到人工智能的驱动。想象一个“自主发现”平台,其中机器人执行实验,机器学习模型实时分析结果,以决定下一步该做什么实验。在材料合成中,像拉曼光谱这样的技术会在物质形成过程中产生复杂的数据“指纹”。核PCA是处理这个问题的完美工具。它可以接收这些高维光谱流,并将它们简化为几个关键分量来追踪反应进程,识别相变或新产物的形成。将最新的光谱投影到这些学习到的分量上,系统就能立即洞察实验的状态,从而为智能控制闭合回路。

更令人惊讶的是,有时我们发现科学家们已经使用核函数几十年而浑然不觉!在计算化学中,一个主要挑战是精确计算分子的性质。一种流行的方法,密度泛函理论(DFT),通常难以处理分子间非常弱的长程吸引力,即范德华力(van der Waals forces)或色散力。为了修正这一点,化学家们开发了“经验校正”。一个标准的色散能公式看起来是对所有原子对的求和,其中每一对的贡献项取决于它们之间的距离和它们的化学特性。

如果我们仔细观察这个基于物理的公式,它具有与核函数完全相同的数学结构!总相互作用能可以写成一个特征空间中的内积,在这个空间里,每个分子由一组以原子为中心的特征集合来表示。这个色散能的公式,在一个常数因子之内,就是一个有效的核,它优雅地结合了原子属性和几何结构。这是一个科学思想趋同进化的惊人例子:一个从量子力学原理发展而来、用以描述物理力的概念,在数学上竟然与机器学习中为度量抽象相似性而开发的工具完全相同。

一个统一的表示原则

这把我们带到了最后一个深刻的观点。核技巧不仅仅是一个工具;它是一种表示的哲学。在许多最具挑战性的科学问题中,解决问题的关键不是蛮力,而是找到正确的视角——正确的“空间”,在其中问题变得简单。

思考一下高级量子化学与核方法之间的相似之处。为了计算一个复杂分子的性质,使用RASSCF方法的化学家必须首先选择一个“活性空间”——一个小的、关键的分子轨道子集,其中发生着最重要的电子相互作用。在这个精心选择的表示中,他们可以求解原本难以处理的电子相关性方程。这个活性空间是分子化学本质上演的舞台。

这为核方法的作用提供了一个绝佳的类比。当我们面对一个复杂的、非线性的机器学习问题时,我们不直接正面解决它,而是选择一个核函数。这个核函数隐式地定义了一个特征空间——也就是我们数据的“活性空间”——在这个空间里,我们所寻求的模式变得简单且线性。在这两种情况下,关键的第一步都是选择一个能够凸显本质结构并使问题易于处理的表示。主要区别在于,在RASSCF中,表示本身(轨道)也是被优化的,而在标准的核方法中,特征映射由核的选择固定。然而,其根本策略是相同的。

从分类金融数据到预测基因功能,从理解文档到发现分子,核技巧已被证明是一个惊人地通用和统一的思想。它告诉我们,有时,解决一个问题的最强大方法不是构建一个更复杂的工具,而仅仅是找到一种新的、更好的看待它的方式。而“看待”的艺术,无非就是定义相似性的艺术。