近似线性可分支持向量机的原理推导
近似线性可分的意思是训练集中大部分实例点是线性可分的,只是一些特殊实例点的存在使得这种数据集不适用于直接使用线性可分支持向量机进行处理,但也没有到完全线性不可分的程度。所以近似线性可分支持向量机问题的关键就在于这些少数的特殊点。
相较于线性可分情况下直接的硬间隔最大化策略,近似线性可分问题需要采取一种称为“软间隔最大化”的策略来处理。少数特殊点不满足函数间隔大于1的约束条件,近似线性可分支持向量机的解决方案是对每个这样的特殊实例点引入一个松弛变量 ξ i ⩾ 0 \xi_i \geqslant 0 ξi⩾0 ,使得函数间隔加上松弛变量后大于等于1,约束条件就变为:
y i ( w ⋅ x i + b ) + ξ i ⩾ 1 (9-37) y_i(w \cdot x_i + b) + \xi_i \geqslant 1 \tag{9-37} yi(w⋅xi+b)+ξi⩾1(9-37)
对应的目标函数也变为:
1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i (9-38) \frac{1}{2} ||w||^2 + C \sum_{i=1}^{N} \xi_i \tag{9-38} 21∣∣w∣∣2+Ci=1∑Nξi(9-38)
其中 C C C 为惩罚系数,表示对误分类点的惩罚力度。
跟线性可分支持向量机一样,近似线性可分支持向量机可形式化为一个凸二次规划问题:
min w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i s.t. y i ( w ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , ⋯ , N ξ i ≥ 0 , i = 1 , 2 , ⋯ , N (9-39) \begin{aligned} & \min_{w,b,\xi} \quad \frac{1}{2} \| w \|^2 + C \sum_{i=1}^{N} \xi_i \\ & \text { s.t. } \quad y_i (w \cdot x_i + b) \geq 1 - \xi_i, \quad i = 1, 2, \cdots, N \\ & \quad \xi_i \geq 0, \quad i = 1, 2, \cdots, N \tag{9-39} \end{aligned} w,b,ξmin21∥w∥2+Ci=1∑Nξi s.t. yi(w⋅xi+b)≥1−ξi,i=1,2,⋯,Nξi≥0,i=1,2,⋯,N(9-39)
类似于 9.2.1 节的线性可分离支持向量机的凸二次规划问题,我们同样将其转化为对偶问题进行求解。式(9-39)的对偶问题为:
min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s.t. ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , ⋯ , N (9-40) \begin{aligned} & \min_{\alpha} \quad \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum_{i=1}^{N} \alpha_i \\ & \text { s.t. } \quad \sum_{i=1}^{N} \alpha_i y_i = 0 \\ & \quad 0 \leq \alpha_i \leq C, \quad i = 1, 2, \cdots, N \tag{9-40} \end{aligned} αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi s.t. i=1∑Nαiyi=00≤αi≤C,i=1,2,⋯,N(9-40)
式(9-39)的拉格朗日函数为:
L ( w , b , ξ , α , μ ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i ( y i ( w ⋅ x i + b ) − 1 + ξ i ) − ∑ i = 1 N μ i ξ i (9-41) L(w, b, \xi, \alpha, \mu) = \frac{1}{2} \| w \|^2 + C \sum_{i=1}^{N} \xi_i - \sum_{i=1}^{N} \alpha_i (y_i (w \cdot x_i + b) - 1 + \xi_i) - \sum_{i=1}^{N} \mu_i \xi_i \tag{9-41} L(w,b,ξ,α,μ)=21∥w∥2+Ci=1∑Nξi−i=1∑Nαi(yi(w⋅xi+b)−1+ξi)−i=1∑Nμiξi(9-41)
原始问题为极小极大化问题,则对偶问题为极大极小化问题。同样先对 L ( w , b , ξ , α , μ ) L(w, b, \xi, \alpha, \mu) L(w,b,ξ,α,μ) 求 w , b , ξ w, b, \xi w,b,ξ 的极小,再对其求 α \alpha α 的极大。首先求 L ( w , b , ξ , α , μ ) L(w, b, \xi, \alpha, \mu) L(w,b,ξ,α,μ) 关于 w , b , ξ w, b, \xi w,b,ξ 的偏导,如下:
∂ L ∂ w = w − ∑ i = 1 N α i y i x i = 0 (9-42) \frac{\partial L}{\partial w} = w - \sum_{i=1}^{N} \alpha_i y_i x_i = 0 \tag{9-42} ∂w∂L=w−i=1∑Nαiyixi=0(9-42)
∂ L ∂ b = − ∑ i = 1 N α i y i = 0 (9-43) \frac{\partial L}{\partial b} = - \sum_{i=1}^{N} \alpha_i y_i = 0 \tag{9-43} ∂b∂L=−i=1∑Nαiyi=0(9-43)
∂ L ∂ ξ i = C − α i − μ i = 0 (9-44) \frac{\partial L}{\partial \xi_i} = C - \alpha_i - \mu_i = 0 \tag{9-44} ∂ξi∂L=C−αi−μi=0(9-44)
可解得:
w = ∑ i = 1 N α i y i x i (9-45) w = \sum_{i=1}^{N} \alpha_i y_i x_i \tag{9-45} w=i=1∑Nαiyixi(9-45)
∑ i = 1 N α i y i = 0 (9-46) \sum_{i=1}^{N} \alpha_i y_i = 0 \tag{9-46} i=1∑Nαiyi=0(9-46)
C − α i − μ i = 0 (9-47) C - \alpha_i - \mu_i = 0 \tag{9-47} C−αi−μi=0(9-47)
将式(9-45)~式(9-47)代入式(9-41),有:
min w , b , ξ L ( w , b , ξ , α , μ ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i (9-48) \min_{w,b,\xi} \quad L(w, b, \xi, \alpha, \mu) = - \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) + \sum_{i=1}^{N} \alpha_i \tag{9-48} w,b,ξminL(w,b,ξ,α,μ)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi(9-48)
然后对 min w , b , ξ \min_{w,b,\xi} minw,b,ξ L ( w , b , ξ , α , μ ) L(w,b,\xi,\alpha,\mu) L(w,b,ξ,α,μ) 求 α \alpha α 的极大,可得对偶问题为:
max α L ( w , b , ξ , α , μ ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 C − α i − μ i = 0 α i ≥ 0 μ i ≥ 0 , i = 1 , 2 , … , N (9-49) \begin{aligned} & \max_\alpha L(w,b,\xi,\alpha,\mu) = -\frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) + \sum_{i=1}^N \alpha_i \\ & s.t. \quad \sum_{i=1}^N \alpha_i y_i = 0 \\ & \quad C - \alpha_i - \mu_i = 0 \\ & \quad \alpha_i \geq 0 \\ & \quad \mu_i \geq 0, \quad i = 1, 2, \dots, N \tag{9-49} \end{aligned} αmaxL(w,b,ξ,α,μ)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαis.t.i=1∑Nαiyi=0C−αi−μi=0αi≥0μi≥0,i=1,2,…,N(9-49)
将式(9-49)的第2~4个约束条件式进行变换,消除变量 μ i \mu_i μi 后可简化约束条件为:
0 ≤ α i ≤ C (9-50) 0 \leq \alpha_i \leq C \tag{9-50} 0≤αi≤C(9-50)
联合式(9-48)和式(9-49),并将极大化问题转化为极小化问题,即式(9-40)的对偶问题。跟线性可分支持向量机求解方法一样,近似线性可分问题也是通过求解对偶问题而得到原始问题的解,进而确定线性分隔超平面和分类决策函数。
假设 α ∗ = ( α 1 ∗ , α 2 ∗ , … , α N ∗ ) T \alpha^* = (\alpha_1^*, \alpha_2^*, \dots, \alpha_N^*)^T α∗=(α1∗,α2∗,…,αN∗)T 是对偶最优化问题式(9-40)的解,根据拉格朗日对偶理论相关推论,式(9-40)满足KKT(Karush-Kuhn-Tucker)条件,有:
∂ L ∂ w = w ∗ − ∑ i = 1 N α i ∗ y i x i = 0 (9-51) \frac{\partial L}{\partial w} = w^* - \sum_{i=1}^N \alpha_i^* y_i x_i = 0 \tag{9-51} ∂w∂L=w∗−i=1∑Nαi∗yixi=0(9-51)
∂ L ∂ b = − ∑ i = 1 N α i ∗ y i = 0 (9-52) \frac{\partial L}{\partial b} = -\sum_{i=1}^N \alpha_i^* y_i = 0 \tag{9-52} ∂b∂L=−i=1∑Nαi∗yi=0(9-52)
∂ L ∂ ξ = C − α ∗ − μ ∗ = 0 (9-53) \frac{\partial L}{\partial \xi} = C - \alpha^* - \mu^* = 0 \tag{9-53} ∂ξ∂L=C−α∗−μ∗=0(9-53)
α i ∗ ( y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ ) = 0 (9-54) \alpha_i^*(y_i(w^* \cdot x_i + b^*) - 1 + \xi_i^*) = 0 \tag{9-54} αi∗(yi(w∗⋅xi+b∗)−1+ξi∗)=0(9-54)
μ i ∗ ξ i ∗ = 0 (9-55) \mu_i^* \xi_i^* = 0 \tag{9-55} μi∗ξi∗=0(9-55)
y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ ≥ 0 (9-56) y_i(w^* \cdot x_i + b^*) - 1 + \xi_i^* \geq 0 \tag{9-56} yi(w∗⋅xi+b∗)−1+ξi∗≥0(9-56)
ξ i ∗ ≥ 0 (9-57) \xi_i^* \geq 0 \tag{9-57} ξi∗≥0(9-57)
α i ∗ ≥ 0 (9-58) \alpha_i^* \geq 0 \tag{9-58} αi∗≥0(9-58)
μ i ∗ ≥ 0 , i = 1 , 2 , … , N (9-59) \mu_i^* \geq 0, \quad i = 1, 2, \dots, N \tag{9-59} μi∗≥0,i=1,2,…,N(9-59)
可解得:
w ∗ = ∑ i = 1 N α i ∗ y i x i (9-60) w^* = \sum_{i=1}^N \alpha_i^* y_i x_i \tag{9-60} w∗=i=1∑Nαi∗yixi(9-60)
b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) (9-61) b^* = y_j - \sum_{i=1}^N \alpha_i^* y_i (x_i \cdot x_j) \tag{9-61} b∗=yj−i=1∑Nαi∗yi(xi⋅xj)(9-61)
以上就是近似线性可分支持向量机的基本推导过程。从过程来看,近似线性可分问题求解推导与线性可分问题的求解推导非常类似。
以下是部分公式更加详细的解释:
公式 9-37
公式 9-38
公式 9-40
公式 9-41
公式 9-50
公式 9-51 ~ 9-59
相关文章:
近似线性可分支持向量机的原理推导
近似线性可分的意思是训练集中大部分实例点是线性可分的,只是一些特殊实例点的存在使得这种数据集不适用于直接使用线性可分支持向量机进行处理,但也没有到完全线性不可分的程度。所以近似线性可分支持向量机问题的关键就在于这些少数的特殊点。 相较于…...
Golang开发环境
Golang开发环境搭建 Go 语言开发包 国外:https://golang.org/dl/ 国内(推荐): https://golang.google.cn/dl/ 编辑器 Golang:https://www.jetbrains.com/go/ Visual Studio Code: https://code.visualstudio.com/ 搭建 Go 语言开发环境,需要…...
测试华为GaussDB(DWS)数仓,并通过APISQL快速将(表、视图、存储过程)发布为API
华为数据仓库服务 数据仓库服务(Data Warehouse Service,简称DWS)是一种基于公有云基础架构和平台的在线数据处理数据库,提供即开即用、可扩展且完全托管的分析型数据库服务。DWS是基于华为融合数据仓库GaussDB产品的云原生服务&a…...
使用GetX实现GetPage中间件
前言 GetX 中间件(Middleware)是 GetX 框架中的一种机制,用于在页面导航时对用户进行权限控制、数据预加载、页面访问条件设置等。通过使用中间件,可以有效地控制用户的访问流程,并在适当条件下引导用户到所需页面。 这…...
Navicat 17 功能简介 | SQL 预览
Navicat 17 功能简介 | SQL 预览 随着 17 版本的发布,Navicat 也带来了众多的新特性,包括兼容更多数据库、全新的模型设计、可视化智能 BI、智能数据分析、可视化查询解释、高质量数据字典、增强用户体验、扩展MongoDB 功能、轻松固定查询结果、便捷URI …...
ubuntu、Debian离线部署gitlab
一、软件包下载 gitlab安装包下载链接 ubuntu: ubuntu/focal 适用于 ubuntu20系列 ubuntu/bionic 适用于 ubuntu18 系列 Debian: debian/buster 适用于 Debian10系列 debian/bullseye 适用于 Debian11、12系列 二、安装gitlab ubuntu需要安装一些环境…...
数据库编程 SQLITE3 Linux环境
永久存储程序数据有两种方式: 用文件存储用数据库存储 对于多条记录的存储而言,采用文件时,插入、删除、查找的效率都会很差,为了提高这些操作的效率,有计算机科学家设计出了数据库存储方式 一、数据库 数据库的基本…...
独孤思维:总有一双眼睛默默观察你做副业
01 独孤昨天在陪伴群,分享了近期小白做副业的一些困扰。 并且以自己经历作为案例,分享了一些经验和方法。 最后顺势推出xx博主的关于365条赚钱信息小报童专栏。 订阅后,可以开拓副业赚钱思路,避免走一些弯路。 甚至于&#x…...
医院信息化与智能化系统(10)
医院信息化与智能化系统(10) 这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图,可以试试PlantUML,告诉GPT你的文件结构,让他给你对应…...
基于YOLO11/v10/v8/v5深度学习的危险驾驶行为检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...
Flink CDC系列之:学习理解核心概念——Transform
Flink CDC系列之:学习理解核心概念——Transform Transform参数元数据字段函数比较函数逻辑函数字符串函数时间函数条件函数 示例添加计算列参考元数据列使用通配符投影所有字段添加过滤规则重新分配主键重新分配分区键指定表创建配置分类映射用户定义函数已知限制 …...
MyBatis-Plus:简化 CRUD 操作的艺术
一、关于MyBatis-Plus 1.1 简介 MyBatis-Plus 是一个基于 MyBatis 的增强工具,它旨在简化 MyBatis 的使用,提高开发效率。 关于Mybatis 简介 MyBatis 是一款流行的 Java 持久层框架,旨在简化 Java 应用程序与数…...
Windows on ARM编译安装openBLAS
Windows on ARM编译安装openBLAS 要求下载源码OpenBLAS可以使用LLVM工具链(clang-cl和flang)从源代码为Windows on ARM(WoA)进行构建。v0.3.24版本(预构建包)的构建和测试已通过。 要求 LLVM:版本需大于等于17.0.4 LLVM版本16及以下会生成冲突的符号(如_QQ*等)。 LL…...
FPGA编程语言VHDL与Verilog的比较分析!!!
VHDL(VHSIC硬件描述语言)和Verilog都是用于硬件描述和FPGA编程的工业标准语言。它们在语法和设计理念上存在一些差异,以下是两者的比较分析: 1. 历史背景 VHDL: 开发于1980年代初期,最初用于美国国防部的…...
C语言——八股文(笔试面试题)
1、 什么是数组指针,什么是指针数组? 数组指针:指向数组的指针 指针数组:数组中的元素都是指针 2、 什么是位段,什么是联合体 位段(Bit Field):在C语言中,允许在一个整数…...
解决 Oracle 数据库错误 ORA-12516:监听器无法找到匹配协议栈的处理程序
在使用 Oracle 数据库时,有时会遇到错误 ORA-12516,这个错误表明 Oracle 数据库的监听器无法为新的连接请求找到一个可用的处理程序,这通常是因为达到了连接数上限、配置问题或资源限制。本文将详细介绍如何解决这个问题。 一、错误描述 当…...
Flarum:简洁而强大的开源论坛软件
Flarum简介 Flarum是一款开源论坛软件,以其简洁、快速和易用性而闻名。它继承了esoTalk和FluxBB的优良传统,旨在提供一个不复杂、不臃肿的论坛体验。Flarum的核心优势在于: 快速、简单: Flarum使用PHP构建,易于部署&…...
方法+数组
1. 方法 1. 什么是方法 方法定义: // []表示可写可不写[public] [static] type name ( [type formal , type formal , ...]){方法体;[return value ;] }[修饰符] 返回值类型 方法名称([参数类型 形参 , 参数类型 形参 ...]){方法体代码;[return 返回值…...
驱动-----adc
在key1.c的基础上进行对adc1.c进行编写 首先将文件里面的key全部改为adc 再修改一下设备号 按键和adc的区别是什么,按键只需要按一下就触发了,并且不需要返回一个值出来, adc要初始化,启动,返回值 以下是裸机adc的代码: #include <s3c2440.h> #include "ad…...
js实现点击图片,使图片跟随鼠标移动(把注释打开是图片随机位置)
代码: <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title>&l…...
MacOS的powermetrics命令查看macbook笔记本的耗能情况,附带查看ANE的工作情况
什么是 powermetrics? powermetrics 是 macOS 系统自带的一个命令行工具,用于收集和分析系统能源消耗数据。通过它,我们可以深入了解 Mac 的硬件性能、软件行为以及能源使用情况,从而优化系统配置,提高电池续航时间。…...
字符串函数
大家好,今天我们来了解几个字符串函数 1.strcpy函数 这个函数是一个字符串复制函数,其全称为string copy,它可以将一个源字符数组的内容复制到目标字符数组中,我们需要关注几个问题,首先源字符串必须以\0…...
Java数组的地址和元素访问 C语言空指针与野指针
1. public static void main(String[] args) {int []arr{1,2,3,4,5};int numarr[0];System.out.println(num);System.out.println(arr[1]);System.out.println(arr);//[I610f87f48//[表示地址 I表示数据类型 表示间隔符号(固定格式)//10f87f48表示地址…...
如何在Linux系统中使用SSH进行安全连接
如何在Linux系统中使用SSH进行安全连接 SSH简介 安装SSH 在Debian/Ubuntu系统中安装 在CentOS/RHEL系统中安装 启动SSH服务 验证SSH是否安装成功 SSH配置 配置监听端口 配置登录方式 SSH客户端 安装SSH客户端 使用SSH客户端 SSH密钥认证 生成SSH密钥对 复制公钥到远程服务器…...
Pandas 数据可视化指南:从散点图到面积图的全面展示
Pandas 数据可视化指南:从散点图到面积图的全面展示 本文介绍了使用 Pandas 进行数据可视化的多种方法,包括散点图、折线图、条形图、直方图、饼图和面积图等,涵盖了常见的图表类型及其实现方式。通过提供详细的代码示例,展示了如…...
Flink + Kafka 实现通用流式数据处理详解
Flink Kafka 实现通用流式数据处理详解 在大数据时代,实时数据处理和分析成为企业快速响应市场变化、提高业务效率和优化决策的关键技术。Apache Flink和Apache Kafka作为两个重要的开源项目,在数据流处理领域具有广泛的应用。本文将深入探讨Flink和Ka…...
Docker常用命令汇总
一、Docker基础命令 启动docker:systemctl start docker关闭docker:systemctl stop docker重启docker:systemctl restart dockerdocker设置随服务启动而自启动:systemctl enable docker查看docker 运行状态:systemctl…...
【Java笔记】0-为什么学习Java
呃,当然是为了找个Java的开发工作 当然是由于Java使用的人多和它天生自带的优点了~ 主要优点有以下几点: 简单性 C语法纯净版,没有头文件、指针运算、不用分配内存 面向对象 重点放在对象与其接口上,接近人的逻辑 可移植性 …...
海外云手机是什么?对外贸电商有什么帮助?
在外贸电商领域,流量引流已成为卖家们关注的核心问题。越来越多的卖家开始利用海外云手机,通过TikTok等社交平台吸引流量,以推动商品在海外市场的销售。那么,海外云手机到底是什么?它又能为外贸电商卖家提供哪些支持呢…...
【找到了】有人知道怎么在本地用记事本方式打开Linux文本文件吗?
就类似这种,我输入一个什么命令打开文件,就能在命令窗口上弹出一个编辑器来编辑文件。只记得好像有参数-e啥的。 命令行里面如何打开文本编辑器? () 在linux命令行terminal上使用gedit直接就可以打开文本文件 那么在…...
广州网站模块建设/今日预测足球比分预测
转载于:https://www.cnblogs.com/zzzzw/p/4996246.html...
30日长春疫情/seo外链优化培训
仅作为记录,大佬请跳过。 修改endnote的endnote import,将%B改为%J即可。 文章目录步骤endnote中:Edit——Import Filters——Open Filter Manager——找到Endnote Import——Edit——templates——journal article——修改成%J参考步骤 en…...
wordpress 支付宝付款/广告代发平台
linux就该这么学 笔记(2) RPM(Red Hat Package Manage) 红帽软件包管理器, RPM有点像windows系统中的控制面板, 会建立统一的数据库, 详细记录软件信息并能够自动建立依赖关系,它生成具有.RPM扩展名的文件…...
郑州郑州网站建设河南做网站公司哪家好/台州网站建设优化
文章目录前言参考链接预备知识卷积激活函数池化全连接卷积神经网络CNN网络模型设计代码实现前言 最近太多作业了,也逐渐emo起来,忙里偷闲,抄一份猫狗分类的cnn玩玩。拿别人代码稍微改动了一点,把GPU的部分去掉了,在CP…...
深圳短视频关键词搜索排名推广/seo和sem的概念
1 安装说明 1.1 服务器安装必备软件 在使用该工作流软件之前,有以下一些软件是必须安装: l IIS7.0以上版本(必须); l .Net Framework 4.5(必须); l Active Directory(可选),H3自身…...
哪些大型网站用mysql/竞价排名是什么
项目中我打算使用一个MP4视频作为登录界面背景,首先在静态页面都没法显示出来,后来发现需要将视频的编码格式转换为H264的格式方能正常显示(使用格式工厂转换即可);后又发现视频没办法铺满全屏,在不同的分辨…...