支持向量机(SVM)学习笔记

在机器学习中,支持向量机是在分类问题和回归问题中常用的监督式的机器学习算法。

SVM原理:

在n维欧式空间中,找到一个最佳的超平面,把数据分为两类,使得每个类到超平面的距离最远。
支持向量机(SVM)学习笔记_第1张图片

目标函数推导:

给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x n , y n ) } D=\{(x_1,y_1),(x_2,y_2),\dots,(x_n,y_n)\} D={(x1,y1),(x2,y2),,(xn,yn)},其中, x ∈ R n , y ∈ { − 1 , + 1 } x\in R^n,y\in\{-1,+1\} xRn,y{1,+1}
类似二维空间中直线的公式,超平面的线性方程为:
w T x + b = 0 w^Tx+b=0 wTx+b=0
SVM希望找到间隔最大的超平面以具有更大的鲁棒性,即一个使得所有点到它距离最大的超平面。类似二维空间中点到直线 A x + B y + C = 0 Ax+By+C=0 Ax+By+C=0的距离:
∣ A x + B y + C ∣ A 2 + B 2 \frac{\vert Ax+By+C\vert}{\sqrt{A^2+B^2}} A2+B2 Ax+By+C
到n维空间后,点 x i = ( x i 1 , x i 2 , … , x i n ) x_i=(x_{i1},x_{i2},\dots,x_{in}) xi=(xi1,xi2,,xin)到超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0的距离:
d = ∣ w T x + b ∣ ∥ w ∥ d=\frac{\vert w^Tx+b\vert}{\| w\|} d=wwTx+b
其中, ∥ w ∥ = w 1 2 + w 2 2 + ⋯ + w n 2 \|w\|=\sqrt{w_1^2+w_2^2+\dots+w_n^2} w=w12+w22++wn2

