SVM原理理解

news2025/1/20 21:56:47

目录

概念推导:

共识:距离两个点集距离最大的分类直线的泛化能力更好,更能适应复杂数据。

怎么能让margin最大?

最大化margin即:

拉格朗日乘子法:

为什么公式中出现求和符号?

SVM模型:

小结:


学习资料:

猫都能看懂的SVM【从概念理解、优化方法到代码实现】_哔哩哔哩_bilibili

不简单的SVM - 知乎 (zhihu.com)

机器学习中的超平面wx+b=0?_平面方程wx+b=0-CSDN博客

优化-拉格朗日乘子法 - 知乎 (zhihu.com)

概念推导:

样本集:D={(x1,y1),(x2,y2),,,(xn,yn)}

类别标签:y\epsilon \begin{Bmatrix} -1 ,& 1 \end{Bmatrix}

分类直线:f=w^{\Gamma }x+b

f=w^{\Gamma }x+b=0时,表示点在分类直线上;f=w^{\Gamma }x+b>0表示该点在直线上方,表示该点为正样本;f=w^{\Gamma }x+b<0表示该点在直线下方,该点为负样本;将上述转化为数学语言,即:

y_{i}\times (w^{\Gamma }x_{i}+b)\geq 0 

对于二分类问题,我们可以找到许多分类直线将不同点集正确区分。如下图:灰色面中的直线都是分类直线。margin表示间隔。

共识:距离两个点集距离最大的分类直线的泛化能力更好,更能适应复杂数据。

因此我们希望所有的点都被正确分类并且落在两条直线的两侧,且直线内区域尽量大对上述公式进行改进:即(w^{\Gamma }x_{i}+b)在(-1,1)时,不分类

(w^{\Gamma }x_{i}+b)\geq 1        yi=1

(w^{\Gamma }x_{i}+b)\geq -1        yi=-1

y_{i}\times (w^{\Gamma }x_{i}+b)\geq 1

怎么能让margin最大?

计算最大间隔:X_{+}X_{-}表示分类直线边界上里最佳分类直线距离最近的两点;最大间隔margin为X_{+}X_{-}之间的距离,等于d_{+}+d_{-}

由直线外一点到直线的距离:直线:Ax+By+C =0

d=\frac{\begin{vmatrix} Ax+By+C \end{vmatrix}}{(A^{2}+^B{2})^{1/2}}

(二维平面上公式:ax+by+c=0 点坐标为(x,y),二分类散点图上点坐标为(x1,x2)表示不同特征

w和x是矩阵 wx+b=w1x1+w2x2+b。所以直线上点满足w1x1+w2x2+b=0,

机器学习中的超平面wx+b=0?_平面方程wx+b=0-CSDN博客)

得:

d_{+}=\frac{\begin{vmatrix} w^{\Gamma }X_{+}+b \end{vmatrix}}{\begin{Vmatrix} w \end{Vmatrix}} 

d_{-}=\frac{\begin{vmatrix} w^{\Gamma }X_{-}+b \end{vmatrix}}{\begin{Vmatrix} w \end{Vmatrix}}

又:

w^{\Gamma }X_{+}+b=1 

w^{\Gamma }X_{-}+b=-1

得:

margin=\frac{2}{\left \| w \right \|}

最大化margin即:

argmax_{w,b} \frac{2}{\left \| w \right \|},y_{i}\times (w^{\Gamma }x_{i}+b)\geq 1 \Rightarrow

argmin_{w,b} \left \| w \right \|    , \left \| w \right \|=(w1^{2}+w2^{2}+,,,+wn^{2})^{1/2}=(w^{\Gamma }w)^{1/2} \Rightarrow

argmin_{w,b}w^{\Gamma }w

w^{\Gamma }w最小值,需要对w^{\Gamma }w求偏导数,令其等于0,得到可能的极值点

对其求偏导(可以看成w可以看成(w1,w2,w3,,,wn),对w^{\Gamma }w求偏导是多元函数求偏导,对wi求偏导)

\frac{\partial w^{\Gamma }w}{\partial wi}=\frac{\partial (w1^{2}+w2^{2}+,,,wn^{2})}{\partial wi}=2wi\Rightarrow

\frac{\partial \frac{1}{2}w^{\Gamma }w}{\partial wi}=wi

故:

argmax_{w,b} \frac{2}{\left \| w \right \|},y_{i}\times (w^{\Gamma }x_{i}+b)\geq 1 \Rightarrow

argmin_{w,b}\frac{1}{2}w^{\Gamma }w

问题转化:求y_{i}\times (w^{\Gamma }x_{i}+b)\geq 1条件下,\frac{1}{2}w^{\Gamma }w的极值->寻找多元函数不等式约束下极值

拉格朗日乘子法:

优化-拉格朗日乘子法 - 知乎 (zhihu.com)

