【漫话机器学习系列】222.SVM 的径向基函数核(SVC Radioal Basis Function Kernel)

479 阅读3分钟

【可视化图解】SVM 中的径向基函数核(RBF Kernel)你真的懂了吗?

标签:机器学习、SVM、核函数、RBF、非线性分类

本文通过一张经典的手绘图(来自 Chris Albon)来深入讲解支持向量机(SVM)中的非线性核方法之一——径向基函数核(RBF Kernel) 。如果你曾疑惑“核函数到底在做什么?”“它真的能解决非线性问题吗?”,那么本文会给你一个直观、形象的答案!


一、背景知识回顾:线性 VS 非线性分类

支持向量机(SVM)最初被设计为线性分类器,也就是说,它只能通过一条直线(或超平面)来划分不同类别的样本。

但是在现实世界中,很多数据是非线性可分的。比如本文图中的数据:一堆蓝点被红点包围,怎么画直线都无法把两类分开。

这时候,核函数就登场了!


二、核方法的核心思想

我们使用核函数的主要目的是:

把数据从原始空间“映射”到一个高维空间,使得在高维空间中线性可分。

这个过程有点像魔法:

  • 原始空间:数据纠缠在一起
  • 高维空间:数据泾渭分明

这就是“核技巧(kernel trick)”的魅力!


三、图解 RBF 核函数的魔法过程

我们来看这张图

这幅图分为三部分,从左到右依次展示了RBF 核函数的变换过程


原数据空间(左图)

  • 蓝色点:一类数据
  • 红色点:另一类数据
  • 蓝点被红点包围,显然无法用一条直线分开

这是一个典型的非线性问题,线性 SVM 无能为力。


向上映射(中图)

  • 通过核函数(这里是 RBF 核)将数据映射到高维空间
  • 映射结果形成了一个**“凸起”的结构**(有点像一个碗)
  • 红点被映射到高维空间的边缘,蓝点位于“底部”

在这个高维空间中,就可以用一个平面来把蓝红两类数据线性分开


映射回原空间(右图)

  • 映射结果经过 SVM 学习后,我们把分界面投影回原始空间
  • 最终形成的边界是一个非线性的“圈”
  • 成功把蓝点和红点分隔开!

这就是核方法的精髓:在高维中线性分离,在原空间表现为非线性边界


四、RBF 核函数的数学表达式

图中的公式如下:

K(xi,xj)=exp(xixj22σ2)K(x_i, x_j) = \exp\left( -\frac{\|x_i - x_j\|^2}{2\sigma^2} \right)

解释一下每个部分:

  • xi,xjx_i, x_j:两个输入样本
  • xixj2|x_i - x_j\|^2:它们之间的欧氏距离平方
  • σ:控制“影响范围”的参数(越大,曲线越平滑)

可以理解为:越靠近的点,映射后越“相似”;越远的点,映射后越“区别”明显。


五、为什么选择 RBF 核函数?

RBF(Radial Basis Function)核在实际应用中非常常见,原因有以下几点:

能处理非线性问题
对维度不敏感(不怕“维度灾难”)
只有一个参数 σ,易于调优
通常能取得较好的分类效果


六、总结:RBF 核到底做了什么?

如果你还记得一句话,那就记住这句:

核函数=维度魔术
RBF核=用“距离”把点拉开或拉近,在高维中创造分界线

再复杂的非线性问题,在核技巧的帮助下,也可以迎刃而解。


附:图中左下角原文

“径向基函数是一个取值仅仅依赖于离中心点距离的实值函数,一般使用欧氏距离。”

也就是说,它是一种只看距离、不看方向的“影响函数”,适合各种类型的数据结构。


七、拓展阅读推荐

  • 《机器学习》周志华:SVM 章节讲得非常清晰
  • scikit-learn 官方文档:内置支持 RBF 核的 SVM(SVC(kernel='rbf')
  • Chris Albon 的可视化机器学习图集:chrisalbon.com

如果你觉得本文对你有帮助,欢迎点赞、收藏、关注我!