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

article/2025/9/25 18:50:23

  在再谈SVM(hard-margin和soft-margin详细推导、KKT条件、核技巧)中我们大致谈到了核函数以及为什么要用核函数,今天在这里更加详细的介绍一下。

核方法

  • 1.核函数概述
  • 2.正定核
    • 2.1定义
    • 2.2证明
  • 3.核技巧
  • 4.常见的核函数

1.核函数概述

  从前面的学习中我们可以看出来,无论是Hard margin SVM还是Soft margin SVM构建的都是一个线性的决策边界,从而把数据集分到各自的类中,如果数据集是一个非线性的,直接使用SVM,得不到一个理想的结果,那么使用线性分类器求解非线性分类问题,需要特殊的处理:

  1. 首先,使用一个变换将原空间的数据映射到新空间中
  2. 然后,在新空间中使用线性分类器求解

在机器学习之逻辑回归(logistics regression)中,我们考虑了这样一个问题:
在这里插入图片描述
  考虑一个简单的二分类问题,有x1,x2两个特征,两个特征值都为0 or 1为C2,否则为C1。在逻辑回归中,输入某一个样本的两个特征值x1,x2,与各自的权重w1,w2相乘,也就是求inner product,最后加上一个bias,得到z,再将z用Sigmoid函数处理,最后与0.5进行比较,就可以判断属于哪一个类别。但是我们将两个特征映射到到一个二维坐标系上,发现根本不可能找到一条直线将两类样本完全分开。这种限制与数据量无关,是逻辑回归自己本身的限制。
  鉴于上面这种情况,就需要用到
Teature Transformation
,即特征转换。用特征转换处理后,使得我们能够用一条直线将C1和C2,也就是上面的红点和蓝点分开。图里面的处理方法是:定义新的x1,x2,x1为点到(0,0)的距离,x2为到点(1,1)的距离,处理后如下图所示:
在这里插入图片描述
  这时候我们发现,就能够找到一条直线将两类点分开,但在实际应用中,我们往往不能够找到比较好的特征变换的方法。
  上面这种其实还是只是二维到二维的转换,实际上我们可以是二维到三维的转换,比如下面这种情况:
在这里插入图片描述
  同样形状与颜色的点代表同一类别。观察上图我们发现,在二维平面上,我们不可能找到一条直线恰好可以将两类样本点分开,但假设我们做如下处理:
在这里插入图片描述
这样我们就将二维的点变换到了三维,这个时候我们再看看分布情况:
在这里插入图片描述

这个时候两个蓝点在一个平面上,两个红点在另一个平面上,在它们之间很容易找到一个超平面来使得它们分开。

  上面啰嗦了一大堆,总结一下就是:当我们在低维空间对样本数据处理时,我们发现用线性的模型无法处理。于是我们便把低维数据引入到高维中,这样就可以用线性的模型去处理。

2.正定核

  我们所说的核函数大部分都是正定核。在下面的探讨中,输入空间为 χ \chi χ x , z ∈ χ x,z\in\chi x,zχ

2.1定义

