SVM(支持向量机)

本文深入浅出地介绍了支持向量机(SVM)的基本概念及其数学推导过程,包括如何寻找最佳分类超平面、拉格朗日乘子法的应用、KKT条件等内容,并探讨了线性不可分情况下的解决方案。

1、何为SVM?

① SVM,中文名支持向量机,分类最基本的想法是:在样本空间中找到一个划分超平面,将不同的类别划分开。然而这个划分超平面很多,我们应该去找哪一个呢?如下图所示:

②给定训练样本集D={(x1,y1),(x2,y2),(x3,y3),......,(x1,y1)},Y∈{-1,1},每一个样本(xi,yi)可以看做这个样本的两个特征。

SVM就是去找划分超平面,如何找呢?为了提高鲁棒性,这个平面必须满足,到正负样本点的距离尽可能大(平面到所有正样本点的最小距离要最大化,同理到所有负样本点的最小距离也要最大化)。

2、开始推导SVM

①如何找到这个分割超平面?我们用最简单的集合知识来证明。假设超平面的法向量为W。对于任意一个样本V(x1,x2),那么我们假设向量V在向量W上的投影大于某一值C时,我们认定该样本为正样本,否者为负样本。

W\cdot V\geq C       -------------------------------------------(1)

通过变换(1)式可以写成下面形式(W\cdot V=\left \| W \right \| \cdot \left \|V \right \|\cdot \cos \Theta

W\cdot V+B\geq 0  -------------------------------------------(2)

刚刚(2)式只是判断样本点在超平面的哪一侧(针对测试集)

但是在训练时,如何体现超平面到正负样本的距离尽可能远?后面统称街宽。

WX_{+}+B \geqslant 1      --------------------------------------------(3)

WX_{-}+B \leqslant -1   ---------------------------------------------(4)

这里我们单侧街宽假设为1(SVM最大间隔假设),为什么是1?其实为任何一个值都行,数学中这样写方便计算。其实伸缩W可以同样让其化为1。

对(3)和(4)两边同时乘对应的y_{i}       

y_{i}(WX_{+}+B) \geqslant 1          y_{i}为+1

y_{i}(WX_{-}+B) \geqslant 1         y_{i}为-1

训练集需要满足的一个很重要的公式:

y_{i}(Wx_{i}+B) \geqslant 1   ------------------------------------(5)

现在就是来求街宽,那么很显然,在街边上的点,满足(5)式取等号的情况下。

那么街宽为(X_{+}+X_{-})在法向量W上的投影,再归一化。(X_{+}+X_{-})为图上红色的向量。

Width=(x_{+}-x_{-})\cdot \frac{W}{\left \| W \right \|}    -------------------------------------------------(6)

将(5)式取等,对于x_{+}时,y_{i}为+1,对于x_{-}时,y_{i}为-1,可求出x_{+}x_{-}

x_{+}=\frac{1-b}{w}-----------------------------------------------------------------------(7)

x_{-}=\frac{-1-b}{w}--------------------------------------------------------------------(8)

将(7)和(8)带入到(6)式,可得

Width= \frac{2}{\left \| W \right \|}-----------------------------------------------------------------(9)

求Width的最大值,那么通过转换,求\frac{1}{2}\left \| W \right \|^{2}的最小值,方便求导。

\begin{matrix} min \\ w,b \end{matrix} \left ( \frac{1}{2}\cdot \left \| W \right \|^{2}\right )--------------------------------------------------------------(10)

推导到这一步就已经完成了,就是一个凸二次规划问题,知道约束条件求极值;但是有没有更高效的办法呢?

②拉格朗日乘子法,拉格朗日对偶,KTT条件,SMO

哇,这是个是什么鬼,对于一个学渣而言,一脸懵逼。

拉格朗日乘子法:把原函数和约束条件构成一个新的函数,这样就得到了一个没有约束条件的新函数。

\begin{matrix} min \\ w,b \end{matrix} \left ( \frac{1}{2}\cdot \left \| W \right \|^{2}\right )      -----------------------------------------(10)  原式

y_{i}(Wx_{i}+B) -1\geqslant 0   ----------------------------------------(5)   约束条件

L(w,b,\alpha )= \frac{1}{2}\cdot \left \| W \right \|^{2}- \sum_{i=1}^{N}\alpha _{i}(y_{i}(Wx_{i}+B) -1)------------------(11)新式,拉格朗日函数\alpha _{i}\geq 0

\begin{matrix} max\\ \alpha \end{matrix} \left ( L(w,b,\alpha )\right ) \right    -----------------------------------(12)若该式存在最大值,那么一定满足原式的约件

为什么?

对于构造的拉格朗日函数,\alpha为未知数时,存在最大值那么一定满足约束条件y_{i}(Wx_{i}+B) -1\geqslant 0,否则最大值为无穷大。因此原式可以变换成以下形式。

\begin{matrix} min \\ w,b\end{matrix}\left \{ \begin{matrix} max\\ \alpha \end{matrix} \left ( L(w,b,\alpha )\right ) \right \}-------------------------(13)通过变换,有约束的原式变成没有约束的该式

拉格朗日对偶:就是把min 和 max 交换一下

\begin{matrix} max\\ \alpha \end{matrix}\left \{ \begin{matrix} min \\ w,b\end{matrix}( L(w,b,\alpha )) \right \}-----------------------(14)拉格朗日对偶

原问题的结果>=对偶问题的结果(弱对偶性,都成立)

证明:下面这个式子是已知的,广义拉格朗日函数对α求最大值,那么就是原式\frac{1}{2}\left \| W \right \|^{2};广义拉格朗日函数对w和b求最小值,一定是小于L(w,b,\alpha )\right ),所有满足以下公式。

