核函数(核技巧)

article/2025/8/18 5:43:38

核技巧Kernel trick

背景及含义
对于 原始样本空间内或许不存在能正确划分两类样本的超平面 问题,考虑 将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
ϕ ( x ) \phi(x) ϕ(x)表示将x映射后的特征向量,则在求解特征空间中划分的超平面时,将原优化问题(支持向量机基本型)转化为求解对偶问题,将涉及到计算 ϕ ( x i ) T ϕ ( x j ) \phi(x_i)^T\phi(x_j) ϕ(xi)Tϕ(xj),即样本 x j x_j xj x i x_i xi映射到特征空间之后的内积,由于特征空间维数可能很多,直接计算该内机会很困难,因此设想函数:(即用 κ ( . , . ) \kappa(.,.) κ(.,.)直接表示内积结果)
κ ( x i , x j ) = < ϕ ( x i ) , ϕ ( x j ) > = ϕ ( x i ) T ϕ ( x j ) \kappa(x_i,x_j)=<\phi(x_i),\phi(x_j)>=\phi(x_i)^T\phi(x_j) κ(xi,xj)=<ϕ(xi),ϕ(xj)>=ϕ(xi)Tϕ(xj)
则在特征空间中划分超平面对应的模型可表示为
f ( x ) = w T ϕ ( x ) + b f(x) = w^T \phi(x)+ b f(x)=wTϕ(x)+b
什么函数可作为核函数
由上可知,若已知映射 ϕ ( ) \phi() ϕ(),可给出核函数,但现实任务中常不知道 ϕ ( ) \phi() ϕ()的形式,而是直接使用核函数将原样本空间向高维映射,下面定理给出可作为核函数的条件:

χ \chi χ为输入空间, κ ( . , . ) \kappa(.,.) κ(.,.)是定义在 χ × χ \chi\times\chi χ×χ上的对称函数,则 κ \kappa κ是核函数当且仅当对于任意数据 D = { x 1 , x 2 , . . . , x m } D=\{x_1,x_2,...,x_m\} D={x1,x2,...,xm},核矩阵 K K K总是半正定的:
K = [ κ ( x i , x j ) ] ( n × n ) K= [\kappa(x_i,x_j)]_{(n\times n)} K=[κ(xi,xj)](n×n)

只要一个对称函数对应的核矩阵半正定,它就能作为核函数使用,都能隐式的定义一个称“再生希尔伯特空间”的特征空间。

常用核函数及组合原则
常用核函数:
周志华《机器学习》
组合( κ 1 \kappa_1 κ1 κ 2 \kappa_2 κ2都为核函数):

  1. γ 1 κ 1 + γ 2 κ 2 \gamma_1\kappa_1+\gamma_2\kappa_2 γ1κ1+γ2κ2仍为核函数
  2. κ 1 ⨂ κ 2 ( x , z ) = κ 1 ( x , z ) κ 2 ( x , z ) \kappa_1\bigotimes\kappa_2(x,z) = \kappa_1(x,z)\kappa_2(x,z) κ1κ2(x,z)=κ1(x,z)κ2(x,z)核函数的直积也是核函数
  3. κ ( x , z ) = g ( x ) κ 1 ( x , z ) g ( z ) \kappa(x,z)=g(x)\kappa_1(x,z)g(z) κ(x,z)=g(x)κ1(x,z)g(z)也为核函数,任意函数g(x).

举例理解

根据阅读的知乎文章进一步理解:link

  1. 核函数是在高维特征空间中的内积(可理解为相似度)
    对核函数 k ( x , y ) = < x , y > 2 , x = ( x 1 , x 2 ) , y = ( y 1 , y 2 ) k(x,y) = <x,y>^2,x=(x_1,x_2),y=(y_1,y_2) k(x,y)=<x,y>2,x=(x1,x2),y=(y1,y2),该核函数对应的映射为 P ( x , y ) = ( x 2 , 2 x y , y 2 ) P(x,y) = (x^2,\sqrt2xy,y^2) P(x,y)=(x2,2 xy,y2),即满足:
    < P ( x ) , P ( y ) > = k ( x , y ) <P(x),P(y)> = k(x,y) <P(x),P(y)>=k(x,y)
    从这个例子中也可以看出用核技巧计算实际上是在原始的分类依据 x , y x,y x,y上增添了 x y xy xy的部分,相当于在分类中加入了综合考虑两个样本的部分.
  2. 核矩阵中的元素定义了各样本点在高维空间中的相似度.

