笔记(总结)-SVM(支持向量机)的理解-3

支持向量机(SVM) 支持向量机一、优化目标1.1 支持向量机1.2 建立支持向量机二、大边界的直观理解2.1 代价函数2.2 间距2.3 决策边界2.4 C的设置三、大边界分类3.1 内积3.2 支持向量机四、核函数4.1 对原有特征进行组合4.2 利用核函数计算新特征4.3 例4.4 选择地标4.5 支持向量机假设4.6 支持向量机参数C和σ的影响五、使用支持向量机5.1 步骤5.2 使用准则 一、优化目标 1.1 支持向量机 支持向量机(Support Vector Machine),简称SVM,在学习复杂的非线性方程时 阅读详情

上篇讲述的Soft Margin SVM是为了解决线性不可分的问题,它解决问题的逻辑是通过允许一部分样本分得不那么准确(进入“楚河汉界”)甚至错分,使得在绝大多数样本能够正确地线性可分。本篇引入核函数(kernel),从另一个思维角度来解决线性不可分问题。


问题引入

当样本在某个特征空间不可分时,可以通过将样本映射到另一个特征空间,在该空间中样本分布满足线性可分条件,再使用SVM进行学习分类:
这里写图片描述

根据cover定理:将复杂模式分类问题非线性映射到高维空间比映射到低维空间更加可能线性可分。这直观上是很容易理解的,正如上图所示。

回到我们SVM的问题,对偶问题和判别函数为:

maxW(α)=∑iαi−12∑i∑jαiαjyiyjxTixjmaxW(α)=∑iαi−12∑i∑jαiαjyiyjxiTxj

s.t. ∑iαiyi=0, 0≤αi≤Cs.t. ∑iαiyi=0, 0≤αi≤C

f(x)=wTx+b=(∑iαiyixTi)x+b=∑iαiyi(xTix)+bf(x)=wTx+b=(∑iαiyixiT)x+b=∑iαiyi(xiTx)+b

将目标函数稍微变下形式W(α)=∑iαi−12∑i∑jαiαjyiyj<xi,xj>W(α)=∑iαi−12∑i∑jαiαjyiyj<xi,xj>,可以看到W(α)W(α)最终只和样本内积有关,同样的最终判别函数也只和内积有关。因此在SVM的计算过程中,我们从头到尾对样本的使用都是通过内积形式,建模开销基本上等同于内积运算的开销。

此时我们考虑在不同空间下内积的计算,当样本空间为nn维时,计算一次内积运算需要n次乘法、n−1n−1次加法,时间开销为O(n)。在样本量较大的情况下,将样本从低维空间映射到高维空间,计算内积增加的开销是巨大的。有没有办法能降低这种开销呢?答案是核函数。


核函数(kernel)

给出核函数定义如下:

  • 给定输入空间XX和映射空间H,如果存在映射函数ϕϕ和函数KK,对于任意x,z∈X,满足K(x,z)=<ϕ(x),ϕ(z)>K(x,z)=<ϕ(x),ϕ(z)>,则我们将KK称为核函数。

对于给定的核函数,映射空间和映射函数通常是不唯一的。举例如下:

X为2维空间,K(x,z)=<x,z>2K(x,z)=<x,z>2,取样本x=(x1,x2)x=(x1,x2)和z=(z1,z2)z=(z1,z2),则有:

K(x,z)=<x,z>2=(x1z1+x2z2)2=(x1z1)2+2x1z1x2z2+(x2z2)2K(x,z)=<x,z>2=(x1z1+x2z2)2=(x1z1)2+2x1z1x2z2+(x2z2)2

当HH为3维空间时,取ϕ(x)=(x12,2x1x2,x22)T、ϕ(x)=12√((x1−x2)2,2x1x2,(x1+x2)2)Tϕ(x)=12((x1−x2)2,2x1x2,(x1+x2)2)T都能满足K(x,z)=<ϕ(x),ϕ(z)>K(x,z)=<ϕ(x),ϕ(z)>;当HH为4维空间时,取ϕ(x)=(x12,x1x2,x1x2,x22)T也能满足要求。

当我们不使用核函数时,若HH为4维空间,直接计算ϕ(x)的内积需要4次乘法和3次加法,而使用核函数只需要3次乘法,1次加法,计算次数显著下降。当HH为高维空间时,这种技巧能降低巨大的计算开销。


Kernel SVM

先将线性不可分情况下的样本映射到高维空间,得到对偶问题和判别函数:

maxW(α)=∑iαi−12∑i∑jαiαjyiyj<ϕ(xi),ϕ(xj)>

s.t. ∑iαiyi=0, 0≤αi≤Cs.t. ∑iαiyi=0, 0≤αi≤C

