AI面试之SVM推导

article/2025/9/13 5:59:07

SVM现在主流的有两个方法。一个是传统的推导,计算支持向量求解的方法,一个是近几年兴起的梯度下降的方法。 梯度下降方法的核心是使用了hinge loss作为损失函数,所以最近也有人提出的深度SVM其实就是使用hinge loss的神经网络。

本文的目的是讲解传统的推导。

SVM的超平面

SVM模型的基本原理,就是寻找一个合适的超平面,把两类的样本正确分开。单个SVM只能处理二分类,多分类需要多个SVM

【什么是超平面?】
超平面就是n维度空间的n-1维度的子空间。换成人话就是2维空间中的1维度的线,三维立体空间的二维平面。


图中总共有5个超平面,那么哪一个是最好的呢?我们认为中间的那个是最好的。因为他对两侧的间隔较大。

SVM基本型

超平面我们可以用这个方程来表示:
w T x + b = 0 \bm{w^Tx}+b=0 wTx+b=0

空间中任意一个点x到这个超平面的垂直距离为:
d = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ d = \frac{|\bm{w^Tx}+b|}{||\bm{w}||} d=wwTx+b

这里不得不提到一下逻辑回归,对于逻辑回归来说:

就是在超平面一侧的样本,逻辑回归给出的预测类别是1,另外一侧就是0.

但是SVM觉得这样有一些过于绝对了,所以:

不仅仅要一个样本在平面的一侧,还要在平面的这一侧足够远的地方,才能算作某一类的样本。


从图中可以看到,两条虚线之外的点,才是SVM能确定是正样本还是负样本的点。

【什么是支持向量?】
图中距离超平面最近的几个训练样本,并且这几个训练样本可以让上式的等号成立。这个点就是支持向量。

【什么是SVM的间隔】
两个不同类别的支持向量到超平面的最小距离之和。其实也就是 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} w2


到这里,我们可以隐隐约约的发现,寻找最优的超平面其实等价于寻找一个最大的间隔,或者说让间隔最大化。所以可以得到:
max ⁡ w , b 2 ∣ ∣ w ∣ ∣ \max_{w,b} \frac{2}{||\bm{w}||} maxw,bw2
这个的约束条件就是:让SVM给正样本的打分大于1,给负样本的打分小于-1,也就是:

简化一下这个约束条件,可以得到:
y i ( w T x i + b ) > = 1 y_i(\bm{w^Tx_i}+b)>=1 yi(wTxi+b)>=1

一般我们都是求取最小化问题,所以把最大化max问题取倒数,变成最小化问题:
min ⁡ w , b ∣ ∣ w ∣ ∣ 2 \min_{w,b} \frac{||\bm{w}||}{2} minw,b2w
这里为了后续的计算方便,最小化 ∣ ∣ w ∣ ∣ ||w|| w等价于最小化 ∣ ∣ w ∣ ∣ 2 ||w||^2 w2,所以得到:
min ⁡ w , b ∣ ∣ w ∣ ∣ 2 2 \min_{w,b} \frac{||\bm{w}||^2}{2} minw,b2w2

总之SVM的基本型就是:

SVM求解

现在求得了基本型。现在可以来进一步优化这个最小化问题。但是首当其冲的问题便是,如何处理这个约束条件。这里用到的方法是拉格朗日乘子法。将约束条件以 α i \alpha_i αi的权重加入到优化问题中,所以可以得到:
L o s s ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) Loss(\bm{w},b,\bm{\alpha})=\frac{1}{2}||w||^2+\sum^m_{i=1}\alpha_i(1-y_i(w^Tx_i+b)) Loss(w,b,α)=21w2+i=1mαi(1yi(wTxi+b))

  • 这里的loss就是我们要最小化的对象;
  • 这里的m就是支持向量的数量。

为了最小化这个问题,对w和b求偏导数,可以得到:
w = ∑ i = 1 m α i y i x i w = \sum^m_{i=1}{\alpha_iy_ix_i} w=i=1mαiyixi
0 = ∑ i = 1 m α i y i 0 = \sum^m_{i=1}{\alpha_iy_i} 0=i=1mαiyi

