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

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

在说核函数之前,我们先说说映射及其作用.

       如果在当前空间对数据类别不好使用线性函数进行划分,则通过一个函数φ( x)将数据点从当前空间映射到另一空间去(映射后的空间叫特征空间,通常是更高维的空间,当然不是绝对)以方便使用线性函数进行分类(最高次不超过1的n元函数称为线性函数)。

      如下图中在原来的空间中需要用圆将数据分为两类,但是现在将原2维的数据分别映射到2维、3维的空间中,从而可以在映射后的2维空间中使用一条直线将数据分类,在映射后的3维空间中使用一个平面将数据分为两类。

  1. 那么什么叫做核函数了?

       核函数就是特征空间中向量的内积 用 原空间对应向量 表示出来的表达式。以上面转到3维空间去为例,3维特征空间中向量φ(x)=φ(x1,x2),φ(z)=φ(z1,z2)的内积最终可表示为<φ(x),φ(z)>=(<(x1,x2),(z1,z2)>)^2=(<x,z>)^2。(推导过程如图所示,其中向量x=(x1,x2),z=(z1,z2)是原坐标空间的向量)。表达式(<x,z>)^2就称为核函数,表示为K(x,z)=(<x,z>)^2。(向量x=(x1,x2)就表示的起点为坐标轴原点,终点为点x(x1,x2)的向量)。注意此处按这样的方式映射到3维空间后的核函数是(<x,z>)^2,但是不表示只能按这样的映射方式才能得到这个核函数(<x,z>)^2,也就是说同一个核函数可能对应多种映射方式。

核函数的作用

从此处可以看出,只要有了核函数,那么计算特征空间中向量间的内积时是否知道映射函数就不重要了,也就是说我们不用去关心数据到底是通过什么样的映射方式从原空间映射到了特征空间,也不用关心其在特征空间的坐标。

那么知道了特征空间中的内积后,我们又可以得到哪些东西了?

       我们知道向量的内积是两个向量φ(x),φ(z)是两个向量的长度和两个向量夹角的余弦的乘积,即||φ(x)||*||φ(z)||*cosΘ。所以这时我们就可以将向量之间的夹角的余弦值表示出来,即:
cosΘ=<φ(x),φ(z)>/(||φ(x)||)(||φ(z)||)。我们知道cosΘ正负可以表示为φ(z)是偏向φ(x)的正方向一点,还是偏向φ(x)的负方向一点。而两向量的长度的乘积(||φ(x)||)(||φ(z)||)一定是正的。所以cosΘ的正负就可以用<φ(x),φ(z)>来表示。

那么重点来了,当我们知道了cosΘ的正负后,又能对我们的分类起到什么作用了?

      如果映射后类别1的中心点为m1`,类别2的中心点为m2`。m1`和m2`的中间点为m`。此时过m`且垂直于(m1`-m2`)向量的平面是不是刚好将这两个类别分开。而对于某一点φ(x)来说,向量(φ(x)-m`)和向量(m1`-m2`)的夹角Θ如果在(0,π/2)之间,即cosΘ在(0,1)之间时,其为类别1;如果两向量夹角在(π/2,π)之间,即cosΘ在(-1,0)之间时,其为类别为2。所以只要知道了向量(m1`-m2`)和向量(φ(x)-m`)的内积<( m1`-m2`),(φ(x)-m`)>就可以知道φ(x)所属于的类别了。如图(你也可以将其想象成一个超空间,此时中间的直线就是超平面了):

 但是了,我们前面讲核函数的时候,K(x,z)的形式和当前表达式是有点区别的,那么<(m1`-m2`),(φ(x)-m`)>我们又是否能通过核函数将其用原空间的向量的表达式将其表达出来了?见下图推导:

(这里的推导主要就是为了证明对于分类,我们只需要知道核函数,而不必知道具体的映射函数就行)

第一种推导:

第二种推导:

所以到现在我们是不是就可以通过核函数将数据的类别判断出来了。


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

相关文章

核函数(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;共享库的命名…

六、库文件

今天我们来了解一下库文件&#xff0c;主要有以下几个内容&#xff1a; 文章目录 一、库文件概念二、静态库&#xff08;一&#xff09;生成&&使用&#xff08;二&#xff09; 示例&#xff08;三&#xff09; 特点 三、动态库&#xff08;一&#xff09;生成&&am…

库文件

目录 库文件 静态库 动态库&#xff08;共享库&#xff09; 静态库和共享库的区别 库文件 库文件是预先编译好的方法的集合。 比如&#xff1a;我们提前写好一些数据公式的实现&#xff0c;将其打包成库文件&#xff0c;以后使用只需要库文件就可以&#xff0c;而不需要重…

EDID 修改

EDID 128字节(不包括扩展)&#xff0c;如果手动修改的话比较麻烦(最后一个字节校验和必须自己计算–128字节和为0)&#xff0c;借助第三方工具比较好。 比如&#xff1a; SoftMCCS Phoenix EDID Designer EDIDManager EDIDViewer等。 如果只要修改制造商代号&#xff0c;…

EDID参数介绍

1、显示器的第24个字节是设置显示器的电源管理标准的。 各个位的作用如下&#xff0c;注意到标号为1的位是关于主画面。 3、Gamma源于CRT的响应曲线&#xff0c;即反映显像管的图像亮度与输入电子枪的信号电压的非线性关系的一个参数。对于CRT显示器而言&#xff0c;显像管电子…

EDID文件格式转换工具介绍

EDID文件格式转换工具介绍 1 EDID文件 简单来说&#xff0c;EDID文件主要内容就是128个字节数据&#xff08;V1.3版本&#xff09;或是256个字节数据&#xff08;V1.4版本&#xff09;。   但是不同的EDID的编辑工具支持的文件格式又不同&#xff0c;例如Phoenix EDID Desig…