机器学习:支持向量机(supported vector machine)基本介绍及公式推导

1.SVM基本介绍

1.1 SVM算法定义

  SVM全称是supported vector machine(支持向量机),即寻找到一个超平面使样本分成两类,并且间隔最大。

  SVM能够执行线性和非线性分类,回归,甚至是异常值监测任务。特别适用于中小型复杂数据集的分类。

1.2 SVM和逻辑回归的区别

在这里插入图片描述

  1. 逻辑回归和SVM都是寻找一条分类直线,目标是把这两个类别分开
  2. 逻辑回归的最终判断标准是:准确率,而SVM最终的判断结果是:准确率+最大间隔
  3. 逻辑回归的分类直线可能有多条,而SVM的分类直线只有一条。

单纯考虑准确率和考虑最大间隔哪个泛化性能更好一点:
在这里插入图片描述

  1. 准确率只考虑了在训练集上的预测能力
  2. 准确率+最大间隔即考虑了预测能力,又考虑了模型对未知样本的泛化能力。

1.3 软间隔和硬间隔

硬间隔:指让所有样本都不在最大间隔之间,并且位于分类正确的一边。如果出现异常值或者样本不能线性分割,此时硬间隔无法实现。
在这里插入图片描述

软间隔:指容忍一部分样本在最大间隔之内,甚至在错误的一边。相对来说,软间隔可以应用在一些线性不可分的场景中。因此,软间隔可能在训练集表现不是很好,但是在测试集上的泛化性能可能要比硬间隔好。

1.4 惩罚参数C

  在硬间隔的情况下,我们只考虑如何使间隔最大。在软间隔的情况下,我们既要考虑间隔最大化,又要考虑间隔违例样本带来的损失。

  一般间隔违例样本带来的损失为:该点到分类直线之间的距离,C值用于惩罚间隔违例样本带来的损失。

  C值越大,说明间隔违例样本带来的损失越大,就要减少这些样本带来的损失,所以间隔就要越小。
在这里插入图片描述

  C值越小,间隔违例样本带来的损失就越小,可以适当增大间隔,以提高模型的泛化性能。

  C值可以用来平衡间隔违例样本损失、最大间隔。当对违反限制间隔的样本点的容忍度很低时,可增大C值,反之就减小C值。

2.SVM算法推导的目标函数

在这里插入图片描述

SVM求解目标:将所有样本分类正确的基础上,找出最大间隔。
1.最大间隔距离表示公式:
2 ∥ w ∥ \frac{2}{\|\boldsymbol{w}\|} w2

直线方程为:y = w1x1 + w2x2 + b = 0,平面上任意一点(xi,xj)到该直线的距离计算公式为:

d = ∣ w 1 x i + w 2 x j + b ∣ w 1 2 + w 2 2 d=\frac{\left|w_{1} x_{i}+w_{2} x_{j}+b\right|}{\sqrt{w_{1}^{2}+w_{2}^{2}}} d=w12+w22 w1xi+w2xj+b
分母可以用范数的形式表示:||w||

