核函数与非线性支持向量机

一、上节回顾

线性可分与硬间隔最大化在这里插入图片描述

线性可分与软间隔最大化

二、问题引入与探讨

对于这种线性不可分的数据,如何得到我们的分类模型?

多层感知机也就是神经网络算法可以,这里我们可以进行一个升纬试试。

feature mapping : Φ \Phi Φ: R 2 R^2 R2 ———— > — ———> ————> R 3 R^3 R3

( x 1 , x 2 ) (x_1,x_2) (x1,x2) — > —> > ( z 1 , z 2 , z 3 ) (z_1,z_2,z_3) (z1,z2,z3)= ( x 1 2 , 2 x 1 x 2 , x 2 2 ) (x_1^2,\sqrt{2}x_1x_2,x_2^2) (x12,2 x1x2,x22)

在这里插入图片描述

Cover Theomem:高维空间比低维空间更易线性可分。

什么意思呢?分类问题中,对于严格不可分问题,我们引入一个特征映射函数 Φ ( x ) \Phi(x) Φ(x)将原来的不可分的数据集变为可分的数据集,然后再来应用已有的模型(SVM)。往往将低维空间的数据集变为高维空间的数据集后,数据会变得可分(数据变得更为稀疏)
在这里插入图片描述

< x i , x j > = x i T x j <x_i,x_j>=x_i^Tx_j <xi,xj>=xiTxj
前面,我们再求解SVM过程中,将原问题转化为对偶问题,产生了两点的内积 x i T x j x_i^Tx_j xiTxj,对于已经特征映射的数据集 x i T x j x_i^Tx_j xiTxj计算将变为 Φ ( x i ) T Φ ( x j ) \Phi(x_i)^T\Phi(x_j) Φ(xi)TΦ(xj)计算。

这里就产生了一些问题:

  1. 特征映射函数 Φ ( x ) \Phi(x) Φ(x)纬度一般很高,难以确定。
  2. Φ ( x i ) T Φ ( x j ) \Phi(x_i)^T\Phi(x_j) Φ(xi)TΦ(xj)计算量大。

怎么办呢?不妨在特征空间任意取两个点 ( Φ ( x 1 ) , Φ ( x 2 ) ) (\Phi(x_1),\Phi(x_2)) (Φ(x1),Φ(x2)) ( Φ ( x 1 ′ ) , Φ ( x 2 ′ ) ) (\Phi(x_1'),\Phi(x_2')) (Φ(x1),Φ(x2)),进行内积计算:

在这里插入图片描述

