【机器学习】支持向量机(SVM)的对偶性、核方法以及核技巧

news2024/11/15 8:48:53

引言

在SVM中,通过引入拉格朗日乘子,可以将原始问题转化为对偶问题,这种转换具有几个重要的优点,包括简化计算和提供更直观的优化问题的解释

文章目录

  • 引言
  • 一、支持向量机(SVM)的对偶性
    • 1.1 原始问题(Primal Problem)
    • 1.2 对偶问题(Dual Problem)
    • 1.3 对偶性的优点
    • 1.4 总结
  • 二、核方法
    • 2.1 基本概念
      • 2.1.1核函数
      • 2.1.2 隐式映射
    • 2.2 应用
      • 2.2.1 支持向量机(SVM)
      • 2.2.2 核岭回归(Kernel Ridge Regression)
      • 2.2.3 核主成分分析(Kernel PCA)
    • 2.3 优点
    • 2.4 局限性
    • 2.5 总结
  • 三、核技巧
    • 3.1 理解问题
    • 3.2 映射到高维空间
    • 3.3 核函数
    • 3.4 应用核技巧
    • 3.5 决策函数
    • 3.6 总结

在这里插入图片描述

一、支持向量机(SVM)的对偶性

支持向量机(SVM)的对偶性是指原始优化问题与对偶优化问题之间的等价性

1.1 原始问题(Primal Problem)

SVM的原始问题是寻找一个超平面,使得不同类别的样本被正确地分开,并且间隔最大。这可以表示为一个凸二次规划问题:
min ⁡ w , b 1 2 ∥ w ∥ 2 \min_{\mathbf{w}, b} \frac{1}{2} \|\mathbf{w}\|^2 w,bmin21w2
subject to:  y i ( w ⋅ x i + b ) ≥ 1 , ∀ i \text{subject to: } y_i (\mathbf{w} \cdot \mathbf{x}_i + b) \geq 1, \quad \forall i subject to: yi(wxi+b)1,i
其中, w \mathbf{w} w 是超平面的法向量, b b b是偏置项, x i \mathbf{x}_i xi是第 i i i个样本的特征向量, y i y_i yi是对应的标签(取值为 +1 或 -1)

1.2 对偶问题(Dual Problem)

通过引入拉格朗日乘子 α i ≥ 0 \alpha_i \geq 0 αi0,我们可以为每个约束构建拉格朗日函数 L ( w , b , α ) L(\mathbf{w}, b, \mathbf{\alpha}) L(w,b,α)
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i α i [ y i ( w ⋅ x i + b ) − 1 ] L(\mathbf{w}, b, \mathbf{\alpha}) = \frac{1}{2} \|\mathbf{w}\|^2 - \sum_i \alpha_i [y_i (\mathbf{w} \cdot \mathbf{x}_i + b) - 1] L(w,b,α)=21w2iαi[yi(wxi+b)1]
接下来,通过求解拉格朗日对偶问题,我们可以得到原始问题的等价形式:
max ⁡ α ∑ i α i − 1 2 ∑ i ∑ j α i α j y i y j x i ⋅ x j \max_{\mathbf{\alpha}} \sum_i \alpha_i - \frac{1}{2} \sum_i \sum_j \alpha_i \alpha_j y_i y_j \mathbf{x}_i \cdot \mathbf{x}_j αmaxiαi21ijαiαjyiyjxixj
subject to:  ∑ i α i y i = 0 , α i ≥ 0 , ∀ i \text{subject to: } \sum_i \alpha_i y_i = 0, \quad \alpha_i \geq 0, \quad \forall i subject to: iαiyi=0,αi0,i

1.3 对偶性的优点

  1. 简化计算:在对偶问题中,我们只需要优化关于 α \alpha α 的二次规划问题,而不是关于 w \mathbf{w} w b b b的原始问题
  2. 稀疏性:在最优解中,大多数 α i \alpha_i αi将为零,这意味着只有少数样本(支持向量)对决策函数有贡献
  3. 核技巧:通过对偶问题,可以方便地引入核函数,允许SVM在非线性特征空间中寻找最优超平面,而不需要显式地计算这些特征
  4. 解释性:对偶问题中的拉格朗日乘子 α i \alpha_i αi可以被解释为每个样本的重要性或权重

1.4 总结

总的来说,SVM的对偶性是机器学习中一个重要的理论结果,它不仅简化了SVM的训练过程,还为我们提供了对模型更深入的理解。通过利用对偶性,SVM在处理高维数据和复杂问题时表现出了强大的能力和灵活性