2.训练样本能够正确分类:
{ w T x i + b ⩾ + 1 , y i = + 1 w T x i + b ⩽ − 1 , y i = − 1 \left\{\begin{array}{ll} \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \geqslant+1, & y_{i}=+1 \\ \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \leqslant-1, & y_{i}=-1 \end{array}\right. {wTxi+b+1,wTxi+b1,yi=+1yi=1

我们希望所有样本分类正确的情况下,实现最大间隔。因此,目标函数可以转换为:
max ⁡ w , b = 2 ∥ w ∥  s.t.  y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , m \begin{array}{l} \max _{w, b}=\frac{2}{\|w\|} \\ \\ \text { s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq 1, i=1,2, \cdots, m \end{array} maxw,b=w2 s.t. yi(wTxi+b)1,i=1,2,,m
将最大化问题转化为最小化问题:
min ⁡ w , b = 1 2 ∥ w ∥ 2  s.t.  y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , m \begin{array}{l} \min _{w, b}=\frac{1}{2}\|w\|^2 \\ \\ \text { s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq 1, i=1,2, \cdots, m \end{array} minw,b=21w2 s.t. yi(wTxi+b)1,i=1,2,,m

  • 最大化转换为最小化,加上平方是为了去除二范数的根号,不影响目标优化。1/2是为了求导时候,去掉系数。通过问题转换,让问题向最简单的方向发展。

3.目标函数推导过程

3.1 约束条件优化问题转换

目标函数是一个带有约束条件的优化问题,不容易求解,所以使用拉格朗日乘子法将其转换为多元极值问题,转换构成如下:
h ( x ) = f ( x ) + α g ( x ) h(x)= f(x)+\alpha g(x) h(x)=f(x)+αg(x)
f(x)是原问题,g(x)是原问题的约束条件。因此,约束条件函数可以转换为:

y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , m ∑ i = 1 n ( 1 − y i ( w T ⋅ ϕ ( x i ) + b ) ) ≤ 0 y_i(w^Tx_i+b)\geq 1,i=1,2,\cdots,m \\\sum_{i=1}^{n}(1-y_i(w^T\cdot \phi (x_i)+b)) \leq 0 yi(wTxi+b)1,i=1,2,,mi=1n(1yi(wTϕ(xi)+b))0
目标函数可以转换为:
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^T\cdot \phi (x_i)+b)-1) L(w,b,α)=21w2i=1nαi(yi(wTϕ(xi)+b)1)
此时问题转化为满足所有样本都能正确分类的情况下,求解极小极大值问题:
min ⁡ w , b max ⁡ α L ( w , b , α ) \min_{w,b}\max_{\alpha}L(w,b,\alpha) w,bminαmaxL(w,b,α)

  • 整个式子求极小值,后边式子求极大值

3.2 对偶问题转换

1.对偶问题转换

对w求偏导,并令其等于0:

L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i ( y i ( w T ⋅ ϕ ( x i ) + b ) − 1 ) L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 n ( α i y i w T φ ( x i ) + α i y i b − α i ) = 0 ∂ L ∂ w = w − ∑ i = 1 n α i y i φ ( x i ) = 0 L(w,b,\alpha)=\frac{1}{2}\|w\|^2-\sum_{i=1}^{n}\alpha_i(y_i(w^T\cdot \phi (x_i)+b)-1) \\L(w,b,\alpha)=\frac{1}{2}|| w||^{2}-\sum_{i=1}^{n}( \alpha_{i} y_{i} w^{T} \varphi\left(x_{i}\right)+\alpha_{i} y_{i} b-\alpha_{i})=0 \\\frac{\partial L}{\partial w}=w-\sum_{i=1}^n\alpha_iy_i\varphi(x_i)=0 L(w,b,α)=21w2i=1nαi(yi(wTϕ(xi)+b)1)L(w,b,α)=21w2i=1n(αiyiwTφ(xi)+αiyibαi)=0wL=wi=1nαiyiφ(xi)=0
得到:
w = ∑ i = 1 n α i y i φ ( x i ) w= \sum_{i=1}^n\alpha_iy_i\varphi(x_i) w=i=1nαiyiφ(xi)
对b求偏导,并令其等于0:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 n ( α i y i w T φ ( x i ) + α i y i b − α i ) = 0 ∂ L ∂ b = ∑ i = 1 n α i y i = 0 L(w,b,\alpha)=\frac{1}{2}|| w||^{2}-\sum_{i=1}^{n} (\alpha_{i} y_{i} w^{T} \varphi\left(x_{i}\right)+\alpha_{i} y_{i} b-\alpha_{i})=0 \\\frac{\partial L}{\partial b}=\sum_{i=1}^n\alpha_iy_i=0 L(w,b,α)=21w2i=1n(αiyiwTφ(xi)+αiyibαi)=0bL=i=1nαiyi=0
将对w、b求偏导的结果代入原拉格朗日公式中:
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^T\cdot \phi (x_i)+b)-1) L(w,b,α)=21w2i=1nαi(yi(wTϕ(xi)+b)1)
去括号得:
L ( w , b , α ) = 1 2 w T w − ∑ i = 1 n α i y i w T ϕ ( x i ) − b ⋅ ∑ i = 1 n α i y i + ∑ i = 1 n α i L(w,b,\alpha)=\frac{1}{2}w^Tw-\sum_{i=1}^n\alpha_iy_iw^T\phi(x_i)-b\cdot\sum_{i=1}^n\alpha_iy_i+\sum_{i=1}^n\alpha_i L(w,b,α)=21wTwi=1nαiyiwTϕ(xi)bi=1nαiyi+i=1nαi
代入w、b得:
L ( w , b , α ) = 1 2 w T ∑ i = 1 n α i y i φ ( x i ) − w T ∑ i = 1 n α i y i φ ( x i ) + ∑ i = 1 n α i L(w,b,\alpha)=\frac{1}{2}w^T\sum_{i=1}^n\alpha_iy_i\varphi(x_i)-w^T\sum_{i=1}^n\alpha_iy_i\varphi(x_i)+\sum_{i=1}^n\alpha_i L(w,b,α)=21wTi=1nαiyiφ(xi)wTi=1nαiyiφ(xi)+i=1nαi
化简得:
L ( w , b , α ) = ∑ i = 1 n α i − 1 2 ( ∑ i = 1 n α i y i φ ( x i ) ) T ⋅ ∑ i = 1 n α i y i φ ( x i ) L(w,b,\alpha)=\sum_{i=1}^n\alpha_i-\frac{1}{2}(\sum_{i=1}^n\alpha_iy_i\varphi(x_i))^T\cdot\sum_{i=1}^n\alpha_iy_i\varphi(x_i) L(w,b,α)=i=1nαi21(i=1nαiyiφ(xi))Ti=1nαiyiφ(xi)
最终得:
L ( w , b , α ) = ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ϕ T ( x i ) ϕ ( x j ) L(w,b,\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^T(x_i)\phi(x_j) L(w,b,α)=i=1nαi21i=1nj=1nαiαjyiyjϕT(xi)ϕ(xj)
此时,求解当 α 是什么值时,L会变得很大,当求出 α 值,再求解 w, b 值。此时,就变成了极大极小值问题。

3.3 确定超平面

1、求解当α为什么值时,公式的值最大:
α ∗ = arg ⁡ max ⁡ α ( ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ϕ T ( x i ) ϕ ( x j ) )   s . t . ∑ i = 1 n α i y i = 0 α i ≥ 0 , i = 1 , 2 , 3 ⋯   , n \alpha^*=\underset{\alpha}{\arg\max}(\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\phi^T(x_i)\phi(x_j)) \\\ s.t. \sum_{i=1}^n\alpha_iy_i=0 \\ \alpha_i \geq0,i=1,2,3\cdots,n α=αargmax(i=1nαi21i=1nj=1nαiαjyiyjϕT(xi)ϕ(xj)) s.t.i=1nαiyi=0αi0,i=1,2,3,n

2、将上面的问题转换为极小值问题:
m i n α     1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ϕ T ( x i ) ϕ ( x j ) − ∑ i = 1 n α i \underset{\alpha}{min} \ \ \ \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\phi^T(x_i)\phi(x_j)-\sum_{i=1}^n\alpha_i αmin   21i=1nj=1nαiαjyiyjϕT(xi)ϕ(xj)i=1nαi
且满足以下条件:
∑ i = 1 n α i y i = 0 α i ≥ 0 , i = 1 , 2 , 3 ⋯   , n \sum_{i=1}^n\alpha_iy_i=0\\ \alpha_i \geq0,i=1,2,3\cdots,n i=1nαiyi=0αi0,i=1,2,3,n
将训练样本代入上面公式,求解出α值。然后,将α值代入公式计算w、b的值
w ∗ = ∑ i = 1 n α i ∗ y i φ ( x i ) b ∗ = y i − ∑ i = 1 n α ∗ y i ( ϕ ( x i ) ⋅ ϕ ( x j ) ) w^*= \sum_{i=1}^n\alpha_i^*y_i\varphi(x_i) \\ b^*=y_i-\sum_{i=1}^n\alpha^*y_i(\phi(x_i)\cdot\phi(x_j)) w=i=1nαiyiφ(xi)b=yii=1nαyi(ϕ(xi)ϕ(xj))
最后求的分离超平面为:
w ∗ ϕ ( x ) + b ∗ = 0 w^*\phi(x)+b^*=0 wϕ(x)+b=0
求的分类决策函数:
f ( x ) = sign ⁡ ( w ∗ ϕ ( x ) + b ∗ ) f(x)=\operatorname{sign}(w^*\phi(x)+b^*) f(x)=sign(wϕ(x)+b)

4.案例代入

正例点x1=(3,3),x2=(4,3),负例点x3=(1,1),求线性可分支持向量机。
m i n α     1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ϕ T ( x i ) ϕ ( x j ) − ∑ i = 1 n α i s . t . ∑ i = 1 n α i y i = 0 α i ≥ 0 , i = 1 , 2 , 3 ⋯   , n \underset{\alpha}{min} \ \ \ \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\phi^T(x_i)\phi(x_j)-\sum_{i=1}^n\alpha_i \\ s.t. \sum_{i=1}^n\alpha_iy_i=0 \\ \alpha_i \geq0,i=1,2,3\cdots,n αmin   21i=1nj=1nαiαjyiyjϕT(xi)ϕ(xj)i=1nαis.t.i=1nαiyi=0αi0,i=1,2,3,n
将3个样本代入上述公式,得到一个关于α的函数:
1 2 ( 18 α 1 2 + 25 α 2 2 + 2 α 3 2 + 42 α 1 α 2 − 12 α 1 α 3 − 14 α 2 α 3 ) − α 1 − α 2 − α 3 ⋯ ⋯ ( 4.1 ) \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 \cdots\cdots(4.1) 21(18α12+25α22+2α32+42α1α212α1α314α2α3)α1α2α3(4.1)
由于:
∑ i = 1 n α i y i = 0 = > α 1 y 1 + α 2 y 2 + α 3 y 3 = 0 ⋯ ⋯ ⋯ ⋯ ⋯ ( 4.2 ) \sum_{i=1}^n\alpha_iy_i=0=>\alpha_1y_1+\alpha_2y_2+\alpha_3y_3=0 \cdots\cdots \cdots\cdots \cdots(4.2) i=1nαiyi=0=>α1y1+α2y2+α3y3=0(4.2)
可得:
α 1 + α 2 − α 3 = 0 ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ( 4.3 ) α 1 + α 2 = α 3 ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋅ ( 4.4 ) \alpha_1+\alpha_2-\alpha_3=0 \cdots\cdots \cdots\cdots \cdots\cdots(4.3) \\\alpha_1+\alpha_2=\alpha_3\cdots\cdots \cdots\cdots \cdots\cdots\cdots\cdot(4.4) α1+α2α3=0(4.3)α1+α2=α3(4.4)
将(4.4)式子代入(4.1)式子中可得:
4 α 1 2 + 13 2 α 2 2 + 10 α 1 α 2 − 2 α 1 − 2 α 2 ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ( 4.5 ) 4 \alpha_{1}^{2}+\frac{13}{2} \alpha_{2}^{2}+10 \alpha_{1} \alpha_{2}-2 \alpha_{1}-2 \alpha_{2}\cdots\cdots \cdots\cdots \cdots\cdots(4.5) 4α12+213α22+10α1α22α12α2(4.5)
对 α1、α2 求偏导,并令其等于 0,可得:
{ ∂ s ( α 1 , α 2 ) ∂ α 1 = 8 α 1 + 10 α 2 − 2 = 0 ∂ s ( α 1 , α 2 ) ∂ α 2 = 13 α 2 + 10 α 1 − 2 = 0 ⇒ { α 1 = 1.5 α 2 = − 1 \left\{\begin{array} { l } { \frac { \partial s ( \alpha 1, \alpha 2 ) } { \partial \alpha 1 } = 8 \alpha 1 + 1 0 \alpha _ { 2 } - 2 = 0 } \\ { \frac { \partial s ( \alpha 1 , \alpha 2 ) } { \partial \alpha 2 } = 1 3 \alpha 2 + 1 0 \alpha 1 - 2 = 0 } \end{array} \Rightarrow \left\{\begin{array}{l} \alpha 1=1.5 \\ \alpha 2=-1 \end{array}\right.\right. {α1s(α1,α2)=8α1+10α22=0α2s(α1,α2)=13α2+10α12=0{α1=1.5α2=1
由于限制条件中 α 值必须大于 0,故而上面求出的结果不是最终结果。

  1. 当α1=0时,对α2求偏导得 2/13,α3=2/13
  2. 当α2=0时,对α1求偏导得 1/4,α3=1/4

现有两组结果,我们需要找出哪组结果使得结果最小,将每组结果代入(4.5)式子中,得:

  1. 第一组结果是:-0.1538
  2. 第二组结果是:-0.25

因此,第二组结果最小,所以α1=1/4,α2=0,α3=1/4

接下来,根据 α 和样本计算 w 的值:

  1. 正例 1: x1=(3,3),α1 = 1/4

  2. 正例 1:x2=(4,3),α2 = 0

  3. 负例 -1: x3=(1,1),α3 = 1/4

w = ∑ i = 1 n α i y i Φ ( x n ) w=\sum_{i=1}^{n} \alpha_{i} y_{i} \Phi\left(x_{n}\right) w=i=1nαiyiΦ(xn)
代入得:
w = 1 4 ∗ 1 ∗ ( 3 , 3 ) + 1 4 ∗ ( − 1 ) ∗ ( 1 , 1 ) = ( 1 2 , 1 2 ) w=\frac{1}{4} * 1 *(3,3)+\frac{1}{4} *(-1) *(1,1)=\left(\frac{1}{2}, \frac{1}{2}\right) w=411(3,3)+41(1)(1,1)=(21,21)
由 f(x) = 0.5x1 + 0.5x2 + b,并将任意样本代入,可得 b 为:

  1. 0.5*3 + 0.5*3 + b =1,得:b = -2
  2. 0.5*1 + 0.5*1 + b =-1,得:b = -2

最终确定分类超平面为:
f ( x ) = sign ⁡ ( 0.5 x 1 + 0.5 x 2 − 2 ) f(x)=\operatorname{sign}\left(0.5 x_{1}+0.5 x_{2}-2\right) f(x)=sign(0.5x1+0.5x22)

在这里插入图片描述

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值