正定核的定义有两种:

  • 对于 ∀ x , z ∈ χ \forall x,z\in\chi x,zχ,若存在一个函数 ϕ \phi ϕ,使得 K ( x , z ) = < ϕ ( x ) , ϕ ( z ) > K(x,z)=\ <\phi(x),\phi(z)> K(x,z)= <ϕ(x),ϕ(z)>,则称 K ( x , z ) K(x,z) K(x,z)为正定核函数
  • 对于 ∀ x , z ∈ χ \forall x,z\in\chi x,zχ,如果 K ( x , z ) K(x,z) K(x,z)满足对称性以及正定性,则我们也称 K ( x , z ) K(x,z) K(x,z)为正定核函数

   对第一条定义的说明:我们要将低维样本映射到高维,则我们需要一个映射函数,如果我们能够找到一个 ϕ \phi ϕ函数,使得我们定义的 K ( x , z ) K(x,z) K(x,z)恰好是两个高维样本 ϕ ( x ) , ϕ ( z ) \phi(x),\phi(z) ϕ(x),ϕ(z)的内积,则 K ( x , z ) K(x,z) K(x,z)就是一个正定核函数。但上面我们也说了,这个映射函数很不好找。
  为啥一定要是内积?因为内积恰恰是数据挖掘中非常重要的一种计算方式,数据挖掘的很多方法都是借助内积来完成的,所以核函数具有强大的功能。
   对第二条定义的说明:

  • 所谓对称性,是指 K ( x , y ) = K ( y , x ) K(x,y)=K(y,x) K(x,y)=K(y,x)
  • 所谓正定性:对低维空间中任意N个样本 x 1 , x x , . . . , x N x_{1},x_{x},...,x_{N} x1,xx,...,xN,其对应的Gram矩阵是半正定的。什么是Gram矩阵?我们令K表示那N个样本的Gram矩阵:
    在这里插入图片描述
    该矩阵是一个N X N的矩阵,比如(1,1)这个位置就是 K ( x 1 , x 1 ) K(x_{1},x_{1}) K(x1,x1)
    什么是半正定?我们任取一个N维的列向量 α \alpha α,如果满足:
    在这里插入图片描述
    则说明这个N X N的矩阵K是一个半正定的矩阵。

2.2证明

  我们一再强调,映射函数 ϕ \phi ϕ不好找。 那么我们该怎么定义一个正定核?瞎猜吗?显然不是,我们可以根据第二个定义来构造。因此我们需要证明一二两个定义式互通的。
  将一二两个定义结合起来就是:
   K ( x , z ) = < ϕ ( x ) , ϕ ( z ) > K(x,z)=<\phi(x),\phi(z)> K(x,z)=<ϕ(x),ϕ(z)> ⇔ \Leftrightarrow Gram矩阵半正定且K满足对称性。
  下面我们将证明这个结论。先看从左到右,假设已知了 K ( x , z ) = < ϕ ( x ) , ϕ ( z ) > K(x,z)=<\phi(x),\phi(z)> K(x,z)=<ϕ(x),ϕ(z)> ,因为是求内积,所以对称性是显而易见的。那么我们怎么推导出Gram矩阵半正定呢?根据半正定的定义:
在这里插入图片描述
因此正推可以实现。反推暂时不太会。。后期补上。
  因此上述两个定义是相通的。在定义一中,我们得找到一个 ϕ \phi ϕ,这个通常不好找。而在定义二中,我们只需要自己定义一个函数K,然后取任意N个样本,联合K求它们的Gram矩阵,只要该矩阵满足半正定性质,那么我们定义的函数K就是一个正定核函数。

3.核技巧

  什么是核技巧?在SVM的推导中,我们看到:
在这里插入图片描述

注:上述 x j x_{j} xj只是为了便于区分才这样写,实际上是 x i x_{i} xi。我们令:
在这里插入图片描述
于是有:
在这里插入图片描述
  所谓核技巧,就是指我们可以直接计算 K ( x i , x j ) K(x_{i},x_{j}) K(xi,xj)(这个K是已知的,根据定义二可以构造),而不需要真正的去找一个 ϕ ( x ) \phi(x) ϕ(x)(通常是很难找的)。也就是说,我们并不关心低维到高维的映射 ϕ \phi ϕ是什么样子的,我们只需要构造一个函数K,使得该函数可以表示为映射后空间里数据的内积,这样就可以了。

4.常见的核函数

伟大的前人已经帮我们定义好了很多的核函数,常见的有:
在这里插入图片描述


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

相关文章

nginx编译器安装以及编译

一&#xff1a;nginx编译器安装 1&#xff1a;nginx编译器下载安装 http://nginx.org/download/nginx-1.23.1.tar.gz ----下载网址&#xff08;nginx-1.23.1.tar.gz-示例版本&#xff09; 2&#xff1a;将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的时候失败报错&#xff1b; 单独安装此依赖; 安装成功&#xff0c;再继续安装wget&#xff1…

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

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

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.操作系统的选择&#xff0c;centos71.1关闭防火墙、selinux 2.安装编译开发环境2.1安装nginx所需的一些第三方系统库的支持 3.编译安装nginx3.1下载nginx源代码3.2解压缩nginx包&#xff0c;并进入该目录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 编译安装及增加模块

