【西瓜书】支持向量机(SVM)

  • 支持向量机(Support Vector Machine,简称SVM)。

超平面

  • 分类学习最基本的想法就是基于训练集合D在样本空间中找到一个划分超平面,将不同类别的样本分开。

  • 但能将训练样本分开的划分超平面可能有很多,应该努力去找到哪一个呢?直观上看应该去找位于两类训练样本正中间的划分超平面,因为该划分超平面对训练样本局部扰动的“容忍”性最好。这个划分超平面所产生的分类结果是最鲁棒的,对未见示例的泛化能力最强。

  • 西瓜书

  • 在样本空间中划分超平面可通过如下线性方程来描述:
    w T x + b = 0 w^Tx+b=0 wTx+b=0其中: w = ( w 1 ; w 2 ; . . . ; w d ) w=(w_1;w_2;...;w_d) w=(w1;w2;...;wd)为法向量,决定了超平面的方向;
    b b b 为位移项,决定了超平米与原点之间的距离。

  • 划分超平面可以被法向量 w w w 和位移 b b b 确定,记为 ( w , b ) (w, b) (w,b) 。样本空间中人一点 x x x 到超平面 ( w , b ) (w, b) (w,b) 的距离可写为:
    r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r=\frac{|w^Tx+b|}{||w||} r=∣∣w∣∣wTx+b

  • 超平面具有以下性质:

    1. 法向量 w w w 和位移项 b b b 确定一个唯一超平面;
    2. 超平面方程不唯一,因为当等倍缩放 w w w b b b 时(假设缩放倍数为 α),所得的新超平面方程 α w T x + α b = 0 αw^Tx + αb = 0 αwTx+αb=0 w T x + b = 0 w^Tx + b = 0 wTx+b=0 的解完全相同,因此超平面不变,仅超平面方程有变;
    3. 法向量 w w w 垂直于超平面;
    4. 超平面将 n 维空间切割为两半,其中法向量 w w w 指向的那一半空间称为正空间,另一半称为负空间,正空间中的点 x + x^+ x+ 代入进方程 w T x + + b wTx+ + b wTx++b 其计算结果大于 0,反之负空间中的点代入进方程其计算结果小于 0;
    5. n 维空间中的任意点 x 到超平面的距离公式为 r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r=\frac{|w^Tx+b|}{||w||} r=∣∣w∣∣wTx+b,其中 ∥ w ∥ ∥w∥ w 表示向量 w 的模。

支持向量机(SVM)

  • 支持向量机所要求的超平面需要满足三个条件:
    1. 能正确划分正负样本,
    2. 要位于正负样本正中间,
    3. 离正负样本都尽可能远。
  • 距离超平面最近的这几个训练样本点使得上式的等号成立,它们被称为“支持向量 ” (support vector),两个异类支持向量到超平面的距离之和为:
    γ = 2 ∣ ∣ w ∣ ∣ \gamma=\frac{2}{||w||} γ=∣∣w∣∣2它被称为“间隔”(margin)。
  • 要找到具有“最大间隔”(maximum margin)的划分超平面,也就是要找到满足中约束的参数w和b,使得γ最大,即:
    max ⁡ w , b 2 ∥ w ∥ s . t . y i ( w T x + b ) ⩾ 1 , i = 1 , 2 , . . . , m . \begin{align*} &\max_{w,b} \frac{2}{\|w\|} \\&s.t. \,\, y_i(w^Tx+b)\geqslant 1, \,\, i=1,2,...,m. \end{align*} w,bmaxw2s.t.yi(wTx+b)1,i=1,2,...,m.
  • 为了最大化间隔,仅需最大化||w||(-1),则等价于最小化||w||2,于是上式可重写为:
    min ⁡ w , b 1 2 ∥ w ∥ 2 s . t . y i ( w T x + b ) ⩾ 1 , i = 1 , 2 , . . . , m . \begin{align*} &\min_{w,b} \frac{1}{2}{\|w\|}^2 \\&s.t. \,\, y_i(w^Tx+b)\geqslant 1, \,\, i=1,2,...,m. \end{align*} w,bmin21w2s.t.yi(wTx+b)1,i=1,2,...,m.
    这就是支持向量机的基本型。

支持向量机求解

  • 求解下式来得到大间隔划分超平面对应的模型:
    f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b其中w和b是模型参数,注意这个式子本身是一个凸二次规划(convex quadratic programming)问题,能直接用现成的优化计算包来求解。
  • 针对这个问题,SVM提出了很多更高效的办法。
  • 对偶问题:针对上式,使用拉格朗日乘子法可以得到“对偶问题”(dual problem)。
  • SVM的一个重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。支持向量机这个名字强调了此类学习器的关键是如何从支持向量构建出解;同时也暗示着其复杂度主要与支持向量的数目有关。
  • 为了避免在二次规划中,问题的规模正比于训练样本数造成的巨大开销,利用问题本身的特性提出了很多优化算法,SMO(Sequential Minimal Optimization)是著名的代表。