根据支持向量机的定义,支持向量到超平面的距离为 d d d,其他点到超平面的距离大于 d d d
支持向量机(SVM)学习笔记_第2张图片
因此可以得到以下不等式:
{ ∣ w T x + b ∣ ∥ w ∥ ≥ d , y = 1 ∣ w T x + b ∣ ∥ w ∥ ≤ d , y = − 1 \begin{cases} \frac{\vert w^Tx+b\vert}{\| w\|}\geq d,y=1\\ \frac{\vert w^Tx+b\vert}{\| w\|}\leq d,y=-1 \end{cases} \\ {wwTx+bd,y=1wwTx+bd,y=1
两边除以 d d d
{ ∣ w T x + b ∣ ∥ w ∥ d ≥ 1 , y = 1 ∣ w T x + b ∣ ∥ w ∥ d ≤ − 1 , y = − 1 \begin{cases} \frac{\vert w^Tx+b\vert}{\| w\|d}\geq 1,y=1\\ \frac{\vert w^Tx+b\vert}{\| w\|d}\leq -1,y=-1 \end{cases} \\ {wdwTx+b1,y=1wdwTx+b1,y=1
由于 ∥ w ∥ d > 0 \|w\|d>0 wd>0,不等式可以简化得到为:
{ ∣ w T x + b ∣ ≥ 1 , y = 1 ∣ w T x + b ∣ ≤ − 1 , y = − 1 \begin{cases} \vert w^Tx+b\vert\geq 1,y=1\\ \vert w^Tx+b\vert\leq -1,y=-1 \end{cases} \\ {wTx+b1,y=1wTx+b1,y=1
将两个不等式合并可得到:
y ( w T x + b ) ≥ 1 y(w^Tx+b)\geq1 y(wTx+b)1
即得到最大间隔超平面的上下两个超平面:
支持向量机(SVM)学习笔记_第3张图片
由于 y ∈ { − 1 , + 1 } y\in\{-1,+1\} y{1,+1},所以:
∣ w T x + b ∣ = y ( w T x + b ) \vert w^Tx+b\vert=y(w^Tx+b) wTx+b=y(wTx+b)
因此,每个支持向量到超平面的距离可以写为:
d = ∣ w T x + b ∣ ∥ w ∥ = y ( w T x + b ) ∥ w ∥ d=\frac{\vert w^Tx+b\vert}{\| w\|}=\frac{y(w^Tx+b)}{\| w\|} d=wwTx+b=wy(wTx+b)
SVM的目的是找到距离最远的超平面,因此最优化问题为:
max ⁡ w , b 2 y ( w T x + b ) ∥ w ∥ \max_{w,b}2\frac{y(w^Tx+b)}{\| w\|} w,bmax2wy(wTx+b)
由于支持向量是在最远的超平面的上的,因此支持向量满足 y ( w T x + b ) = 1 y(w^Tx+b)=1 y(wTx+b)=1,目标问题可以进一步简化为:
max ⁡ w , b 2 ∥ w ∥ \max_{w,b}\frac{2}{\| w\|} w,bmaxw2
继续对目标进行转换,转化为标准的最优化问题为:
min ⁡ w , b 1 2 ∥ w ∥ 2 \min_{w,b}\frac{1}{2}\|w\|^2 w,bmin21w2
SVM最优化的问题的目标函数最终为:
min ⁡ w , b 1 2 ∥ w ∥ 2 s . t . y i ( w T x i + b ) ≥ 1 \min_{w,b}\frac{1}{2}\|w\|^2\\ s.t. \hspace{2mm}y_i(w^Tx_i+b)\geq1 w,bmin21w2s.t.yi(wTxi+b)1

优化问题求解:

使用拉格朗日乘子法构造拉格朗日函数:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i ( y i ( w T x i + b ) − 1 ) L(w,b,\alpha)=\frac{1}{2}\|w\|^2-\sum_{i=1}^n\alpha_i(y_i(w^Tx_i+b)-1) L(w,b,α)=21w2i=1nαi(yi(wTxi+b)1)
根据拉格朗日对偶性,原始问题的对偶问题为:
max ⁡ α min ⁡ w , b L ( w , b , α ) \max_\alpha\min_{w,b}L(w,b,\alpha) αmaxw,bminL(w,b,α)
分别对 w w w b b b求偏导为0:
∂ L ∂ w = w − ∑ i = 1 n α i y i x i = 0 ∂ L ∂ b = − ∑ i = 1 n α i y i = 0 \frac{\partial L }{\partial w}=w-\sum_{i=1}^n\alpha_iy_ix_i=0\\ \frac{\partial L }{\partial b}=-\sum_{i=1}^n\alpha_iy_i=0 wL=wi=1nαiyixi=0bL=i=1nαiyi=0
得到 w w w b b b为:
w = ∑ i = 1 n α i y i x i ∑ i = 1 n α i y i = 0 w=\sum_{i=1}^n\alpha_iy_ix_i\\ \sum_{i=1}^n\alpha_iy_i=0 w=i=1nαiyixii=1nαiyi=0
将得到的 w w w b b b带入拉格朗日函数 L L L中,从而得到目标问题的对偶问题:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i ( y i ( w T x i + b ) − 1 ) = 1 2 w T w − w T ∑ i = 1 n α i y i x i − b ∑ i = 1 n α i y i + ∑ i = 1 n α i = 1 2 w T ∑ i = 1 n α i y i x i − w T ∑ i = 1 n α i y i x i − b ⋅ 0 = ∑ i = 1 n α i − 1 2 ( ∑ i = 1 n α i y i x i ) T ∑ j = 1 n α j y j x j = ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n α i α j y i y j x i T x j \begin{aligned} L(w,b,\alpha)&=\frac{1}{2}\|w\|^2-\sum_{i=1}^n\alpha_i(y_i(w^Tx_i+b)-1)\\ &=\frac{1}{2}w^Tw-w^T\sum_{i=1}^n\alpha_iy_ix_i-b\sum_{i=1}^n\alpha_iy_i+\sum_{i=1}^n\alpha_i\\ &=\frac{1}{2}w^T\sum_{i=1}^n\alpha_iy_ix_i-w^T\sum_{i=1}^n\alpha_iy_ix_i-b\cdot0\\ &=\sum_{i=1}^n\alpha_i-\frac{1}{2}(\sum_{i=1}^n\alpha_iy_ix_i)^T\sum_{j=1}^n\alpha_jy_jx_j\\ &=\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i,j=1}^n\alpha_i\alpha_jy_iy_jx_i^Tx_j \end{aligned} L(w,b,α)=21w2i=1nαi(yi(wTxi+b)1)=21wTwwTi=1nαiyixibi=1nαiyi+i=1nαi=21wTi=1nαiyixiwTi=1nαiyixib0=i=1nαi21(i=1nαiyixi)Tj=1nαjyjxj=i=1nαi21i,j=1nαiαjyiyjxiTxj

得到的拉格朗日方程只含唯一的变量 α \alpha α,因此,对求 α \alpha α求极大,即对偶问题的解:
max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n α i α j y i y j x i T x j s . t . ∑ i = 1 n α i y i = 0 , α i ≥ 0 , i = 1 , 2 , ⋯   , n \max_{\alpha}\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i,j=1}^n\alpha_i\alpha_jy_iy_jx_i^Tx_j\\ s.t.\hspace{2mm}\sum_{i=1}^n\alpha_iy_i=0,\alpha_i\geq0,i=1,2,\cdots,n αmaxi=1nαi21i,j=1nαiαjyiyjxiTxjs.t.i=1nαiyi=0,αi0,i=1,2,,n

对于求该对偶问题的求解,采用SMO(Sequential Minimal Optimization)算法进行求解,即对 α = ( α 1 , α 2 , ⋯   , α n ) \alpha=(\alpha_1,\alpha_2,\cdots,\alpha_n) α=(α1,α2,,αn)进行优化
具体推导较为复杂,详情可参考另外一位博主的:SMO算法详解

软间隔

由于真实数据并非是线性可分的,因此允许支持向量机在一些样本上出错,即之前的找超平面的条件放宽一点,因此引入“软间隔”概念,而之前的完全线性可分也被称为“硬间隔”。
支持向量机(SVM)学习笔记_第4张图片
为了衡量到底“软”到什么程度,因此为每一个样本引入松弛变量 ξ i \xi_i ξi,且 ξ i ≥ 0 \xi_i\geq0 ξi0,因此:
y i ( w T x i + b ) ≥ 1 − ξ i y_i(w^Tx_i+b)\geq1-\xi_i yi(wTxi+b)1ξi
因此优化目标从 min ⁡ w , b 1 2 ∥ w ∥ 2 \min_{w,b}\frac{1}{2}\|w\|^2 minw,b21w2 变为了:
min ⁡ w , b 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ξ i s . t . y i ( w T x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 \min_{w,b}\frac{1}{2}\|w\|^2+C\sum_{i=1}^n\xi_i\\ s.t. \hspace{2mm}y_i(w^Tx_i+b)\geq1-\xi_i, \hspace{2mm}\xi_i\geq0 w,bmin21w2+Ci=1nξis.t.yi(wTxi+b)1ξi,ξi0
其中, C C C为一个大于0的常数,作为错误样本的惩罚程度。若 C C C无穷大, ξ i \xi_i ξi必然无穷小,因此又退化为线性可分的SVM了。

同样,类似线性SVM,对新的优化目标求解最优化问题:
构造拉格朗日函数:
L ( w , b , ξ , α , β ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ξ i − ∑ i = 1 n α i ( y i ( w T x i + b ) − 1 + ξ i ) − ∑ i = 1 n β i ξ i L(w,b,\xi,\alpha,\beta)=\frac{1}{2}\|w\|^2+C\sum_{i=1}^n\xi_i-\sum_{i=1}^n\alpha_i(y_i(w^Tx_i+b)-1+\xi_i)-\sum_{i=1}^n\beta_i\xi_i L(w,b,ξ,α,β)=21w2+Ci=1nξii=1nαi(yi(wTxi+b)1+ξi)i=1nβiξi
其对偶问题为:
max ⁡ α , β min ⁡ w , b , ξ ( w , b , ξ , α , β ) \max_{\alpha,\beta}\min_{w,b,\xi}(w,b,\xi,\alpha,\beta) α,βmaxw,b,ξmin(w,b,ξ,α,β)

分别对 w , b , ξ w,b,\xi w,b,ξ求偏导为0:
∂ L ∂ w = w − ∑ i = 1 n α i y i x i = 0 ∂ L ∂ b = − ∑ i = 1 n α i y i = 0 ∂ L ∂ ξ = C − α i − β i = 0 \frac{\partial L }{\partial w}=w-\sum_{i=1}^n\alpha_iy_ix_i=0\\ \frac{\partial L }{\partial b}=-\sum_{i=1}^n\alpha_iy_i=0\\ \frac{\partial L }{\partial\xi}=C-\alpha_i-\beta_i=0 wL=wi=1nαiyixi=0bL=i=1nαiyi=0ξL=Cαiβi=0
得到 w w w b b b为:
w = ∑ i = 1 n α i y i x i ∑ i = 1 n α i y i = 0 C = α i + β i w=\sum_{i=1}^n\alpha_iy_ix_i\\ \sum_{i=1}^n\alpha_iy_i=0\\ C=\alpha_i+\beta_i w=i=1nαiyixii=1nαiyi=0C=αi+βi

带回到构造的拉格朗日函数中:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ξ i + ∑ i = 1 n α i ( 1 − ξ i − y i ( w T x i + b ) ) − ∑ i = 1 n β i ξ i = ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j + ∑ i = 1 n ( C − α i − β i ) ξ i = ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j \begin{aligned} L(w,b,\alpha)&=\frac{1}{2}\|w\|^2+C\sum_{i=1}^n\xi_i+\sum_{i=1}^n\alpha_i(1-\xi_i-y_i(w^Tx_i+b))-\sum_{i=1}^n\beta_i\xi_i\\ &=\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_jx_i^Tx_j+\sum_{i=1}^n(C-\alpha_i-\beta_i)\xi_i\\ &=\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_jx_i^Tx_j \end{aligned} L(w,b,α)=21w2+Ci=1nξi+i=1nαi(1ξiyi(wTxi+b))i=1nβiξi=i=1nαi21i=1nj=1nαiαjyiyjxiTxj+i=1n(Cαiβi)ξi=i=1nαi21i=1nj=1nαiαjyiyjxiTxj

因此,目前只剩唯一 α \alpha α,目前问题变成最大化 α \alpha α
max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j s . t . ∑ i = 1 n α i y i = 0 , a i ≥ 0 , C = α i + β i \max_\alpha\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_jx_i^Tx_j\\ s.t. \hspace{0.3mm}\sum_{i=1}^n\alpha_iy_i=0,a_i\geq0,C=\alpha_i+\beta_i αmaxi=1nαi21i=1nj=1nαiαjyiyjxiTxjs.t.i=1nαiyi=0,ai0,C=αi+βi
同样用SMO算法求解

对于硬间隔和软间隔是针对数据完全线性可分和大部分线性可分的情况,而当遇到的数据集是非线性可分的时候,就需要用到支持向量机的核函数将线性的支持向量机推广到非线性的支持向量机。因此需要把原本的样本点通过映射函数 Φ \Phi Φ映射到新的空间。
因此分割超平面表示为:

f ( x ) = w Φ ( x ) + b f(x)=w\Phi(x)+b f(x)=wΦ(x)+b
同样,非线性SVM的对偶问题变成了:
max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j Φ ( x i ) Φ ( x j ) s . t . ∑ i = 1 n α i y i = 0 , a i ≥ 0 , C = α i + β i \max_\alpha\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\Phi(x_i)\Phi(x_j)\\ s.t. \hspace{0.3mm}\sum_{i=1}^n\alpha_iy_i=0,a_i\geq0,C=\alpha_i+\beta_i αmaxi=1nαi21i=1nj=1nαiαjyiyjΦ(xi)Φ(xj)s.t.i=1nαiyi=0,ai0,C=αi+βi
同样用SMO算法求解


参考:https://emoryhuang.cn/blog/2581338612.html#%E6%A0%B8%E5%87%BD%E6%95%B0

你可能感兴趣的:(机器学习,计算机数学基础,支持向量机,学习,机器学习,svm)