一&#xff0c;安装依赖 yum -y install gcc gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel path二&#xff0c;下载nginx 通过nginx官网下载源码包&#xff1a;http://nginx.org/en/download.html 下载完后通过tar-zxf解压&#xff0c;并进入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获取一个包&#xff0c;然后吧他解压 源代码内编辑脚本文件 编译安装需要用到的&#xff0c;编译工具 …

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

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

3-1 Nginx编译安装

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

Nginx编译安装与配置

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

Nginx编译安装

1. 停止原有的web服务器&#xff1a;端口默认均是80 2. 添加普通用户账号运行nginx useradd -M -s /sbin/nologin nginx3. 解压并安装nginx tar xf nginx-1.8.1.tar.gzcd ngxin-1.8.1/./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-http_stub_stat…

Nginx网站服务

文章目录 一.编译安装Nginx服务(一)认识Nginx服务的主配置文件(二)日志格式设定&#xff08;三&#xff09;访问状态统计配置(四)基于授权的访问控制(五)基于客户端的访问控制 二.域名主机的访问&#xff08;一&#xff09;基于域名的Nginx虚拟主机(二)基于IP的Nginx虚拟主机(三…

Nginx的安装---编译安装

编译安装 1、安装编译环境 yum -y install gcc gcc-c make ncurses ncurses-devel2、安装pcre软件包&#xff08;使nginx支持http rewrite模块&#xff09; yum install -y pcre pcre-devel3、安装openssl-devel&#xff08;使nginx支持ssl&#xff09; yum install -y ope…

2021年计算机保研面试题

准备计算机保研面试题 注意点 大家都是第一次~~~ 没有保研经验&#xff0c;所以担心会被问专业课知识相关的东西。但是结合博主自己的经历&#xff0c;本人双非保到某985&#xff0c;过程中问的最多的是项目相关问题&#xff0c;并不会设计太多专业课问题&#xff0c;问的话也…

linux 网络 sk_buff结构

一、简介 sk_buff的意思是socket buffer&#xff0c;这是Linux网络子系统中的核心数据结构。 定义在 <include/linux/skbuff.h> 中&#xff0c;它由许多变量组成&#xff0c;目标就是满足所有网络协议的需要。 sk_buff 在不同的网络层被使用&#xff08;MAC 或其他在 L…

梳理50道经典计算机网络面试题

我梳理了50道计算机网络面试题&#xff0c;每一道题目都特别经典&#xff0c;大厂也非常喜欢问。相信大家看完&#xff0c;会有新的收获滴~ 1. 说说HTTP常用的状态码及其含义&#xff1f; 思路: 这道面试题主要考察候选人&#xff0c;是否掌握HTTP状态码这个基础知识点。 不管是…

24 张图总结 TCP 基础知识,看完我飘了。

TCP 是一种面向连接的单播协议&#xff0c;在 TCP 中&#xff0c;并不存在多播、广播的这种行为&#xff0c;因为 TCP 报文段中能明确发送方和接受方的 IP 地址。 在发送数据前&#xff0c;相互通信的双方&#xff08;即发送方和接受方&#xff09;需要建立一条连接&#xff0…

【随机过程】19 - 随机过程的线性预测问题

随机过程的线性预测问题 文章目录 随机过程的线性预测问题1. 随机过程的估计问题概述1.1 预测问题1.2 内插问题1.3 滤波问题 2. 随机过程的可预测性2.1 新息过程2.1.1 信息过程的定义2.1.2 估计的子空间分解2.1.3 新息过程的性质 2.2 随机过程的正则性与奇异性2.2.1 正则性和奇…

计算机网络传输层测试

一 单项选择题 1.下列选项中&#xff0c;&#xff08; D &#xff09;是用于传输层寻址的。 A.MAC地址 B.IPv4地址 C.IPv6地址 D.端口 解析&#xff1a;传输层对主机上的不同网络进程进行了编号&#xff0c;用不同的数字区分不同的网络进程。传输层标识网络进程的数字称为传…