二、核方法

核方法(Kernel Methods)是一类在机器学习中使用的技术,它们利用核函数来隐式地在高维特征空间中执行计算,而无需直接在高维空间中进行操作。核方法广泛应用于支持向量机(SVM)、核岭回归(Kernel Ridge Regression)、核主成分分析(Kernel PCA)等多种学习算法中

2.1 基本概念

2.1.1核函数

核函数是核方法的核心,它能够计算两个输入样本在隐式映射到高维空间后的内积。常见的核函数包括:

  • 线性核 K ( x i , x j ) = x i T x j K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i^T \mathbf{x}_j K(xi,xj)=xiTxj
  • 多项式核 K ( x i , x j ) = ( γ x i T x j + r ) d K(\mathbf{x}_i, \mathbf{x}_j) = (\gamma \mathbf{x}_i^T \mathbf{x}_j + r)^d K(xi,xj)=(γxiTxj+r)d
  • 径向基函数(RBF)核 K ( x i , x j ) = exp ⁡ ( − γ ∥ x i − x j ∥ 2 ) K(\mathbf{x}_i, \mathbf{x}_j) = \exp(-\gamma \|\mathbf{x}_i - \mathbf{x}_j\|^2) K(xi,xj)=exp(γxixj2)
  • Sigmoid核 K ( x i , x j ) = tanh ⁡ ( γ x i T x j + r ) K(\mathbf{x}_i, \mathbf{x}_j) = \tanh(\gamma \mathbf{x}_i^T \mathbf{x}_j + r) K(xi,xj)=tanh(γxiTxj+r)
    其中, γ \gamma γ r r r d d d是核函数的参数

2.1.2 隐式映射

隐式映射指的是将原始特征空间中的数据点映射到一个高维特征空间的过程,这个过程通常是非线性的。在核方法中,我们不需要显式地知道这个映射函数,只需要知道如何计算核函数

2.2 应用

2.2.1 支持向量机(SVM)

在SVM中,核方法用于处理非线性分类问题。通过将数据映射到高维空间,并在该空间中寻找一个最优的超平面来分隔数据

2.2.2 核岭回归(Kernel Ridge Regression)

核岭回归是一种使用核方法的回归算法,它通过引入核函数来处理非线性回归问题

2.2.3 核主成分分析(Kernel PCA)

核PCA是一种使用核方法的降维技术,它可以将数据映射到高维空间,并在该空间中执行主成分分析,以捕获数据的非线性结构

2.3 优点

  • 处理非线性问题:核方法能够处理在原始特征空间中非线性可分的数据
  • 避免维度灾难:由于不需要显式地计算高维空间中的特征向量,核方法可以避免维度灾难问题

2.4 局限性

  • 计算复杂度:核矩阵的计算和存储可能会非常昂贵,特别是对于大规模数据集
  • 参数选择:选择合适的核函数和参数需要经验和实验

2.5 总结

核方法是机器学习中非常强大和灵活的工具,它们在处理复杂数据关系时显示出其独特的优势。通过巧妙地利用核函数,核方法能够将线性学习算法扩展到非线性领域,从而在多种不同的应用中发挥重要作用

三、核技巧

核技巧(Kernel Trick)是支持向量机(SVM)中的一个关键概念,它允许SVM在非线性特征空间中有效地进行学习,而无需显式地计算这些特征

3.1 理解问题

在许多实际问题中,数据不是线性可分的,这意味着无法通过一个简单的线性超平面来分隔不同类别的数据点。在这种情况下,我们需要将数据映射到一个更高维的空间,在这个空间中,数据可能是线性可分的

3.2 映射到高维空间

核技巧的核心思想是将原始特征向量 x \mathbf{x} x通过一个非线性映射函数 ϕ ( ⋅ ) \phi(\cdot) ϕ()映射到一个高维特征空间 H \mathcal{H} H。在这个高维空间中,我们希望找到一个线性超平面,能够分隔不同类别的数据

3.3 核函数

直接计算映射后的特征向量 ϕ ( x ) \phi(\mathbf{x}) ϕ(x)并在高维空间中求解线性SVM是一个计算上昂贵的过程。核技巧通过使用核函数 K ( x i , x j ) K(\mathbf{x}_i, \mathbf{x}_j) K(xi,xj)来避免这一步骤,核函数能够隐式地计算两个映射后特征向量的内积:
K ( x i , x j ) = ϕ ( x i ) ⋅ ϕ ( x j ) K(\mathbf{x}_i, \mathbf{x}_j) = \phi(\mathbf{x}_i) \cdot \phi(\mathbf{x}_j) K(xi,xj)=ϕ(xi)ϕ(xj)
这意味着我们不需要知道具体的映射函数 ϕ ( ⋅ ) \phi(\cdot) ϕ(),只需要知道如何计算两个映射后特征向量的内积

