当前位置: 首页 > news >正文

核函数简述

1、特征空间映射

若是不存在一个可以正确划分两类样本的超平面,怎么办?

将样本从原始空间映射到一个更高维的特征空间,使样本在这个特征空间内线性可分。

若是原始空间是有限维(属性数有限),那么一定存在一个高维特征空间使样本线性可分

设样本 x 映射后的向量为𝛷(𝑥),划分超平面为f(x)=w^T\Phi (x)+b原始问题就变成了

对偶问题为:

可见,与原始空间线性可分的SVM几乎一模一样,唯一的不同就是在样本 x 映射后的向量为𝛷(𝑥),变成了高维空间。

但是这里面有了一个新的计算问题,即𝛷(𝑥)非常高维甚至说是无限维。那么\Phi (x)^T\Phi (x)的内积计算代价开销将会非常大,如何解决这个问题?我们对其最终的模型进行一个预测,即:

经过观察\Phi (x)^T\Phi (x)始终是以内积的形式出现,从来没有单独的出现过,那我们你能不能找到一个不用直接算这个高维向量的内积,而是用一个可以代替内积计算的"东西",甚至说都不需要知道𝛷(𝑥)到底是什么?这就引出下面的内容了。

2、核函数

为了处理上面的问题,引入一个函数,用来计算两个向量在高维特征空间中内积的方法,而无需显式地将向量映射到高维空间,即核函数。其数学定义为:

因为只需要给其两个低维的向量给核函数进行处理就行了,其等价于高维向量的内积。就将求高维向量点积转换为了求低维向量对核函数求值。如此一来就成功绕过了显式考虑特征映射、以及计算高维内积的困难。这一下又有新问题了,就是这个核函数如何寻找?

有一个定理:Mercer定理,若是一个对称函数所对应的核矩阵半正定,则它就能作为核函数来使用。

PS3-1:这里涉及到对这个函数概念的一个理解,在这里函数其实现在起到一个空间的变换,在原来的空间上可以定义一个范数Norm(就是一种度量向量或矩阵“长度”或“大小”的函数,||∙||),假如说为x_i,y_i。到甚高维空间(因为不知道有多少维,所以叫"甚至不知道有多高维空间",简称甚高维)中,变为了\Phi (x_i),\Phi (y_i)。这是函数 𝛷(•) 在做的事情。经过函数𝛷(𝑥)以后,之前点的关系会发生一定程度的扭曲。如何去刻画\Phi (x_i),\Phi (y_i)的距离,如图:

在原空间里,可以定义一个距离函数,表示所有的两点距离:

在这个矩阵中,很明显是半正定的对称矩阵,且主对角线上的值全部为 0 。

核矩阵就是对任何一个核函数K(x_i,y_i),若是输入是两个点x_i,y_i,将所有的样本都提供给核函数,就能形成一个类似的矩阵,即:

若是这个矩阵恰恰也是半正定的对称矩阵,实际上在这个映射的甚高维空间里的距离矩阵。所以回到上面的Mercer定理,若是核函数对应的距离矩阵恰恰如上面所说,那这个核函数就可以使用。

因为核函数无非是在甚高维空间里寻找到一个能表述距离的"东西",这个核矩阵就要求了,这个对角线是为0的,且是对称的,半正定的(所有特征值大于等于0)。一旦满足这些条件,这个矩阵就对应了这个甚高维空间。

任何一个核函数都隐式的定义了一个RKHS空间,即"再生核希尔伯特空间"。这个其实说的就是上面的PS3-1中提出的能对应出来的"甚高维空间"。

PS3-2:有一个问题,将上面张开的甚高维空间称为"V1",可以找到的核函数通过核矩阵也能够张开一个空间称为"V2"。这里的"V1"与"V2"是否恰好一样?

即,之前想找到的 𝛷(•) ,现在找到了𝐾(•)。这里𝐾(•)起到的作用和原来理想的𝛷(•)是否完全一样?其实是无法保证的,保证的只能是存在一个RKHS空间可以将其线性分开,即 𝛷(•)是存在的。但是在找这个𝐾(•)的时候并没有显式告诉 𝛷(•)是什么。只是说"K(\cdot )=\Phi (\cdot )^T\Phi (\cdot )"。但是不能保证这里𝐾(•)的一定就是\Phi (x)^T\Phi (x)。所有这里就相当于有一个K(•)的集合,将所有的K(•)都放入这个核函数集合里面,存在一个最理想的K^*(\cdot )正好能够对应产生线性划分的 𝛷(•)。这个K^*(\cdot )一定能在所有核函数集合里产生。

上面的整理下来,就是我们在众多核函数中,找到一个核函数是最合适的,来满足要求。那么,这里怎么找到这个核函数,就是在第二章模型选择当中的内容了,但是不能保证一定就能找到这个最合适的核函数。因为这相当于P=NP问题了。

故,"核函数选择"成为了决定支持向量机性能的关键!

西瓜书中给出了一些常见的核函数:

核函数还可以通过组合得到,如若是K_1K_2为核函数,则对于任意正数\gamma _1\gamma _2,其线性组合\gamma _1K_1+\gamma _2K_2也是核函数,直积K_1\bigotimes K_2(x,z)=K_1(x,z)K_2(x,z)也是核函数,对于任意函数g(x),K(x,z)=g(x)k_1(x,z)g(z)也是核函数。

相关文章:

  • RagFlow+Ollama 构建RAG私有化知识库
  • python进阶篇-面向对象
  • 梁文锋亲自挂名DeepSeek发布新论文
  • 将jar安装到Maven本地仓库中
  • 用STC-ISP写延时函数
  • vue从入门到精通(十):绑定样式
  • 从零开始构建一个小型字符级语言模型的详细教程(基于Transformer架构)之一数据准备
  • 6.【线性代数】—— 列空间和零空间
  • spring cloud 微服务部署(2025年)第三章:Nacos、LoadBalancer、GateWay、Ribbon集成之网关Gateway部署
  • 【Java】逻辑运算符详解:、|| 与、 | 的区别及应用
  • 解锁D3.js与PlantUML的交互奥秘:探索知识图谱数据可视化新领域
  • AI工具篇:利用DeepSeek+Kimi 辅助生成综述汇报PPT
  • Spring Boot 自动装配原理深度剖析
  • 网络分析仪E5071C的回波损耗测量
  • Java:数组的定义与使用
  • ES8中 async 和await的用法详细的总结
  • SpringAI系列 - RAG篇(三) - ETL
  • 【Linux网络编程】应用层协议HTTP(请求方法,状态码,重定向,cookie,session)
  • “闻声“自动化测试报告
  • Linux 网络与常用操作(适合开发/运维/网络工程师)
  • 解放日报头版:上海张江模力社区托举“年轻的事业”
  • 德雷克海峡发生6.4级地震,震源深度10千米
  • “五一”假期首日:国铁南宁局发送旅客81.7万人次
  • 长江财险一季度净亏1449.81万元,去年曾实现扭亏为盈
  • 旅游特种兵们,这个五一“躲进”书吧
  • 党政机关停车场免费、食堂开放,多地“五一”游客服务暖心周到