Mercer条件及其证明

核函数在应用过程中要注意的

1 函数的选择
比如: nngt的,忘了要举哪儿的例子了,果然啥事儿不能拖,想起来再补orz
2 目前并没有研究说明对某种问题需要用某个核函数
之前看到过一个椭圆形分界线,利用椭圆函数直接把核函数找出来的,感觉就很神奇,但是文献找不到了orz
回去查找更多的文献qaq

1 周志华. 机器学习 : = Machine learning[M]. 清华大学出版社, 2016.


http://chatgpt.dhexx.cn/article/H0ihsoWO.shtml

相关文章

了解核函数

1、核函数定义&#xff1a; 核函数包括线性核函数、多项式核函数、高斯核函数等&#xff0c;其中高斯核函数最常用&#xff0c;可以将数据映射到无穷维&#xff0c;也叫做径向基函数&#xff08;Radial Basis Function 简称 RBF&#xff09;&#xff0c;是某种沿径向对称的标量…

核函数

对于优化问题&#xff1a; 的求解需要计算这个内积&#xff0c;而如果输入样本线性不可分的话&#xff0c;我们采取的方法是通过函数映射将输入样本映射到另外一个高维空间并使其线性可分。 以库克定律为例(http://zh.wikipedia.org/zh-cn/%E9%9D%99%E7%94%B5%E5%8A%9B)&#x…

什么是核函数?如何理解?

个人理解&#xff0c;核函数的功能就是从低维度的空间向高维度空间转换的函数&#xff0c; 因为在低维空间不可以线性分类的问题到高维度空间就可以线性分类的。 其求法为 低维空间的点映射到高维空间的点后&#xff0c;两个点的内积 就是核函数。 ~~~~~~~~~~~~~~~~~~~~~~~~…

你知道什么是核函数吗

目录 一、常用核函数&#xff1a;二、核函数特点&#xff1a;三、选择核函数的方法&#xff1a;四、核函数方法实施步骤&#xff1a;五、核函数在模式识别中的应用&#xff1a;六、核函数方法原理&#xff1a; 核函数K&#xff08;kernel function&#xff09;就是指K(x, y) &…

kernel核函数是什么、用来干什么 及其详细推导

在说核函数之前,我们先说说映射及其作用. 如果在当前空间对数据类别不好使用线性函数进行划分&#xff0c;则通过一个函数φ( x)将数据点从当前空间映射到另一空间去&#xff08;映射后的空间叫特征空间&#xff0c;通常是更高维的空间&#xff0c;当然不是绝对&#xff09;以方…

核函数(Kernel function)(举例说明,通俗易懂)

已知有一组向量&#xff0c;可用线性函数去探索其是否具有线性关系&#xff0c;若数据之间是非线性呢&#xff1f; 非线性数据是指只有利用非线性模型才能更好的预测。但非线性问题往往不好求解&#xff0c;所以希望用解线性分类问题的方法解决这个问题。所采取的方法是进行一…

Linux笔记(5):库文件

1、库文件 库是一组预先编译好的方法的集合。 Linux系统存储的库的位置一般在/lib和/usr/lib。库的头文件一般被存储在/usr/include下货其子目录下。 库有两种&#xff1a; &#xff08;1&#xff09;静态库&#xff0c;命令规则&#xff1a;libxxx.a &#xff08;2&#…

vs2019添加库文件

vs2019添加库文件 环境&#xff1a;windows10&#xff0c;64位&#xff0c;vs2019 vs安装路径&#xff1a;D:\visual_studio 需要的材料&#xff1a;头文件&#xff0c;编译好的库文件 方法一 以GLFW为例&#xff0c;找到IDE或者编译器的**/lib和/include文件夹&#xff0…

【Linux基础】静态库和共享库(如何自定义库文件?)

文章目录 前言一、库文件的基本知识1.库文件分类2.库文件命名 二、如何自定义静态库?1.静态库简介2.具体流程&#xff08;详细步骤&#xff09;3.静态库缺点 三、如何自定义共享库?1.共享库简介2.具体流程&#xff08;详细步骤&#xff09;3.共享库优点 四、静态库与共享库区…

