SVM 中 rbf kernel 的意义 —— 一个不怎么严谨的解释

本文深入探讨了支持向量机(SVM)的工作原理及其如何利用RBF核函数解决非线性分类问题。通过实例说明了RBF核函数如何通过投影将非线性可分数据转换为线性可分形式,并解释了gamma参数的影响。

http://discussions.youdaxue.com/t/svm-rbf-kernel/6088

在我们机器学习的过程中,很多同学包括我自己也疑惑过rbf kernel函数的实际作用是什么?不同的参数又有什么作用。

上周我参加了上海的夏令营,这里就是我们讨论的结果。

首先我们要知道Support Vector Machine到底是什么东西。看过课程视频的同学都是到,SVM旨在将一组不可线性分割的数据线性分割。怎么做到的呢?通过将低维度的数据投影到高维度来实现。

这里又涉及到两个关键词“线性分割”、“投影”。

线性可分割

线性分割就是一组数据可以被一条直线(高维度空间中是超平面)分为两半。

如上图所示,A是线性可分的,B不是。

那么在更高维度中,线性就是指的一个平面。在三维空间中是平面,在更高维度中就是超平面。

投影

投影(映射)就是一个函数。z = f(x, y) 就是把x,y投影到z。“投影”这个用词其实是一个几何空间的借喻。意思就是说,将(x,y)这个本来属于二维空间的点‘’投影‘’到第三维。如下:

(x1, y1) => (x1, y1, z1)
(x2, y2) => (x2, y2, z2)
(x3, y3) => (x3, y3, z3)
....
依次类推

内核函数 Kernel Function

内核函数就是投影所具体使用的函数。这里就用rbf来举例。rbf全称是Radial Based Function,基于半径的函数。

在解释 rbf 之前,先来看一个更简单地例子。

如上图所示,左边的圈圈和叉叉是不可线性分割的。但是我们可以看出,一个圆圈可以将它们分开。这个圆其实就代表不同的点到原点(0,0)的距离的分界线。距离更大的叉叉在圆外面,距离小的圈圈在圆里面。

那么什么函数才可以仅仅基于 x1 和 x2 就算出离原点的距离呢?答案是:

define 距离函数 f(x1, x2) 为: sqrt( x1^2 + x2 ^ 2 ) 。然后让 f(x1,x2) 投影到 x3

这里开不开根号其实无所谓,因为我们关心的不是绝对的距离,而是一个可以区分不同距离的尺度。

那么对于SVM来说,我们的 f 就是内核函数。通过这个 f,我们就可以将左边的二维坐标系投影成右边的三维坐标系。然后很明显的,我们的数据变得线性可分割了(通过那个切面)。

Radial Based Function

现在我们再来看 rbf1

这是 rbf 的数学公式。当然,更一般性的写法是

公式的具体含义这里不作很数学的解释(比如说什么是 exponential function)

要注意的有3个方面。

  1. X 和 X’ 不是标量,是向量(别名:矢量)
  2. | X - X' | ^ 2 就是一个距离公式,X’ 是相对于 X 的另外一个点 (一个向量可以被当做一个点)
  3. gamma 是一个常数 (具体含义后面讲)

我们可以观察到,之前算到原点距离的 f 就是 这里的 rbf 的一种特殊情况。X’ 就是 (0,0)。而 rbf 中 X’ 是根据具体情况而定的。

我们可以再看到这个图

对于图 B 来说,用原点作为参考点肯定是不合适的。参考点应该是蓝色数据的中心点。然后 rbf 可以算出每个点到该中心的距离,从而将其投影到一个三维空间,让其变得可以线性分割。

rbf 投影后的结果大概就长这样(图片仅供参考)

gamma 参数什么意思
我们通过公式可知,gamma 是一个常量,而且是一个线性的因数。所以大家可以想象,gamma的作用,其实就是控制数据在向高维度投影后的缩放比例。如果 gamma 很大,那么上图的点就会离切面很远。如果 gamma 很小,上图的点就会离切面很近。

而这个缩放比例就会影响线性分割面的运算结果(不同的loss function对距离的惩罚度不一样)。这也是SVM对数据 Scaling 和 Normalization 是敏感的原因之一。因为最后都是算的一个 Linear Model

这就是为什么,有人说如果原始数据比较分散,gamma可以小一点。反之,如果原始数据很密集,gamma可以大一点。当然,这不是绝对的,所以我们才要做 GridSearch

通常我们会 0.01、0.1、1、10、100 ... 这样指数级地搜索一个比较好的 gamma