拉格朗日乘子法(Lagrange multipliers)是一种寻找多元函数在一组约束下极值的方法。

通过引入拉格朗日乘子,可将有 d个变量与 k 个约束条件的最优化问题转化为具有 d+k个变量的无约束优化问题求解。

即:求f(x)在g(x)<=0的极值点。转化为:求L(x,u)=f(x)+ug(x)(u表示为拉格朗日乘子)的极值点。

求L(x,u)极值点的条件:(KKT条件)

\bigtriangledown _{x}L=\bigtriangledown f+u\bigtriangledown g=0

g(x)\leq 0

ug(x)= 0

u\geq 0

y_{i}\times (w^{\Gamma }x_{i}+b)\geq 1条件下,\frac{1}{2}w^{\Gamma }w的极值,数学语言表示:

argmin_{w,b}\frac{1}{2}w^{\Gamma }w

                                s.t. 1-yi(w^{\Gamma }xi+b)\leq 0

L(w,b,\alpha )=\frac{1}{2}w^{\Gamma }w+\sum \alpha _{i}[1-yi(w^{\Gamma }xi+b)] 

为什么公式中出现求和符号?

L(x,u)=f(x)+ug(x)中:一个u对应一个x.

L(w,b,a)中w={w1,w2,,,wn},需要对应n个拉格朗日乘子。L(w,b,\alpha )=\sum L(wi,b,\alpha i)

KKT条件:

\bigtriangledown _{w,b}L=0\Rightarrow\frac{\partial L}{\partial w}=w-\sum aiyixi=0,  \frac{\partial L}{\partial b}=\sum aiyi=0

1-yi(w^{\Gamma }xi+b)\leq 0\Rightarrow yi(wxi+b)\geq 1

\alpha _{i}[1-yi(w^{\Gamma }xi+b)]=0

\alpha _{i}\geq 0

注意:对于不在两分类直线上的点(yi(wxi+b)> 1),\alpha i=0

如图所示:

\frac{\partial L}{\partial w}=w-\sum aiyixi=0\frac{\partial L}{\partial b}=\sum aiyi=0

带入y=w^{\Gamma }x+b.

y=\sum a_{i}y_{i}x_{i} ^{\Gamma }x+b.

SVM模型:

y=\sum a_{i}y_{i}x_{i} ^{\Gamma }x+b

小结:

1.Logistic算法和SVM的区别和联系:

模型不同:y=\sum a_{i}y_{i}x_{i} ^{\Gamma }x+by=w^{\Gamma }x+b,Logistic模型更简单,SVM更复杂。

决策边界不同,都能解决分类问题:Logistic解决二分类问题,得到分类直线;SVM可以解决二分类,使用间隔最大化确定一个决策面。

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

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

相关文章

css弹窗动画效果,示例弹窗从底部弹出

从底部弹出来&#xff0c;有过渡动画效果 用max-height可以自适应内容的高度&#xff0c;当内容会超过最大高度时可以在弹窗里加个scroll-view 弹窗不能用v-if来隐藏&#xff0c;不然transition没效果&#xff0c;transition只能对已有dom元素起效果&#xff0c;所以用透明和v…

55.MQ高级特性

目录 一、RabbitMQ部署指南。 1&#xff09;单机部署。 1.1.下载镜像 1.2.安装MQ 2&#xff09;安装DelayExchange插件。 2.1.下载插件 2.2.上传插件 2.3.安装插件 2.4.使用插件。 3&#xff09;集群部署。 3.1.集群分类 3.2.获取cookie 3.3.准备集群配置 3.4.启…

【开源】基于JAVA语言的农家乐订餐系统

项目编号&#xff1a; S 043 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S043&#xff0c;文末获取源码。} 项目编号&#xff1a;S043&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核…

Day15——File类与IO流

1.java.io.File类的使用 1.1 File类的理解 File 类及本章下的各种流&#xff0c;都定义在 java.io 包下。一个 File 对象代表硬盘或网络中可能存在的一个文件或者文件目录&#xff08;俗称文件夹&#xff09;&#xff0c;与平台无关。&#xff08;体会万事万物皆对象&#xf…

Qt 输入一组数,排序后用柱状图显示

Qt柱状图&#xff0c;需要使用到QChart模块&#xff0c;因此需要在安装Qt时勾选上QChart模块。然后在工程.pro文件中加上 QT charts 参考代码&#xff1a; //MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QPushButton…

Global IIIumination(GI)全局光照原理(一)3D空间全局光照

文章目录 一、Global IIIumination&#xff08;GI&#xff09;全局光照基本概念二、主流的全局光照方法&#xff1a;三、Reflective shadow maps&#xff08;RSM&#xff09;反射阴影贴图 全局光照四、Light Propagation Volumes (LPV)光线传播体积 全局光照1.第一步&#xff0…