Linux 系统上的库文件生成与使用

1.库文件 库是一组预先编译好的方法的集合。Linux系统存储的库的位置一般在&#xff1a;/lib 和 /usr/lib。 在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在 /usr/include 下或其子目录下。 库有两种&#xff0c;一种是静态库&#xff0c;其…

库文件、静态库(lib)与动态库(dll)的生成与使用

静态库 程序编译一般需经预处理、编译、汇编和链接几个步骤。在应用中&#xff0c;有一些公共代码是需要反复使用&#xff0c;就把这些代码编译为“库”文件&#xff1b;在链接步骤中&#xff0c;连接器将从库文件取得所需的代码&#xff0c;复制到生成的可执行文件中。这种库…

库文件的生成和使用

一、库文件 库是一组预先编译好的函数方法的集合 Linux上库文件的存放位置: /lib和/usr/lib 库分为两种:静态库和共享库 Linux上静态库标识&#xff08;libxxx.a&#xff09;,共享库&#xff08;libxxx.so&#xff09; Windows上静态库标识&#xff08;.lib&#xff09;&a…

3、库文件

1、什么式库文件&#xff1a; 库文件是预先编译好的方法的集合。&#xff08;相当于一大堆的可执行文件&#xff09; 存放头文件的标准目录&#xff1a;/usr/include 存放库文件的标准目录&#xff1a;/usr/lib 比如: printf函数的实现在库文件中 libcs.so 声明在/usr/inc…

库文件:静态库与动态库的生成和使用

0.引言 当进行C语言的编写时&#xff0c;想要查看标准库的某个函数是怎样实现的&#xff0c;比如 stdio.h 里的 printf 函数&#xff0c;跳转后只能看见函数声明&#xff0c;而无法跳转到函数的定义处&#xff0c;为什么无法查看函数的定义&#xff0c;这就涉及到库文件使用。…

【C++】静态库和动态库文件的生成和使用

前言 文章目录 前言库文件静态库的生成hello.hhello.cmain.c 动态库的生成GCC命令相同时&#xff0c;会先执行.a文件&#xff0c;还是会先执行.so文件&#xff1f;静态库与动态库的区别使用静态库的使用动态库的使用 总结 本文主要讲解了静态库和动态库的生成&#xff0c;以及.…

标准库文件

工艺库有db文件和lib文件&#xff0c;db是打不开的&#xff0c;lib是打得开的。 以反向器为例&#xff0c;时序弧上的延迟由两个因素影响&#xff0c;负载越大&#xff0c;延迟越大&#xff1b;输入转换时间越大&#xff0c;延迟越大。 随着工艺更加先进&#xff0c;线性模…

linux的库文件

文章参考链接&#xff1a;https://www.cnblogs.com/tankblog/p/6780146.html 一、什么是库文件&#xff1f; 本质上来说&#xff0c;库文件就是可执行代码的二进制形式&#xff0c;可以被操作系统载入内存中执行 Linux操作系统支持的函数库分为静态库和动态库&#xff0c;动态…

linux库文件

windows静态库文件扩展名.lib 动态库文件扩展名.dll linux 静态库.a 动态库.so 都是将函数封装在一起编译后供自己或他人调用&#xff0c;好处是编译后的库文件看不带源代码&#xff0c;可以保密 linux库文件一般存在 /lib 和/usr/lib 64位下也有可能存在 /usr/lib64 下…

Linux系统上库文件的生成与使用(静态库和动态库)

目录 1、什么是库文件&#xff1f; 2、静态库的生成与使用 2.1、生成 .o 文件 2.2、创建静态库 2.3、使用静态库 3、动态&#xff08;共享&#xff09;库的生成与使用 3.1、生成 .o 文件 3.2、生成动态库文件 3.3、使用动态库 4、静态库与动态库的区别 1、什么是库文…

库文件简述

什么是库文件&#xff1f; 库就是一组预先编译好的方法的集合。在linux系统中&#xff0c;库文件一般被存储在/lib和/usr/lib中&#xff0c;库的头文件一般会被存储在/usr/include下。 库文件可以分为静态库和共享库两种。 静态库的命名规则为libxxx.a&#xff0c;共享库的命名…