f(x)=wTx+b=(∑iαiyixTi)x+b=∑iαiyi<ϕ(xi),ϕ(xj)>+bf(x)=wTx+b=(∑iαiyixiT)x+b=∑iαiyi<ϕ(xi),ϕ(xj)>+b

使用核函数转换,得到:

maxW(α)=∑iαi−12∑i∑jαiαjyiyjK(xi,xj)maxW(α)=∑iαi−12∑i∑jαiαjyiyjK(xi,xj)

s.t. ∑iαiyi=0, 0≤αi≤Cs.t. ∑iαiyi=0, 0≤αi≤C

f(x)=wTx+b=(∑iαiyixTi)x+b=∑iαiyiK(xi,xj)+bf(x)=wTx+b=(∑iαiyixiT)x+b=∑iαiyiK(xi,xj)+b

不论最后ϕϕ函数映射后的特征空间维度多高,SVM的求解都在原样本空间内用核函数进行。


常用的核

由上所述,选择不同的核函数实际上对应的是不同的映射方式。介绍几种常用的核函数。

线性核

即SVM中最基本的<xi,xj><xi,xj>,不进行任何映射变换。在样本线性可分情况下(实际中一般通过训练Linear SVM观察拟合效果来判断是否线性可分),线性核运算开销小,通常能达到比较好的效果。

多项式核

多项式核定义如下:

K(x,z)=(αxTz+β)pK(x,z)=(αxTz+β)p

多项式核实际中应用比较少,在线性可分情况下性能不如线性核,在线性不可分情况下效果不如高斯核。

高斯核

高斯核(Gaussian Kernel)也称radial basis function(RBF) kernel,定义如下:

K(x,z)=exp(−||x−z||22σ2)K(x,z)=exp⁡(−||x−z||22σ2)

高斯核是最强大、应用最广泛的核函数。线性不可分情况下能展现出强大的分类能力,但是开销较大。为何说高斯核最强大,因为高斯核可以看做“无穷度数的正则化多项式核”。首先将指数函数进行泰勒展开:

exp(xTz)=∑∞0(xTz)ii!exp(xTz)=∑0∞(xTz)ii!

只写出展开式前几项,看得更清晰:

exp(xTz)=1+xTz+(xTz)22!+(xTz)33!+...exp(xTz)=1+xTz+(xTz)22!+(xTz)33!+...

与多项式核定义对比,每一项几乎都是最简化版的多项式核。再考虑将上述指数函数进行正则化:

exp(xTz)exp(xTx)√exp(zTz)√=exp[−12(xTx+zTz−2xTz)]=exp(−||x−z||22)exp(xTz)exp(xTx)exp(zTz)=exp[−12(xTx+zTz−2xTz)]=exp(−||x−z||22)

可以看到我们几乎得到了高斯核,由此可以论证高斯核是“无穷度数的正则化多项式核”,它实际上考虑了常数项、一次项、二次项…一直到无穷多次项,功能强大之处一目了然。

在实际中,具体使用哪种核一是靠经验分析,二是试错调参。在具体应用中,分析数据进行尝试,再通过模型结果反过来理解数据,没有捷径可走。对核有一定的了解能让调参变得更有迹可循。


本文先阐述了核函数的引入来由,具体讲述了核函数的定义和SVM中如何应用核函数来降低计算量,最后列举了SVM中常用的几种核函数并给出解释。