sklearn SVM 里的 C 是什么意思?
我都写了这么多,这就留给你当作业吧。多看 sklearn 文档3。记住,gamma 和 C 是好基友

你可以在评论里面写自己对 C 的理解

<think>好的,用户想了解机器学习中的RBF核函数。首先,我需要明确RBF核的全称是径向基函数核,这在支持向量机(SVM)和核方法中很常见。根据系统指令,我得确保所有数学公式用$...$或$$...$$格式,同时用中文回答,并生成相关问题。 首先,我应该从基本定义开始,解释RBF核的数学表达式,比如$K(x, y) = \exp(-\gamma \|x - y\|^2)$。这里需要提到参数gamma的作用,它控制模型的复杂度和灵敏度。然后,说明RBF核如何将数据映射到高维空间,从而处理非线性问题,比如在SVM中的应用。 接下来,要讨论RBF核的特点,比如局部性、灵活性,以及与其他核函数(如线性核、多项式核)的对比。这里可能需要引用用户提供的参考文献中的内容,特别是引用[1]中提到核方法将输入映射到高维空间,计算相似度,这和RBF核的作用相符。 然后,需要涵盖应用场景,比如图像分类、异常检测等,这部分可以结合引用[2]中的文本分类,说明RBF核在NLP中的应用可能性。不过要注意,引用[2]主要讲的是文本分类的基本概念,可能和RBF核直接关联不大,所以可能需要谨慎引用。 还要提到调优技巧,比如交叉验证选择gamma和C参数,以及与其他核函数的比较。这部分需要确保术语正确,比如正则化参数C,避免混淆。 最后,生成相关问题,应该围绕RBF核与其他核的区别、参数选择、数学原理、优缺点和应用场景展开。确保问题具体且有引导性,帮助用户深入理解。 检查是否有遗漏,比如是否需要解释核技巧(kernel trick),或者RBF核的优缺点。同时确保所有数学表达式格式正确,没有使用错误的LaTeX语法。例如,指数函数要用\exp,希腊字母如gamma要正确转义。另外,引用标识要自然地加在相关段落末尾,比如在提到高维映射时引用[^1]。 现在整理结构,分点回答,保持逻辑清晰。确保每个部分简明扼要,同时覆盖用户的需求。可能用户是刚开始学习机器学习,需要基础解释,所以避免过于技术化,但保持准确性。</think>### RBF核函数在机器学习中的核心解析 #### 1. 数学定义 径向基函数(Radial Basis Function, RBF)核的定义为: $$K(x, y) = \exp\left(-\gamma \|x - y\|^2\right)$$ 其中$\gamma = \frac{1}{2\sigma^2}$是控制函数宽度的关键参数,$\|x - y\|$表示样本间的欧氏距离。该函数满足$0 < K(x, y) \leq 1$,在$x=y$时取得最大值1。 #### 2. 核心特性 - **非线性映射**:通过隐式映射到无穷维特征空间,可解线性不可分问题 - **局部敏感性**:距离越近的样本相似度越高,响应值呈指数衰减 - **参数控制**:$\gamma$增大时决策边界更复杂(过拟合风险),减小时更平滑(欠拟合风险) #### 3. 典型应用场景 | 应用领域 | 具体案例 | 优势体现 | |---------|---------|---------| | 图像分类 | MNIST手写数字识别 | 处理高维像素非线性关系 | | 生物信息学 | 蛋白质结构预测 | 捕捉复杂分子特征交互 | | 异常检测 | 金融交易监控 | 敏感捕捉异常距离模式 | | 文本分类 | 新闻主题分类 | 处理词向量空间非线性分割[^2] | #### 4. 调优实践 ```python from sklearn.svm import SVC from sklearn.model_selection import GridSearchCV param_grid = { 'C': [0.1, 1, 10], # 正则化参数 'gamma': [0.01, 0.1, 1] # RBF核宽度参数 } grid_search = GridSearchCV(SVC(kernel='rbf'), param_grid, cv=5) grid_search.fit(X_train, y_train) ``` #### 5. 对比分析 - **线性核**:$K(x,y) = x^Ty$ - 适用:大规模数据/高维稀疏特征 - 局限:无法处理非线性决策边界 - **多项式核**:$K(x,y) = (\gamma x^Ty + r)^d$ - 特点:显式控制多项式阶数$d$ - **Sigmoid核**:$K(x,y) = \tanh(\gamma x^Ty + r)$ - 注意:可能导致非正定矩阵
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值