核方法(kernel method)的主要思想

article/2025/9/25 18:40:16

kernel method是针对低维线性不可分而提出的一种解决方法,在PRML中有一章节的介绍,对其理解,也是迭代更进的过程。

简单来说,kernel method是一种低维和高维特征空间映射的方法,利用低维内积的函数来表征高维内积,即高维的内积用低维内积的函数来表示,这个低维内积的函数就是kernel function。

首先,说明kernel method的示例
说到机器学习中的核方法(Kernel Method),大部分人应该是在学习SVM的时候认识到它或者听说它。它的基本思想是说,普通的SVM分类超平面只能应对线性可分的情况,而对于线性不可分的情况我们则需要引入一个Kernel,这个Kernel可以把数据集从低维映射到高维,使得原来线性不可分的数据集变得线性可分。

(关于在SVM中应用Kernel Trick的具体方法及示例,有兴趣的读者可以参考文献【1】《R语言实战:机器学习与数据分析》以了解更多。)


一、基本概念

本节我们将抛开SVM,直面Kernel Method的本质。首先来看一个简单的例子,下面的左图中有些数据集,在原来的二维平面上它们是线性不可分的。如果要对它们进行分类,则需要用到一个椭圆曲线:

然后为了设计了一个feature mapping,将原来的二维特征空间转换到新的三维特征空间中,具体来说我们所使用的mapping函数Φ如下:

基于上面这种映射,我们就会得到下图右侧所示的新的三维特征空间,而在这个新的特征空间中,只要用一个分割超平面就可将原来的两组数据分开,换言之,原来线性不可分的数据现在已经变得线性可分了!这就是Kernel的很重要的作用。

 

之前给定的基于映射,你其实就可以写出新的分割超平面的方程如下:

在一个Hilbert空间中,最重要的运算就是“内积”,下面我们要做的事情就是看看如何利用已知的原空间中的信息来计算新空间中的内积。例如,现在有两个点:

如下图所示,我们发现新空间中任意两个点的内积,可以通过一个关于原空间中之内积的函数来得到,我们就定义这样的一个函数为核函数(Kernel Function)。

 

而内积又可以作为一种相似性的度量(例如如果两个向量彼此正交,那么它们的内积就为零),因此我们可以定义Kernel Function为:is a similarity measure that can be written as

更重要的是上面的算例告诉我们,似乎我们并不需要知道feature mapping Φ 到底长什么样子,而是只要知道K,就可以通过原空间中两个点的内积算得新空间中对应的两个点之间的内积。

再举一个例子。对于一个Polynomial kernel,注意其中的x和y是两个向量,

我们便可以计算新空间中x和y对应的两个点的内积为

而且它同样具有“使得原本线性不可分的数据集在新空间中线性可分”的能力(注意我们仅仅使用了新空间中的两个维度)。

 

引用文献【2】中的话做一个小结“Kernel method work by embedding data in a vector space (usually with more high dimensionality) to look for (linear) relations in such space. if map is chosen suitably, complex relations can be simplified and easily detected”。

下表列出了常用的Kernel Function,值得注意的是RBF Kernel(又称高斯核)是一个典型的会将原空间投影到无穷维空间的核函数。关于这些核的具体讨论,以及为什么高斯核是无穷维的,都可以参考文献【3】以了解更多细节。

二、核矩阵

相信读者对于内积矩阵(又称Gram矩阵)并不陌生,如果你对这个概念不甚了解,可以参考文献【4】中3.2.6小节“希尔伯特空间”(第118页)中的相关内容。特别地,该小结中还证明了“Gram矩阵”是半正定(PSD)对称矩阵这一结论。

A real symmetric m×m matrix K satisfying 

 

In addition, we have 

A real symmetric matrix is diagonalizable.
A real symmetric matrix is PSD if and only if all its eigenvalues are non-negative.


假设我们的数据集中有N个点,那么我们可以定义一个核矩阵(其实就是Gram矩阵),该矩阵中存放的就是这N个点在新空间中对应的N个点彼此之间的内积。

三、默瑟定理

紧接着,我们还需要解决一个问题,即核函数的存在性判断和如何构造? 既然我们不关心高维度空间的表达形式,那么怎么才能判断一个函数是否是核函数呢?