3.4 应用核技巧

在SVM训练过程中,核技巧的应用步骤如下:

  1. 选择一个合适的核函数
  2. 使用核函数计算训练集中所有样本对的内积,构建核矩阵 K K K
  3. 将核矩阵 K K K代入到对偶问题的优化公式中
  4. 解对偶问题,找到最优的拉格朗日乘子 α \alpha α
  5. 使用支持向量来构建决策函数

3.5 决策函数

最终,SVM的决策函数可以表示为:
f ( x ) = ∑ i ∈ SV α i y i K ( x i , x ) + b f(\mathbf{x}) = \sum_{i \in \text{SV}} \alpha_i y_i K(\mathbf{x}_i, \mathbf{x}) + b f(x)=iSVαiyiK(xi,x)+b
其中,SV 表示支持向量的集合

3.6 总结

通过核技巧,SVM能够高效地处理非线性问题,而不需要显式地计算高维空间中的特征向量。这使得SVM成为一个强大的机器学习工具,适用于多种复杂的数据集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2090294.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【知识库系列】MPR/多模态方向观察:图像视频与3D生成

多模态背后的backbone会长成什么样? 各种模态到梯度下降到最后会不会都差不多? Sora 是不是已经被追上了? 我们真的把视频数据都用好了吗? 知识库完整文档: MPR/多模态方向观察:图像视频与3D生成:https…

【Unity3D优化】优化内置shader的内存占用

一、性能分析 监控项目线上的崩溃情况,绝大多数崩溃都是因为低端设备,运行时内存不足,在运行过程中申请开辟新的内存时Crash了。因此,不定期继续优化内存占用。 性能分析首先主要靠Unity3d的Memory Profiler监控一些可追踪到的内存…

初识redis:学习Java客户端

Redis服务器在官网公开了使用的协议,叫做RESP。任何一个第三方都可以通过上述的协议,来实现出一个和redis服务器通信的客户端程序。 Java生态中,封装好了RESP协议,实现的redis客户端是有很多的,此处使用的是jedis&…

操作系统:实验三进程间通信实验

一、实验目的 1、了解什么是信号。 2、熟悉LINUX系统中进程之间软中断通信的基本原理。 3、理解进程的同步关系。 4、掌握用信号实现进程间的同步操作。 5、了解什么是管道。 6、熟悉UNIX/LINUX支持的管道通信方式。 二、实验内容 1、阅读下列程序,执行程序…

【js逆向专题】1.js语法基础

小节目标: 逆向工具准备熟悉 逆向的基本过程熟悉 JavaScript语法 一.前期准备 1. 技术准备 python基础语法爬虫基础功底JavaScript基础语法知识(可以自己偷偷的学习一些) 2. 工具准备 node解释器 官网地址:https://nodejs.org/zh-cn (推荐安装版本16版本) 把提供的软件…

网络层 IV(ARP、DHCP、ICMP)【★★★★★★】

(★★)代表非常重要的知识点,(★)代表重要的知识点。 一、地址解析协议(ARP)(★★) 在局域网中,由于硬件地址已固化在网卡上的 ROM 中,因此常常将…

Gartner报告解读:如何帮助企业完善数据分析与治理路线图

Gartner服务于全球100多个国家和地区的14,000余家机构,是一家深受客户信赖、观点客观的研究顾问公司。Garnter洞察、建议和工具可帮助您发现创新机遇,完成关键优先任务,助您成为企业不可或缺的战略专家和价值创造者。该公司是标普 500 指数成…

ET6框架(八)事件系统

文章目录 一、事件的定义二、定义异步事件 一、事件的定义 我们打开Client > Unity.Model > Codes > Model > Demo > EventType.cs 即可以查看目前工程中的事件 我们可以此添加事件结构体 我们还需要定义一个事件接收方法,创建路径文件夹及脚本 …

84、 k8s的pod基础+https-harbor

一、pod基础: pod进阶:探针(面试必问—扩缩容,挂载) 1.1、pod的定义 pod是k8s里面的最小单位,pod也是最小运行容器的资源对象。 容器时基于pod在k8s集群当中工作。 在k8s集群当中,一个pod就…