P^{*}=\begin{matrix} min \\ w,b\end{matrix}(L(w,b,\alpha ))\leqslant L(w,b,\alpha )\leqslant \begin{matrix} max \\ \alpha\end{matrix}(L(w,b,\alpha ))=\frac{1}{2}\left \| W \right \|^{2}=Q^{*}------------(15)

P^{*}\leq Q^{*}----------------------------------------------------------------------------------------------(16)

\begin{matrix} max \\ \alpha\end{matrix}(P^{*})\leqslant \begin{matrix} min \\ w,b\end{matrix}(Q^{*})-----------------------------------------------------------------------(17)

原问题的结果=对偶问题的结果(强对偶性,Slater 条件)

若原始问题为凸优化问题,且存在严格满足约束条件的点w,b,这里的“严格”是指约束条件(5)式中的“≥”严格取到“>”,则原始问题和对偶问题同解。也就是说如果原始问题是凸优化问题并且满足 Slater 条件的话,那么强对偶性成立。需要注意的是,这里只是指出了强对偶成立的一种情况,并不是唯一的情况。例如,对于某些非凸优化的问题,强对偶也成立。SVM 中的原始问题 是一个凸优化问题(二次规划也属于凸优化问题),Slater 条件在 SVM 中指的是存在一个超平面可将数据分隔开,即数据是线性可分的。当数据不可分时,强对偶是不成立的,这个时候寻找分隔平面这个问题本身也就是没有意义了,所以对于不可分的情况预先加个 kernel 就可以了。(可以通过求解对偶问题来得到原始问题的解)
kTT条件:满足ktt条件,是最优值必须满足的条件(针对拉个lg)

\begin{matrix} max\\ \alpha \end{matrix}\left \{ \begin{matrix} min \\ w,b\end{matrix}( L(w,b,\alpha )) \right \}

现在主要的是操作上式,可以先计算min,必须满足kkt条件(kkt条件是针对构建的)。

①w和b偏导为0

L(w,b,\alpha )= \frac{1}{2}\cdot \left \| W \right \|^{2}- \sum_{i=1}^{N}\alpha _{i}(y_{i}(Wx_{i}+B) -1)------------(11)

\frac{\partial L}{\partial W}=W-\sum_{i=1}^{N}\alpha _{i}y_{i}x_{i}=0-----------------------------------------(18)

详细参考,标量对向量求导

\frac{\partial \frac{1}{2}\cdot \left \| W \right \|^{2}}{\partial W}=\frac{\partial (x1^{2}+x2^{2}+x3^{2}+...xn^{2})}{\partial (x1,x2,x3,...,xn)}=(x1,x2,x3,...,xn)=W

\frac{\partial L}{\partial B}=\sum_{i=1}^{N}\alpha _{i}y_{i}=0------------------------------------------------------(19)

②互补松弛条件(就是极值必须满足后面的为0)

\alpha_{i}\cdot (y_{i}(Wx_{i}+B)-1)=0-----------------------------------------(20)

③原约束条件

y_{i}(Wx_{i}+B)-1 \geqslant 0  

\alpha_{i} \geqslant 0

(18)和(19)带入到(11)式中

L(w,b,\alpha )= \frac{1}{2}\cdot \left \| W \right \|^{2}- \sum_{i=1}^{N}\alpha _{i}(y_{i}(Wx_{i}+B) -1)------------------(21)