Mercer 定理:任何半正定的函数都可以作为核函数。所谓半正定的函数f(xi,xj),是指拥有训练数据集合(x1,x2,...xn),我们定义一个矩阵的元素aij = f(xi,xj),这个矩阵式n*n的,如果这个矩阵是半正定的,那么f(xi,xj)就称为半正定的函数。这个mercer定理不是核函数必要条件,只是一个充分条件,即还有不满足mercer定理的函数也可以是核函数。常见的核函数有高斯核,多项式核等等,在这些常见核的基础上,通过核函数的性质(如对称性等)可以进一步构造出新的核函数。SVM是目前核方法应用的经典模型。
 


前面我们谈到,似乎feature mapping Φ 到底长什么样子并不那么重要,只要我们有K就可以了。于是我们有如下两个疑问:

Given a feature mapping Φ , can we find a corresponding kernel function K computing the inner product in feature space?
Given a kernel function K, can we construct a feature space H (i.e., a feature mapping Φ) such that K computes the inner product in H?
默瑟定理(Mercer’s theorem)is the fundamental theorem underlying Reproducing kernel Hilbert spaces,它对上述两个问题给出了肯定的回答。

默瑟定理由英国数学家James Mercer于1909年提出,它告诉我们,给定一个PSD的K,那么它就一定可以在高维空间中被表示成一个向量内积的形式。

 

 

 

【参考文献与推荐阅读材料】

1. R语言实战——机器学习与数据分析,电子工业出版社

2. 部分图片来自李政軒博士的在线授课视频 https://www.youtube.com/watch?v=p4t6O9uRX-U&list=PLt0SBi1p7xrRKE2us8doqryRou6eDYEOy

3. 李宏毅博士的在线授课视频 https://www.youtube.com/watch?v=QSEPStBgwRQ&index=29&list=PLJV_el3uVTsPy9oCRY30oBPNLCo89yu49

4. 图像处理中的数学修炼,清华大学出版社
--------------------- 
 


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

相关文章

python svm核函数_Python.SVM(三)核方法

Python.SVM(三)核方法 1 什么是核方法 往简单里说,核方法是将一个低维的线性不可分的数据映射到一个高维的空间、并期望映射后的数据在高维空间里是线性可分的。 我们以异或数据集为例:在二维空间中、异或数据集是线性不可分的;但是通过将其映…

核方法回归

参考论文-DENSITY ESTIMATION FOR STATISTICS AND DATA ANALYSIS 给定数据集,来估计概率密度函数 Histograms The naive estimator 也是分成段的平行x轴直线连接起来 The kernel estimator 其中kernel可以是高斯核,结果图: 可以见到,高斯核…

【机器学习】SVM核方法

https://blog.csdn.net/qq_32742009/article/details/81430534 Kernel Trick 在 SVM 中引入核方法便可使得 SVM 变为非线性分类器,给定非线性可分数据集 ,如下图所示,此时找不到一个分类平面来将数据分开,核方法可以将数据投影到…

核函数与核方法整理

一些之前提到过的知识, 对核函数相关进行详细梳理和串联. 根据胡老师建议的重点, 学习了一下: 核函数公式,作用,选择, 调参, 如何简化运算 目录 SVM回顾 严格线性可分问题 近似线性可分 核函数 什么是核函数 如何使用核函数 为什么要用核函数 …

核方法也称为核技巧(Kernel method)

简介 核函数是干嘛的? 核方法的好处#套用ice110956的说法 1. 在线性与非线性间架起一座桥梁,低维空间里面数据特征是非线性的,没法儿用线性方法解决,当数据特征映射到高维的时候,可以用线性方法解决。 2. 通…

Kernel Method核方法—应用与理解

前一篇主要梳理了几个基本概念以及相关关系,这一篇主要针对核方法的应用进行讨论,并理解核方法的思想,了解为什么要引入核方法。 核方法在机器学习中是一种灵活的技术,主要归结为两个方面: 非线性问题转换为高维线性…

核方法学习

20201101 - 0. 引言 核方法(kernel methods,核函数、核技巧)是一种能够将在原始数据空间中的非线性数据转化到高维线性可分的方法。而最开始学习机器学习的时候,也是在SVM中接触到的。不过在那个时候之后,就很少从理…

核方法(kernel Method)