支持向量机(SVM) 综述支持向量机(Support Vector Machines), 是一种二分类模型.也可以通过技巧,转化为多分类模型.比如说libSVM中就使用了one-against-one的策略使得SVM能够扩展到多分类.而libLiner则使用了one-against-rest的策略来扩展SVM. 支持向量机的基本模型: 定义在特征空间上的间隔最大化的线性分类器(间隔最大化也使得SVM区别于感知机 阅读详情

相关推荐

SVM支持向量机

SVM是一种有监督的学习方法,即已知训练点的类别,求训练点与类别之间的对应关系。 从理论基础分析到数学推导,详细介绍SVM算法的算法由来和推导过程。

SJ1820161738的博客 2960

常用的核函数

在机器学习建模过程中,核函数的选择通常和应用场景有关,有专用核函数,但实际上,还是有一些通用核函数,本文重点介绍一些通用核函数,理解核函数,有助于在实战过程中选择合理的调参范围,指导我们对超参数的调整。 常用的核函数有两种,一种是多项式核函数,另外一种是高斯核函数。 1.多项式核函数 数学表达式为:             , 其中为正数,非负,相对于线性和函数可以表达更复杂,非直线的分隔...

小王的博客 1万+

支持向量机SVM理解及公式推导

前言 最近发现自己的基础知识不够扎实,面对别人的问题总是“知其然不知其所以然”。出现这个问题的朋友周围有很多,大多数人都是“拿来主义”,想着“有了开源库,有了函数包,只要会用就行,在遇到具体问题的时候再去寻找相应的解决办法”,这种“非系统”的学习思想其实殆害无穷,在自己想要踏实做一个工程时,会出现眼界窄,能力不足的问题,有时候为解决一个问题千方百计地找到了一个非常好用的函数,而这个...

Freedom_anytime的博客 2015

核函数(多项式,高斯核)以及svm解决回归问题

核函数(多项式,高斯核)以及svm解决回归问题

qq_45906101的博客 5520

详解支持向量机SVM

详解支持向量机SVM详解支持向量机 SVM支持向量机预备知识 深入理解超平面间隔最大化 间隔最大化最优值求解方法 拉格朗日乘数法 拉格朗日乘数法与KKT条件 拉格朗日对偶性间隔最大化最优值求解

Avery123123的博客 1055

高斯核函数与多项式核函数的比较

SVM几种核函数的对比分析以及SVM算法的优缺点

SVM核函数的作用 SVM核函数是用来解决数据线性不可分而提出的,把数据从源空间映射到目标空间(线性可分空间)。 SVM中核函数的种类 1、线性核 优点: 方案首选,奥卡姆剃刀定律 简单,可以求解较快一个QP问题 可解释性强:可以轻易知道哪些feature是重要的 限制:只能解决线性可分问题 2、多项式核 基本原理:依靠升维使得原本线性不可分的数据线性可分; 升维的意义:使得原本线性不可分的数...

qq_29462849的博客 4万+

EtherCAT FOE从站开发实战:SSC工具包实现固件在线升级与文件传输

EtherCAT从站开发中,固件在线升级与文件传输是常见需求。FOE(File Access over EtherCAT)作为邮箱通信协议,在实时总线上提供可靠的文件读写通道,与PDO、DC同步共存。其原理基于SM邮箱和状态机,通过SSC工具包可快速启用。技术价值在于无需拆机即可更新固件、导出日志,提升产线效率。应用场景包括伺服驱动器、IO模块等从站的固件升级与参数配置。本文深入讲解从站侧FOE读写实现、主站调用及工程化建议,助力嵌入式工程师高效开发。

weixin_29169899的博客 127

核函数 高斯核函数,线性核函数,多项式核函数

核函数是我们处理数据时使用的一种方式。对于给的一些特征数据我们通过核函数的方式来对其进行处理。我们经常在SVM中提到核函数,就是因为通过核函数来将原本的数据进行各种方式的组合计算,从而从低维数据到高维数据。比如原来数据下样本点1是x向量,样本点2是y向量,我们把它变成e的x+y次方,就到高维中去了。 把数据映射到高维在我们直观上理解起来是很难的,其实也并不用深刻理解,因为做这些的目的只是为了让机器去理解,帮助机器通过自己的模型去更好的挖掘一些语义信息。所以对于我们人来说,“样本点1是x向量,样本点...

TranSad的博客 3万+

RHCSA Linux环境搭建

安装Linux操作系统一般有三种方式:为了便捷方便高效,因此本人选择通过虚拟机来使用Linux操作系统。先在官网(Download VMware Workstation Pro)下载好VMware workstation pro软件,下载安装完成后,需要激活打开。下载版本不同,所需激活码也不同(激活码可在网络上查找)

weixin_68256171的博客 1421

高斯-约当(Gauss-Jordan)消元法——c++代码实现

具体算法的详细原理请参照此篇博客:高斯-约当(Gauss-Jordan)消元法下面是具体c++代码,不保证程序最优化,提供一个可行的程序,供大家改进,同时感谢大家提意见。——大神勿喷呀,我是一个小菜鸟~void Guss_Jordan(int n,double *a)//阶数n 系数矩阵a { double*a_temp = new double[n*n * 2];//a与单位矩阵的组合

zwz的学习之路 6873

支持向量机(SVM)学习笔记-Python3.6+git代码

(主要是个人的一些记录,如果有遗漏或者错误,仅供参考。。。。) github地址:https://github.com/PANBOHE/study_MachineLearning_Python3.x/tree/master/Svm  

盼你开心 442

魔兽RPG老地图逆向工程:解密三国列传3.0武将招募限制(附JASS实战)

本文详细解析了《三国列传3.0》魔兽RPG地图的武将招募限制机制,通过逆向工程和JASS脚本修改技术,突破SLK加密防线并解密游戏逻辑。文章提供了从工具准备到代码修改的完整实战指南,帮助玩家解除武将数量限制,重温经典游戏的乐趣。

i1j2k的博客 369

PyTorch支持向量机(SVM)详解

支持向量机是一种二分类算法,其目标是找到一个最优的超平面,将不同类别的数据点分隔开。这个超平面被称为决策边界,支持向量机的任务是找到使决策边界最佳的超平面。适用于线性和非线性分类问题。在高维空间中表现出色,适用于处理具有大量特征的数据。通过选择支持向量(距离决策边界最近的数据点)来提高模型的鲁棒性。支持向量机的核心思想是最大化分类间隔(两个类别之间的距离),以确保决策边界尽可能远离数据点。这种距离通常称为间隔(margin)。在下一节中,我们将深入探讨支持向量机的工作原理。

DeepViewInsight的博客 7521

MID360+fastlio功能笔记

前言。

qq_35598561的博客 5307

docker安装fastdfs+nginx配置

docker安装fastdfs+nginx,实现图片或文件的上传与下载

weixin_47325126的博客 2193

基于SVM支持向量机实现人脸识别

文章目录基于SVM支持向量机实现人脸识别SVM支持向量机的定义SVM支持向量机的原理作用如何计算SVM支持向量机的权值w和偏置项b代码实现原理步骤代码实例演示: 基于SVM支持向量机实现人脸识别 本人本科大三,非985,211出身,这是我写的第一篇博客,其目的是对我这段时间学习SVM支持向量机和PCA降维算法的一次总结。若有错误之处,还请各位路过的大神积极指正。若要转载,请注明出处,谢谢! SVM支持向量机的定义 支持向量机(support vector machines,SVM)是一种十分优秀的二分类算法

小叶MW 的博客 3678

无迹卡尔曼滤波 (UKF, Unscented Kalman Filter) 算法详解及案例分析

无迹卡尔曼滤波是一种用于估计非线性系统状态的递归算法。其目标是通过结合系统模型和观测数据,估计系统的最优状态。

闲人编程的博客 2631

机器学习模型3——支持向量机SVM

机器学习模型3——SVM

littleyy666的博客 4648

ONVIF协议简介与协议测试工具使用详解

Onvif协议及协议测试工具使用详解

dvlinker的技术专栏 3万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

两遍读懂支持向量机 SVM (软硬 SVM)

支持向量机 (Support Vector Machine,SVM),也成为最大边界分类器,是上世纪 90 年代发明的性能优异的二元分类器。支持向量机的旨在找到一个合适的超平面使得其决策平面间的间距最大化。

Yongfeng's Blog 4666

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

支持向量机(SVM):理解原理与应用

支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。在机器学习领域,不仅可以用于分类问题,还可以进行回归分析。SVM通过将数据映射到高维空间中,找到一个最优的超平面来划分不同类别的数据点,从而实现了高效准确的分类。

GE90115的博客 1868

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

深入浅出支持向量机(SVM)

支持向量机的基本思想是通过构造一个超平面(Hyperplane)来将不同类别的数据点分开,使得类之间的间隔最大化。换句话说,SVM试图找到一个“最优”的决策边界,使得不同类别的点在该边界的两侧有最大的间隔,从而提高分类的准确性和泛化能力。SVM的目标不仅仅是找到一个可以正确划分数据的超平面,而是尽可能找到一个能够最大化类别间隔的超平面,进而提高模型的鲁棒性和泛化能力。选择最优的超平面:通过最大化类别之间的间隔,找到最佳的分类边界。使用支持向量。

hello.reader 2498

支持向量机SVM在python下的使用

这里我们将简要介绍下SVM是什么,然后将做一些SVM的经典例子,其中也会结合一些其他的算法来完成这些例子 我的配置:Python 3.7+, Pycharm 一 SVM介绍 1.1 SVM可以做什么 手写数字识别 目前最好的识别水平: LeNet 4(错误率<0.7%) 多项式支持向量机(错误率<0.8%) 性别识别 通过SVM来判断是男还是女 行人检测 1.2 SVM的理论基础 1.2.1 超平面的描述 在数学中,超平面是n维欧氏空间中余维度等于1的子空间,即n维空间中的超平面使.

学习记录仪 1983

深入SVM:支持向量机核的作用是什么

​ 您可能听说过所谓的内核技巧,这是一种支持向量机(SVMs)处理非线性数据的小技巧。这个想法是将数据映射到一个高维空间,在这个空间中数据变成线性,然后应用一个简单的线性支持向量机。听起来很复杂,但操作起来确实如此。尽管理解该算法的工作原理可能比较困难,但理解它们试图实现的目标却相当容易。往下读,自然就会明白了! 当数据是线性可分的:线性支持向量机 ​ 支持向量机是如何工作的呢?支持向量机可用于分类和回归任务,但是在本文中,我们将主要关注前者。让我们首先考虑具有线性可分的两个类的数据。我们将创建两个独.

deephub 5880
上一篇: 笔记(总结)-SVM(支持向量机)的理解-2
下一篇: 笔记(总结)-SVM(支持向量机)的理解-4
ZSYGOOOD
博客等级 码龄12年 113粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值