基于Android+SQLite数据库开发Java考试App

项目简介 Java课程考试App是基于AndroidStudio和SQLite数据库开发的一款App可以实现教师考生双端登录并使用相应功能。以Java课程作为设计主题,针对它们设计、实现一个考试APP。满足教师用户通过APP进行考生管理(考生信息的增删改查)、试题管…

Python 项目及依赖管理工具技术选型

Python 项目及依赖管理工具,类似于 Java 中的 Maven 与 Node 中的 npm webpack,在开发和维护项目时起着重要的作用。使用适当的依赖管理工具可以显著提高开发效率,减少依赖冲突,确保项目的稳定性、可靠性和安全性。 一、常见项目…

怎样把图片转换成pdf文件?分享图片转PDF的九个转换方法(新)

图片转为pdf怎么弄?图片和pdf是两种完全不同的文件类型,图片转pdf的是一个比较常见的格式转换需求,尤其是需要分享图片合集时。 图片转换成pdf文件可以借助专业的pdf转换器实现,只需要简单几个步骤就能轻松搞定。无论是图片转pdf&…

北斗系统助力低空经济腾飞:未来发展无限可能

近年来,随着科技的飞速发展,北斗卫星导航系统(Beidou Satellite Navigation System, BDS)在我国乃至全球范围内的应用日益广泛。尤其在低空经济领域,北斗系统作为新基建的重要组成部分,正在发挥着不可替代的…

JMeter之上传文件同时带有参数

文章目录 业务场景使用坑 业务场景 针对下述接口构建jmeter测试&#xff0c;这是个post接口&#xff0c;在上传文件file的同时指定变量groupId的值 PostMapping("/importExcel")public ApiResultDto<String> importExcel(TagChildrenImportDto importDto) {Sec…

Python中对象操作函数

Python中的对象操作函数包括help()、dir()、type()、ascii()等。 1 help()函数 help()函数可以查看指定函数的帮助信息&#xff0c;使用方法如图1所示。 图1 help()函数的使用方法 图1中所示的代码查看了“sorted”函数的帮助信息&#xff0c;包括该函数的作用、参数以及返回…

x264 编码器 AArch64汇编系列:DCT 变换相关汇编函数

DCT变换 在x264_dct_init函数中初始化具体的 dct 实现函数。 4x4 块DCT 变换 c 语言版本实现 4x4DCT 变换函数:sub4x4_dct。pixel_sub_wxh 函数: 这个函数的作用是从两个像素块中减去一个像素块,得到差分值,这些差分值将用于DCT变换。参数: diff:指向存储结果差分值的数组…

高标准城市照明智能化应用,创新城市节能之光

项目背景 在国家推动节约型、智慧化发展的背景下&#xff0c;该城市照明系统亟需智能化升级&#xff0c;以解决现有依赖传统时控器的局限性、能源浪费与照明不足的矛盾&#xff0c;以及依赖人工巡查和市民反馈的低效率、高成本维护等问题。通过引入智能控制系统&#xff0c;实现…

RKNPU2从入门到实践 --- 【10】RKNPU2零拷贝API实现RKNN模型在RK3588开发板上的部署

目录 一、为什么叫零拷贝API&#xff1f; 二、零拷贝API执行流程&#xff08;代码解读&#xff09; 2.1 前奏工作 2.2 main.cc文件的编写&#xff08;代码的编写&#xff09; 2.2.1 第一步&#xff1a;rknn_init接口创建rknn_context对象、加载RKNN模型 2.2.2 第二步…

产品概述Tektronix泰克TCP0030A电流探头TCP0030原装二手

产品概述 Tekronix TCP0030 AC/DC 电流探头是一款高性能且易于使用的探头&#xff0c;它通过可选测量范围增强了带宽&#xff0c;同时还提供了低电流测量能力和精度。Tektronix TCP0030 探头专为具有 TekVPI 探头接口的示波器而设计。 Tektronix TCP0030 AC/DC 电流探头的功能…

浏览器播放RTSP流,支持H264、H265等格式,支持IE、Chrome等浏览器

目录 背景 解决方案 效果 代码 前端代码 后端代码 下载 背景 项目中需要在浏览器中播放RTSP流&#xff0c;实在是不想折腾ActiveX控件 1、麻烦&#xff08;开发麻烦、使用时设置也麻烦&#xff09; 2、非IE浏览器不兼容 解决方案 使用OpenCvSharpNancy写一个解码服…