核方法 核方法定义 一种能够将在原始数据空间中的非线性数据映射到高维线性可分的方法。 核方法的用处 1、低维数据非线性,当其映射到高维空间(feature space)时,可以用线性方法对数据进行处理。 2、线性学习器相对于非线性学…

核方法概述----正定核以及核技巧(Gram矩阵推导正定核)

在再谈SVM(hard-margin和soft-margin详细推导、KKT条件、核技巧)中我们大致谈到了核函数以及为什么要用核函数,今天在这里更加详细的介绍一下。 核方法 1.核函数概述2.正定核2.1定义2.2证明 3.核技巧4.常见的核函数 1.核函数概述 从前面的学…

nginx编译器安装以及编译

一:nginx编译器安装 1:nginx编译器下载安装 http://nginx.org/download/nginx-1.23.1.tar.gz ----下载网址(nginx-1.23.1.tar.gz-示例版本) 2:将tar -zxvf nginx-1.23.1.tar.gz传入home目录下 mkdir /home/nginxchm…

mac编译安装Nginx

一、安装wget 使用homebrew安装wget brew install wget安装wget时报错 tar: Error opening archive: Failed to open /Users/xxx/Library/Caches/… 发现是install libunistring的时候失败报错; 单独安装此依赖; 安装成功,再继续安装wget&#xff1…

宝塔自定义html,宝塔面板Nginx编译安装添加自定义模块PageSpeed

我们在安装好宝塔的时候,首先要安装的都是nginx,PHP这些lnmp组合。估计很多童鞋选择的极速安装。确实,极速安装和编译安装在使用中,区别不大。但是,如果你想后期添加模块,极速安装就无法做到了,…

Linux中编译安装NGINX

1.去官网下载文件 nginx官网 nginx: downloadhttp://nginx.org/en/download.html?spma2c6h.12873639.0.0.222cda00jLs6QI 2.解决nginx安装中的各种依赖 GCC编译器:yum install gcc gcc-c正则表达式PCRE库:yum install -y pcre pcre-develzlib压缩库:yum install -y zlib z…

Centos7 编译安装Nginx

文章目录 前言一、编译安装nginx二、编译安装过程1.操作系统的选择,centos71.1关闭防火墙、selinux 2.安装编译开发环境2.1安装nginx所需的一些第三方系统库的支持 3.编译安装nginx3.1下载nginx源代码3.2解压缩nginx包,并进入该目录3.3开始编译安装3.4查…

Ubuntu 编译安装Nginx

文章目录 1. apt安装2. 编译安装2.1 启动Nginx 3. 防火墙问题 1. apt安装 # 默认版本安装 apt-get update apt-get install nginx# 选择版本安装 apt-get update apt-cache show nginx apt-get install nginx1.18.0-0ubuntu1.3# 启动 service nginx start# 重启 service nginx…

nginx 编译安装及增加模块

一,安装依赖 yum -y install gcc gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel path二,下载nginx 通过nginx官网下载源码包:http://nginx.org/en/download.html 下载完后通过tar-zxf解压,并进入nginx 三&…

淘宝nginx编译安装

rootrancher:/opt/tnginx# ls -l -d -h * drwxrwxr-x 13 root root 4.0K 3月 29 2021 tengine-2.3.3 -rw-r--r-- 1 root root 2.8M 3月 21 10:03 tengine-2.3.3.tar.gz获取一个包,然后吧他解压 源代码内编辑脚本文件 编译安装需要用到的,编译工具 …

Nginx编译安装及配置文件详解

写在前面 Centos版本:Centos 7.6 - 64bit Nginx版本:1.20.2 一、什么是Nginx Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 二、Nginx用在哪些地方 2.1 静态资源服务 动静…

3-1 Nginx编译安装

文章目录 Nginx服务一、Nginx服务基础1、Nginx简介2、简述Nginx和Apache的差异3、编译安装Nginx服务(Nginx-1.12.2)1)环境准备:关闭防火墙,上传软件包2)安装依赖环境3)创建运行用户、组4&#x…

Nginx编译安装与配置

目录 引言 一、Nignx简介 二、简述Nginx和Apache的差异 三、编译安装Nginx服务 四、新版本升级 五、添加 Nginx 系统服务 六、基于域名的 Nginx 虚拟主机 七、基于IP 的 Nginx 虚拟主机 八、基于端口的 Nginx 虚拟主机 九、Nginx服务的主配置文件 (1&am…