发现这个例子里面,特征空间两点的内积就等于输入空间这两点内积的平方,与特征映射函数 Φ ( x ) \Phi(x) Φ(x)没有关系, 那么在这个例子中,我们直接把这个 < x , x ′ > 2 <x,x'>^2 <x,x>2定义为一个函数,称为核函数(kernel function):
κ ( x , x ′ ) = < x , x ′ > 2 \kappa(x,x')=<x,x'>^2 κ(x,x)=<x,x>2
这样,我们即使不知道特征映射函数 Φ ( x ) \Phi(x) Φ(x)是什么,直接通过 κ ( x , x ′ ) \kappa(x,x') κ(x,x)函数就能得到数据在特征空间的内积。

什么意思呢?具体来说就是,对于一个具体的分类问题和数据集,如果我们能找到一个合适的核函数,它能计算在数据点在特征空间的内积,那么我们就能直接使用SVM,而与特征映射函数 Φ ( x ) \Phi(x) Φ(x)无关。

三、核方法、核技巧、核函数

讲人话的方式区分一下这几个概念!

核方法(kernel method):将数据点从输入空间映射到更高维度的特征空间,将非线性问题转化为线性问题。

核函数(kernel function):它是一个函数,接受两个输入空间数据点,并计算它们在高维特征空间中的内积。给定两个输入空间数据点x和y,核函数 κ ( x , y ) \kappa(x,y) κ(x,y)的计算如下:
κ ( x , y ) = φ ( x ) ⋅ φ ( y ) \kappa(x,y)=φ(x) · φ(y) κ(x,y)=φ(x)φ(y)
φ(x) 和 φ(y) 是输入空间数据点x和y在高维特征空间中的映射。

核技巧(kernel trick):避免求 Φ ( x ) \Phi(x) Φ(x),再求内积,找到一个合适的核函数,直接计算。

如何判断一个函数能不能作为核函数

能不能根据定义来判断呢?将输入空间的数据表示为特征空间的内积。

显而不能,我们提出核函数的目的就是为了避免找特征映射函数 Φ ( x ) \Phi(x) Φ(x),希望能够通过核函数直接得到数据点在特征空间的内积。

看看核函数有什么特性呢?

  1. 核函数是对称的

  2. 核函数的gram matrix(格拉姆矩阵)是半正定的。

    什么是gram matrix?

    N维欧式空间中任意M个向量两两内积,所构成的矩阵称作gram matrix。

所以,核函数也有另外一个定义:

K \Kappa K : χ \chi χ X χ —— > R \chi——>R χ——>R K ( x , z ) \Kappa(x,z) K(x,z)是对称的,且如果对任意的 x i x_i xi $ \epsilon$ $ \chi , , \Kappa(x,z) 对应的 g r a m m a t r i x 是半正定的,那么 对应的gram matrix是半正定的,那么 对应的grammatrix是半正定的,那么\Kappa(x,z)$可以作为核函数。

什么意思呢?我们可以通过第二个定义判断一个函数能不能作为一个核函数,对称且其Gram matrix半正定。

常用的一些核函数

  1. **多项式核函数 (polynomial kernel function) **

多项式核函数的数学形式通常表示为:
在这里插入图片描述

  • ( x ) 和 ( y ) 是输入向量。
  • ( a ) 是一个可调参数,用于控制多项式项的影响(通常设置为1)。
  • ( c ) 是一个常数项,通常称为偏置项(bias term),用于控制模型的复杂度。
  • ( d ) 是多项式的阶数(degree),即多项式的幂次。
  1. 高斯核函数(Gaussian kernel function)

    高斯核函数的数学表达式为:
    在这里插入图片描述

  • ( x ) 和 ( y ) 是输入向量。

  • ( |x - y|^2 ) 是 ( x ) 和 ( y ) 之间的欧氏距离的平方。

  • ( sigma ) 是高斯核的宽度参数,控制函数的幅度。较小的 ( sigma ) 值会使得核函数在局部的影响范围更小,而较大的 ( sigma ) 值则会使得核函数的影响范围更大。

    高斯径向基核函数(Gaussian Radial Basis Function Kernel):适用于一般情况,对于未知数据分布通常表现得较好。需要调整核函数的带宽参数。

四、非线性支持向量机

上面我们花了大量内容,说明了一件事:

利用核方法,我们可以将线性分类的学习方法应用到非线性分类中去,将线性支持向量机拓展到非线性支持向量机,只需要将线性支持向量机中对偶问题的内积换成核函数。后面求解模型的方法与线性支持向量机无二,不在赘述。

到这里其实还有一个问题没有回答。

我们知道如何判断一个函数能否作为核函数,但是似乎还不知道对于一个具体的分类问题和数据集,如何选择核函数?

  1. 理解不同类型的核函数:
  2. 数据分布和领域知识:
    • 了解问题领域的特点和数据分布。不同的核函数可能在不同类型的数据上表现更好。
    • 观察数据的散点图,了解数据的分布情况,以帮助选择合适的核函数。
  3. 交叉验证:
    • 使用交叉验证来评估不同核函数的性能。通常,采用k折交叉验证来比较不同核函数的性能,以选择最合适的一个。
  4. 超参数调优:
    • 对于每种核函数,需要调整相应的超参数。例如,多项式核函数需要调整多项式的阶数,高斯核函数需要调整带宽参数。可以使用网格搜索或随机搜索等技术来寻找最佳的超参数组合。
  5. 观察训练和测试结果:
    • 观察训练和测试数据上的性能表现,包括准确率、召回率、F1分数等指标。选择核函数时,考虑其在测试数据上的性能表现。
  6. 集成方法:
    • 可以考虑使用集成学习方法,如随机森林或梯度提升树,将多个SVM模型使用不同核函数的结果进行组合,以提高性能。

总之,选择合适的核函数需要一定的经验和实验。通常,需要尝试不同类型的核函数,并使用交叉验证和超参数调优来确定最佳的核函数及其参数设置。领域知识和数据分布的理解也对选择合适的核函数至关重要。

使用不同核函数的结果进行组合,以提高性能。

总之,选择合适的核函数需要一定的经验和实验。通常,需要尝试不同类型的核函数,并使用交叉验证和超参数调优来确定最佳的核函数及其参数设置。领域知识和数据分布的理解也对选择合适的核函数至关重要。

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值