核函数

  • 前面都是假设训练样本是线性可分的,即存在一个划分超平面能将训练样本正确分类,然而在现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面。对于这样的问题可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。

  • 如果原始空间是有限维,即属性数有限,那么一定存在一个高位特征空间使样本可分。

  • x i x_i xi x j x_j xj在特征空间的内积等于它们在原始样本空间中通过函数 κ ( . , . ) κ(., .) κ(.,.) 计算的结果。
    κ ( x i , y i ) = 〈 ϕ ( x i ) , ϕ ( x j ) 〉 = ϕ ( x i ) T ϕ ( x j ) \kappa (x_i, y_i)=〈\phi (x_i),\phi (x_j)〉=\phi (x_i)^T\phi (x_j) κ(xi,yi)=ϕ(xi),ϕ(xj)=ϕ(xi)Tϕ(xj)

  • 将样本映射到特征空间之后的内积,这里的映射函数κ就是“核函数”(Kernel function)。

  • 模型最优解可通过训练样本的核函数展开,这一展式也叫“支持向量展示”(support vector expansion)。

硬间隔、软间隔

  • 之前假设训练样本在样本空间或特征空间中是线性可分的,然而在现实当中往往很难确定合适的核函数使训练样本在特征空间中可分。
  • 缓解该问题的一个办法是允许支持向量机在一些样本上出错,因此引入了“软间隔”(soft margin)的概念。
  • 所有样本都必须划分正确,这称为“硬间隔”(hard margin)。“软间隔”则是允许某些样本不满足约束。
  • 在这里插入图片描述

支持向量回归

  • 在回归问题中,对于给定样本,传统回归模型通常直接基于模型的输出与真实输出之间的差别来计算损失,仅当真实输出与模型输出完全相同时,损失才为0。
  • “支持向量回归”(support vector regression,简称SVR)假设我们容忍真实输出与模型输入之间最多有 ε 的偏差,即仅当两者之间的差别绝对值大于 ε 时才计算损失。

核方法

  • 人们发展出一系列基于核函数的学习方法,统称为“核方法”(kernel methods)。最常见的是通过“核化”(即引入核函数)来将线性学习器扩展为非线性学习器。

相关阅读

【西瓜书】决策树
【西瓜书】神经网络-MP神经元、感知机和多层网络
【西瓜书】神经网络-BP算法(反向传播算法)

资料参考

  • (西瓜书)机器学习·周志华
  • (南瓜书)机器学习公式详解 第 2 版·谢文睿 秦州 贾彬彬

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开源免费】基于SpringBoot+Vue.JS宠物咖啡馆平台(JAVA毕业设计)

博主说明:本文项目编号 T 064 ,文末自助获取源码 \color{red}{T064,文末自助获取源码} T064,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

海康VsionMaster学习笔记(学习工具+思路)

一、前言 VisionMaster算法平台集成机器视觉多种算法组件,适用多种应用场景,可快速组合算法,实现对工件或被测物的查找测量与缺陷检测等。VM算法平台依托海康威视在图像领域多年的技术积淀,自带强大的视觉分析工具库,可…

Linux内核编译流程(Ubuntu24.04+Linux Kernel 6.8.12)

万恶的拯救者,使用Ubuntu没有声音,必须要自己修改一下Linux内核中的相关驱动逻辑才可以,所以被迫学习怎么修改内核&编译内核,记录如下 准备工作 下载Linux源码:在Linux发布页下载并使用gpg签名验证 即&#xff1a…

UE5 打包报错 Unknown structure 的解决方法

在虚幻引擎5.5 打包报错如下: UATHelper: 打包 (Windows): LogInit: Display: LogProperty: Error: FStructProperty::Serialize Loading: Property ‘StructProperty /Game/Components/HitReactionComponent/Blueprints/BI_ReactionInterface.BI_ReactionInterface…

根据导数的定义计算导函数

根据导数的定义计算导函数 1. Finding derivatives using the definition (使用定义求导)1.1. **We want to differentiate f ( x ) 1 / x f(x) 1/x f(x)1/x with respect to x x x**</font>1.2. **We want to differentiate f ( x ) x f(x) \sqrt{x} f(x)x ​ wi…

论文阅读:Dual-disentangled Deep Multiple Clustering

目录 摘要 引言 模型 实验 数据集 实验结果 结论 摘要 多重聚类近年来引起了广泛关注&#xff0c;因为它能够从不同的角度揭示数据的多种潜在结构。大多数多重聚类方法通常先通过控制特征之间的差异性来提取特征表示&#xff0c;然后使用传统的聚类方法&#xff08;如 …

Kafka知识体系