然后把这两个公式代入到:
L o s s ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) Loss(\bm{w},b,\bm{\alpha})=\frac{1}{2}||w||^2+\sum^m_{i=1}\alpha_i(1-y_i(w^Tx_i+b)) Loss(w,b,α)=21w2+i=1mαi(1yi(wTxi+b))

可以消掉w和b,得到:

约束条件为:

从而根据这个计算出 α i \alpha_i αi的取值,然后得到w和b的取值。

【到底如何求解 α \alpha α?】
上面说的最后一部求解alpha,都是理论可以求解,但是实际中如何做到呢?其实这里如何求解 α \alpha α要用到另外一个条件。

就是上述过程要满足一个叫做KKT的条件(KKT具体是什么有点复杂,就不多说了):

  • 想要第三个公式成立,要么 α i \alpha_i αi等于0,要么 y i f ( x i ) − 1 = 0 y_if(x_i)-1=0 yif(xi)1=0.如果alpha=0,那么意味着这个样本不是支持向量,不应该对SVM超平面起到任何影响,所以是不可能的。所以只有 y i f ( x i ) − 1 = 0 y_if(x_i)-1=0 yif(xi)1=0

加上了这个条件,我们可以求解出来 α i \alpha_i αi的具体数值,然后求解w和b的数值。

假设有3个支持向量,那么就会有三个 α 1 , α 2 , α 3 \alpha_1, \alpha_2, \alpha_3 α1,α2,α3 ,然后根据 y i f ( x i ) − 1 = 0 y_if(x_i)-1=0 yif(xi)1=0可以列出3个关于 α 1 , α 2 , α 3 \alpha_1,\alpha_2,\alpha_3 α1,α2,α3的三元一次方程组,然后得到唯一解。




http://chatgpt.dhexx.cn/article/sWiTyfHW.shtml

相关文章

CS229 SVM 推导和使用心得

这两天要用到SVR的几何解释,特地又翻了CS229 lecture3的笔记。特此记录一下我理解的思路。 从logistic regression引入,说明我们应该更关注于离separating hyperplane近的点,进而引入了margin的概念。 我们想让margin尽量的大,但最直接的functional margin可以通过缩放ω和…

SVM推导过程

推导目标函数 则 w,b等比例缩放,则t*y的值同样缩放,从而: 最大间隔分离超平面: 目标函数: 表示最近点到直线距离尽可能大 函数间隔和几何间隔 分割平面(函数间隔) 。总可以通过等比例缩放w的方法,使…

SVM 推导

参考 http://www.cnblogs.com/jerrylead/archive/2011/03/13/1982639.html http://blog.csdn.net/sinat_22594309/article/details/61615946 http://blog.csdn.net/v_july_v/article/details/7624837 理解SVM 函数间隔->几何间隔->拉格朗日算子->KTT条件 函数间隔 …

SVM 原理详细推导

SVM 原理详细推导 1 硬间隔最大化1.1 函数间隔与几何间隔1.2 间隔最大化1.3 凸二次规划问题求解1.4 一个求解例子 2 软间隔最大化3 线性不可分问题参考 SVM 是一个分类模型,如果训练数据可以完全用一个超平面分开,则称数据集为完全线性可分的&#xff0c…

机器学习笔记:线性SVM推导

什么是SVM 支持向量机简称SVM是最大化分类间隔的线性分类器,如果使用核函数,可以解决非线性问题。支持向量机的目标是寻找一个分类超平面,它不仅能正确的分类每一个样本,并且要使得每一类样本中距离超平面最近的样本到超平面的距…

SVM推导过程浅析

转载请注明出处,原文地址 前言 SVM - support vector machine, 俗称支持向量机,为一种supervised learning算法,属于classification的范畴。本篇文章将会讲述SVM的原理并介绍推导过程。 SVM推导过程 如图,我们有些红色与蓝色点…

svm推导

自己推一遍才印象深刻,CSDN对公式的支持很不好,所以在本地用latex写,并转换成了图片上传

