SVM原理理解

目录

概念推导:

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

怎么能让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.mzph.cn/news/205982.shtml

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

相关文章

第59天:django学习(八)

事务 事务是MySQL数据库中得一个重要概念,事务的目的&#xff1a;为了保证多个SQL语句执行成功&#xff0c;执行失败&#xff0c;前后保持一致&#xff0c;保证数据安全。 开启事务的三个关键字 start transaction commit rollback 开启事务 from django.db import transaction…

[足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-6复数Complex Number

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-数学基础Ch0-6复数Complex Number x 2 − 2 x 2 0 ⇒ x 1 i x^2-2x20\Rightarrow x1\pm i x2−2x20⇒x1i 代数表达&#xff1a; z a b i , R e ( z ) a , I m ( z ) b zabi,\mathrm{Re}…

GO设计模式——9、过滤器模式(结构型)

目录 过滤器模式&#xff08;Filter/Criteria Pattern&#xff09; 代码实现 过滤器模式&#xff08;Filter/Criteria Pattern&#xff09; 过滤器模式&#xff08;Filter Pattern&#xff09;或标准模式&#xff08;Criteria Pattern&#xff09;是一种设计模式&#xff0c;…

【深度学习】一维数组的聚类

在学习聚类算法的过程中&#xff0c;学习到的聚类算法大部分都是针对n维的&#xff0c;针对一维数据的聚类方式较少&#xff0c;今天就来学习下如何给一维的数据进行聚类。 方案一&#xff1a;采用K-Means对一维数据聚类 Python代码如下&#xff1a; from sklearn.cluster im…

shell语言判断

目录 判断&#xff1a; shell条件测试 数值比较 文件测试 字符串比较 and和or 流程控制if&#xff1a; 单分支结构&#xff1a; 双分支结构 多分支结构 嵌套结构 调试脚本 注意&#xff1a; 测试语法&#xff1a; 模式匹配&#xff1a;case 判断&#xff1a; …

Vue 防止页面闪烁 v-cloak

v-cloak 指令&#xff1a;用于解决页面渲染的过程中&#xff0c;出现闪烁的问题。 注&#xff1a;当网速较慢&#xff0c;来不及渲染时&#xff0c;页面上就会出现源码【例如&#xff1a;{{ xxx }} 】。 语法格式&#xff1a; <template><div v-cloak>内容</d…

[python库] mistune库的基本使用

前言 mistune库是一个解析Markdown的利器&#xff0c;使用起来非常简单。当我们想要解析Markdown格式的文档时&#xff0c;只需两步就能将其转换成html格式。如下&#xff1a; import mistune mistune.html(YOUR_MARKDOWN_TEXT)安装方式也非常简单&#xff0c;dddd&#xff1…

JavaSE基础50题:10. 计算1/1-1/2+1/3-……+1/99-1/100的值(两种方法)

概述 计算1/1 - 1/2 1/3 - …… 1/99 - 1/100的值。 当分母为偶数时&#xff0c;符号是负的&#xff0c;放分母为奇数时&#xff0c;符号是负的。 方法一 用 flg 做了一个正负交替 【代码】 public static double func() {double sum 0;int flg 1; //设置正负号的for (i…

java中可重入锁是什么?

可重入锁是一种支持同一个线程多次获得同一把锁的锁机制。在 Java 中&#xff0c;synchronized 关键字和 ReentrantLock 类都支持可重入锁。 可重入锁的主要特点是允许同一个线程多次获取同一把锁&#xff0c;而不会导致死锁。这使得在进行递归调用或者多层调用的情况下&#…

CopyOnWriteArraySet怎么用

简介 CopyOnWriteArraySet是一个线程安全的无序集合&#xff0c;它基于“写时复制”的思想实现。它继承自AbstractSet&#xff0c;可以将其理解成线程安全的HashSet。 CopyOnWriteArraySet在读取操作比较频繁、写入操作相对较少的情况下可以提高程序的性能和可靠性。它的线程…

力扣每日一题day29[102. 二叉树的层序遍历]

给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]]示例 2&#xff1a; 输入&…

『亚马逊云科技产品测评』活动征文|基于亚马逊云EC2搭建PG开源数据库

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 亚马逊EC2云服务器&#xff08;Elastic Compute Cloud&#xff09;是亚马…

配置Ubuntu18.04使iptables规则重启系统后仍然有效

第一步&#xff1a;保存iptables规则到文件 /etc/iptables.rules iptables-save > /etc/iptables.rules 第二步&#xff1a;将如下代码写入 /etc/rc.local #!/bin/sh iptables-restore < /etc/iptables.rules 第三步&#xff1a;为 /etc/rc.local 文件赋可执行权限 …

docker安装node及使用

文章目录 一、安装node二、创建node容器三、进入创建的容器如有启发&#xff0c;可点赞收藏哟~ 一、安装node 查看可用版本 docker search node安装最新版本 docker install node:latest二、创建node容器 docker run -itd --name node-test node–name node-test&#xff1…

VUE.js

后端&#xff1a; BookMapper&#xff1a; <select id"selectBybookname" resultMap"BaseResultMap" parameterType"java.lang.String" >select<include refid"Base_Column_List" />from t_book<where><if tes…

NOIP2014提高组第二轮day1 - T3:飞扬的小鸟

#题目链接 [NOIP2014 提高组] 飞扬的小鸟 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏。玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度&#xff0c;让小鸟顺利通过画面右方的管道缝隙。如果小鸟一不小心撞到了水管或者掉在地上的话&#xff0c;便宣告失败…

深度解析 Kafka 消息保证机制

Kafka作为分布式流处理平台的重要组成部分&#xff0c;其消息保证机制是保障数据可靠性、一致性和顺序性的核心。在本文中&#xff0c;将深入探讨Kafka的消息保证机制&#xff0c;并通过丰富的示例代码展示其在实际应用中的强大功能。 生产者端消息保证 1 At Most Once &quo…

pip的常用命令

安装、卸载、更新包&#xff1a;pip install [package-name]&#xff0c;pip uninstall [package-name]&#xff0c;pip install --upgrade [package-name]。升级pip&#xff1a;pip install --upgrade pip。查看已安装的包&#xff1a;pip list&#xff0c;pip list --outdate…

ubuntu22.04 显卡驱动最简单的安装方法

1.拉取可选择安装的显卡驱动版本 sudo apt-get purge nvidia* #apt 的 update 和 upgrade 的区别 #apt update 命令只会获得系统上所有包的最新信息&#xff0c;并不会下载或者安装任何一个包。 #apt upgrade 命令来把这些包下载和升级到最新版本。 2.sudo apt update 3.安装…

EI级 | Matlab实现TCN-GRU-Multihead-Attention多头注意力机制多变量时间序列预测

EI级 | Matlab实现TCN-GRU-Multihead-Attention多头注意力机制多变量时间序列预测 目录 EI级 | Matlab实现TCN-GRU-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.【EI级】Matlab实现TCN-GRU-Multihead-Attention…