Apache Flink(四):Flink 其他实时计算框架对比

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 根据前文描述我们知道Flink主要处…

Qt::UniqueConnection和lambda一块用无效

如果槽函数是lambda。 那么用了Qt::UniqueConnection也会出现槽函数被多次调用的问题。 原因&#xff1a; 参考官方文档&#xff1a; QObject Class | Qt Core 5.15.16https://doc.qt.io/qt-5/qobject.html#connect

UE Websocket笔记

参考链接 [UE4 C入门到进阶]12.Websocket网络通信 - 哔哩哔哩 包含怎么用Nodejs 写测试服务器 UE4_使用WebSocket和Json&#xff08;上&#xff09; - 知乎 包含Python写测试服务器 UE4_使用WebSocket和Json&#xff08;下&#xff09; - 知乎 示例代码 xxx.Build.cs"W…

万界星空科技MES---制造企业的加工生产模式

在现代制造业中&#xff0c;加工生产模式是制造企业组织和管理生产过程的重要方面。不同的加工模式适用于不同的生产需求和产品类型。其中流水型、离散型和混合型是三种常见的加工生产模式。1. 流水型加工模式 流水型加工模式是一种高度自动化的生产方式&#xff0c;适用于…

Django-Redis

NoSQL&#xff1a;(不支持sql语句) Redis MongoDB Hbase hadoop Cassandra hadoop key-value数据库&#xff08;非关系性数据库&#xff09; redis优势 性能高&#xff0c;读取速度快&#xff0c;存在内存中 Redis应用场景 用来做缓存 在某些特定场景下替代传统数据库---社交…

WEB组态编辑器(BY组态)介绍

BY组态是一款非常优秀的纯前端的【web组态插件工具】&#xff0c;可无缝嵌入到vue项目&#xff0c;react项目等&#xff0c;由于是原生js开发&#xff0c;对于前端的集成没有框架的限制。同时由于BY组态只是一个插件&#xff0c;不能独立运行&#xff0c;必须嵌入到你方软件平台…

每日一题:LeetCode-11.盛水最多的容器

每日一题系列&#xff08;day 13&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…

JAVA导出PDF(一)

思路一&#xff1a;直接导出pdf 使用freemarker和itext把html转pdf&#xff0c;存在中文乱码&#xff0c;宋体不识别&#xff0c;需下载simsun.ttc字体&#xff0c;空白占位符不识别等等问题&#xff0c;对前端依赖性较大&#xff0c;不推荐&#xff1b; 适用范围&#xff1a;…

【目标检测从零开始】torch搭建yolov3模型

用torch从0简单实现一个的yolov3模型&#xff0c;主要分为Backbone、Neck、Head三部分 目录 Backbone&#xff1a;DarkNet53结构简介代码实现Step1&#xff1a;导入相关库Step2&#xff1a;搭建基本的Conv-BN-LeakyReLUStep3&#xff1a;组成残差连接块Step4&#xff1a;搭建Da…

idea本地调试hadoop 遇到的几个问题

1.DEA对MapReduce的toString调用报错&#xff1a;Method threw ‘java.lang.IllegalStateException‘ exception. Cannot evaluate org.apache.hadoop.mapreduc 解决方法&#xff1a;关闭 IDEA 中的启用“ tostring() ”对象视图 2.代码和hdfs路径都对的情况下&#xff0c;程序…

如何使用ArcGIS Pro制作类似CAD的尺寸注记

经常使用CAD制图的朋友应该比较熟悉CAD内的尺寸标注&#xff0c;这样的标注看起来直观且简洁&#xff0c;那么在ArcGIS Pro内能不能制作这样尺寸注记呢&#xff0c;答案是肯定的&#xff0c;这里为大家介绍一下制作的方法&#xff0c;希望能对你有所帮助。 数据来源 本教程所…

(JAVA)OpenCV的安装与使用

本安装教程属于CLI安装&#xff0c;Windows用户可以使用Power Shell 官网教程点击查看 安装OpenCV # git克隆项目 git clone git://github.com/opencv/opencv.git cd opencv # 切换对应的版本分支 git checkout 4.x mkdir build && cd build # 生成Makefile cmake -D…

tomcat配置管理员And配置访问静态资源

配置管理员 打开 tomcat\conf\tomcat-users.xml <tomcat-users xmlns"http://tomcat.apache.org/xml"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://tomcat.apache.org/xml tomcat-users.xsd"version&qu…

UE Http笔记

c参考链接 UE4 开发如何使用 Http 请求_wx61ae2f5191643的技术博客_51CTO博客 虚幻引擎:UEC如何对JSON文件进行读写?-CSDN博客 UE4 HTTP使用 官方免费插件 VaRest 在代码插件创建的VaRest - 虚幻引擎商城 UE5在蓝图中使用Varest插件Get&#xff0c;Post两种常见请求方式…