【超详细】支持向量机(SVM)数学推导

目录 一、硬间隔SVM(Hard Margin SVM) 二、对偶问题(Dual Problem) 1.将有约束问题转变为无约束问题 2.强对偶关系 3.计算拉格朗日函数的最小值 4.得到对偶形式 三、对偶形式的求解 1.KKT条件的引入 2.计算w*和b* 四、软间隔SVM(Soft M…

svm原理详细推导

笔者在查阅了大量资料和阅读大佬的讲解之后,终于对svm有了比较深一点的认识,先将理解的推导过程分享如下: 本文主要从如下五个方面进行介绍:基本推导,松弛因子,核函数,SMO算法,小结…

支持向量机SVM推导及求解过程

支持向量机是属于原创性、非组合的具有明显直观几何意义的分类算法,具有较高的准确率。 使用SVM算法的思路:(1)简单情况,线性可分情况,把问题转化为一个凸优化问题,可以用拉格朗日乘子法简化&am…

SVM 公式推导

1、SVM思想 (1)SVM算法的依据就是分类器B的分类间隔比分类器C的分类间隔大。这里涉及到第一个SVM独有的概念”分类间隔”。在保证决策面方向不变且不会出现错分样本的情况下移动决策面,会在原来的决策面两侧找到两个极限位置(越过…

机器学习笔记之十二——SVM原理及推导

svm(support vector machine)是一种二分类算法,它的目标在于寻找一个能将两种点分离的直线或平面或超平面。 如图(来自wiki): 图中的红线将两边数据点分开,这条线就是分割直线,同样…

DFS与DP算法

名词解释: DFS(Dynamic Plan):动态规划 DFS(Depth First Search):深度优先搜索 DFS与DP的关系 很多情况下,dfs和dp两种解题方法的思路都是很相似的,这两种算法在一定程度上是可以互相转化的。 想到dfs也就常常会想到dp…

​Python—数据结构与算法​---动态规划—DP算法(Dynamic Programing)

我们一路奋战, 不是为了改变世界, 而是为了不让世界改变我们。 目录 我们一路奋战, 不是为了改变世界, 而是为了不让世界改变我们。 动态规划——DP算法(Dynamic Programing) 一、🏔斐波那契…

XDOJ(智慧平台)--分配宝藏(用动态规划dp算法解决)(C语言)

------------------------------------------------------------ 作为西电渣渣,这是我第一次接触需要一些很明确的算法的题目。 第一次博客写废话较多hhh,可以直接到下面看分析 我在昨天晚上和舍友一起肝这道题,肝了一个晚上都没有解决&…

dp算法篇Day1

"多希望有人来陪我,度过末日啊~" 讲讲我为什么突然想更新这篇栏目。 想想自己也算 "系统" 接触计算机这个学科也有差不多一年了,回想起当初下定决心要全身心投入到这个专业或者说行业中来,现在到了这样的地步&#xff0c…

第十四周DP算法总结

这周自己主要再看DP算法的博客,感觉DP这一部分内容确实比之前的都要麻烦一些,最后攻克这一部分难题还是挺好的。 这周自己总结了一些题型,以及一些方法思路,最后再把动态规划和之前的分治和贪心做一下比较。下面是详细的总结。 动…

DP算法(Dynamic Programming,俗称动态规划)是最经典算法之一

DP算法(Dynamic Programming,俗称动态规划)是最经典算法之一.本笔记以耳熟能详的数塔问题为引子,深入讨论01背包的解决方法. 首先,如下图所示,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 这个问题,对…

DP算法:动态规划算法

步骤 (1)确定初始状态 (2)确定转移矩阵,得到每个阶段的状态,由上一阶段推到出来 (3)确定边界条件。 例题 蓝桥杯——印章(python实现) 使用dp记录状态&#x…

动态规划(DP)算法初识

先用大白话来说一下几种经典算法大概的意思: 贪心算法:我就一次机会,为了达到目的,其他的我啥也不考虑回溯算法:我有无数次机会,还能怕我有达不到目的的时候?动态规划算法:我能随意…