一、认识Kafka 1. kafka适用场景 消息系统&#xff1a;kafka不仅具备传统的系统解耦、流量削峰、缓冲、异步通信、可扩展性、可恢复性等功能&#xff0c;还有其他消息系统难以实现的消息顺序消费及消息回溯功能。 存储系统&#xff1a;kafka把消息持久化到磁盘上&#xff0c…

项目切换Java21

目录 项目启动流程 遇到的问题 目前我们所有的项目都是Java8的&#xff0c;突然交接过来一个Java21的项目&#xff0c;项目启动耗时挺久&#xff0c;本篇记录下问题以及解决方案 项目启动流程 1. 下载Java21 2. 配置Java21 本机环境变量配置 确保path里有Java21路径 3. …

【算法day4】链表:应用拓展与快慢指针

题目引用 两两交换链表节点删除链表的倒数第n个节点链表相交环形链表 1.两两交换链表节点 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&am…

电机控制理论基础及其应用

电机控制理论是电气工程和自动化领域中的一个重要分支&#xff0c;它主要研究如何有效地控制电机的运行状态&#xff0c;包括速度、位置、扭矩等&#xff0c;以满足各种应用需求。电机控制理论的基础知识涵盖了电机的工作原理、数学模型、控制策略以及实现技术等方面。下面是一…

【每天一篇深度学习论文】(IEEE 2024)即插即用特征增强模块FEM

目录 论文介绍题目&#xff1a;论文地址&#xff1a; 创新点方法整体结构 即插即用模块作用消融实验结果即插即用模块代码 论文介绍 题目&#xff1a; FFCA-YOLO for Small Object Detection in Remote Sensing Images 论文地址&#xff1a; https://ieeexplore.ieee.org/d…

『 Linux 』数据链路层 - ARP协议及数据链路层周边问题

文章目录 ARP协议ARP欺骗RARP协议 DNS服务ICMP协议ping 命令正向代理服务器反向代理服务器 ARP协议 博客『 Linux 』数据链路层 - MAC帧/以太网帧中提到,当数据需要再数据链路层进行无网络传输时需要封装为MAC帧,而MAC帧的报文结构如下: 帧头部分存在两个字段分别为 “目的地址…

基于Java Springboot Vue3图书管理系统

一、作品包含 源码数据库设计文档万字全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue3、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA 数据库&#x…

Google Cloud Dataproc 计算 EOD 余额

简介 Google Cloud Dataproc 是 Google Cloud Platform (GCP) 提供的一种完全托管的 Apache Hadoop 和 Apache Spark 服务。它允许用户快速、轻松地在云中创建和管理大数据处理集群&#xff0c;适合需要大规模数据处理、分析和机器学习的场景&#xff0c;能够帮助企业更高效地…

【docker】9. 镜像操作与实战

镜像操作案例 查找镜像 docker search busybox下载镜像 docker pull busybox:1.36.0查看镜像及列表存储位置 rootLAPTOP-H2EI4I6A:~# docker images busybox REPOSITORY TAG IMAGE ID CREATED SIZE busybox latest 517b897a6a83 2 months a…

循环神经网络(RNN)简述

RNN及其变体 1、概述 (一)、概念 RNN(Recurrent Neural Network), 中文称作循环神经网络, 它一般以序列数据为输入, 通过网络内部的结构设计有效捕捉序列之间的关系特征, 一般也是以序列形式进行输出。 RNN的循环机制使模型隐层**上一时间步产生的结果, 能够作为当下时间步…

Conda 管理python开发环境

同步发布于我的网站 &#x1f680; 故事起因: 在公司使用Requests多任务并行开发时遇到了问题&#xff0c;使用 ProcessPoolExecutor 时不能正常发出网络请求&#xff0c;会卡在网络请求发不出去&#xff0c;但是善于用 ThreadPoolExecutor 时是可以的,纠结了很久&#xff0c;一…

python打包深度学习虚拟环境

今天师兄让我把环境打包发给他&#xff0c;我才知道可以直接打包深度学习虚拟环境&#xff0c;这样另一个人就不用辛辛苦苦的去装环境了&#xff0c;我们都知道有些论文他需要的环境很难装上。比如装Apex&#xff0c;装 DCN&#xff0c;mmcv-full 我现在把3090机子上的ppft虚拟…

vue超过三行显示省略号和查看更多按钮

1、超过3行显示省略号和更多按钮&#xff0c;不超过3行正常显示&#xff1b; html: <div class"container"><div style"display: flex;"><div class"content"><div class"text-content" ref"textContentR…

什么是换电系统?驱动新能源汽车发展的“能源驿站”

随着新能源汽车保有量上升&#xff0c;新能源汽车充换电设施需求量同步增加。由于我国土地、电力资源相对紧张&#xff0c;随着车辆保有量继续增加&#xff0c;换电模式有望成为对充电模式的良好补充&#xff0c;具备广阔的中长期发展前景。蔚来是换电领域的先行者&#xff0c;…