L(w,b,\alpha )= \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha _{i}\alpha _{j}y_{i}y_{j}x_{i}x_{j}- \sum_{i=1}^{N}\alpha _{i}y_{i}x_{i}W-B\sum_{i=1}^{N}\alpha _{i}y_{i}+\sum_{i=1}^{N}\alpha

L(w,b,\alpha )=- \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha _{i}\alpha _{j}y_{i}y_{j}x_{i}x_{j}+\sum_{i=1}^{N}\alpha-----------------------------(22)

\begin{matrix} max\\ \alpha \end{matrix}(- \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha _{i}\alpha _{j}y_{i}y_{j}x_{i}x_{j}+\sum_{i=1}^{N}\alpha)=\begin{matrix} min\\ \alpha \end{matrix}( \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha _{i}\alpha _{j}y_{i}y_{j}x_{i}x_{j}-\sum_{i=1}^{N}\alpha)

\begin{matrix} min\\ \alpha \end{matrix}( \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha _{i}\alpha _{j}y_{i}y_{j}x_{i}x_{j}-\sum_{i=1}^{N}\alpha)-----------------------(24)原问题转换成这个问题,约束条件是ktt条件

捋一捋思路:

带约束的原问题---->无约束的拉格朗日函数(两者等价)

无约束的拉格朗日函数---->对偶转换(需要证明是强对偶性,才等价)

对偶函数------->满足kkt条件(满足kkt条件的,才是最优解)

其实无论是原广义拉格朗日函数,还是拉格朗日对偶函数(只要满足kkt条件都是最优解,为了方便,进行一步拉格朗日对偶变换)

(例题1)正样本点x_{1}=(3,3)^{^{T}}\dpi{120} \fn_cm x_{1}=(4,3)^{^{T}};负样本点x_{3}=(1,1)^{^{T}},求线性可分支持向量机。\tiny \begin{matrix} min\\ \alpha \end{matrix}( \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha _{i}\alpha _{j}y_{i}y_{j}x_{i}x_{j}-\sum_{i=1}^{N}\alpha)=\frac{1}{2}(18\alpha _{1}^{2}+25\alpha _{2}^{2}+2\alpha _{3}^{2}+42\alpha _{1}\alpha _{2}-12\alpha _{1}\alpha _{3}-14\alpha _{2}\alpha _{3})-\alpha _{1}-\alpha _{2}-\alpha _{3}

kkt条件:

W=\sum_{i=1}^{N}\alpha _{i}y_{i}x_{i}

 \sum_{i=1}^{N}\alpha _{i}y_{i}=0

\alpha_{i}\cdot (y_{i}(Wx_{i}+B)-1)=0

y_{i}(Wx_{i}+B)-1 \geqslant 0  

\alpha_{i} \geqslant 0

根据kkt条件第二个,\alpha _{1}+\alpha _{2}-\alpha _{3}=0\alpha _{3}=\alpha _{1}+\alpha _{2}带入原式

S(\alpha _{1},\alpha _{2})=4\alpha _{1}^{2}+\frac{13}{2}\alpha _{2}^{2}+10\alpha _{1}\alpha _{2}-2\alpha _{1}-2\alpha _{2}

\alpha _{1},\alpha _{2}求偏导并令其为0,S(\alpha _{1},\alpha _{2})在点(1.5,-1)处去极值,但该点不满足约束条件\alpha _{2}\geqslant 0;所有最小值应该在边界上,当\alpha _{1}= 0时,最小值S(0,\frac{2}{13})=-\frac{2}{13},当\alpha _{2}= 0时,最小值S(\frac{1}{4},0)=-\frac{1}{4}。于是S(\alpha _{1},\alpha _{2})\alpha _{1}= \frac{1}{4}\alpha _{2}= 0达到最小值,此时的\alpha _{3}=\alpha _{1}+\alpha _{2}= \frac{1}{4}.

\tiny w=\alpha _{1}y_{1}x_{1}+\alpha _{2}y_{2}x_{2}+\alpha _{3}y_{3}x_{3}=0.25*1*(3,3)+0*1*(4,3)-0.25*1*(1,1)=(0.5,0.5)

\alpha_{1}\cdot (y_{1}(Wx_{1}+B)-1)=0-------------------------B=-2(任意带入一个点即可,\alpha _{2}= 0不行,无意义)

3、线性不可分,通过核方法,转换成线性可分。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值