机器学习算法の03 支持向量机SVM

  • SVM的基本概念
  • 线性可分支持向量机
  • 非线性支持向量机和核函数
  • 线性支持向量机与松弛变量
  • LR与SVM的区别与联系

SVM的基本概念

基本概念
支持向量机(support vector machines):是一种二分类模型,它的 目的 是寻找一个超平面来对样本进行分割,分割的原则 是间隔最大化,最终转化为一个凸二次规划问题来求解。
SVM的分类
SVM由简至繁的模型包括:线性可分SVM ⟶ \longrightarrow ⟶线性 SVM ⟶ \longrightarrow ⟶非线性 SVM
(1)线性可分SVM:当训练样本线性可分时,通过 硬间隔最大化,学习一个线性可分支持向量机。 通俗讲:表示可以用一根线非常清晰的划分两个区域,线到支持向量的距离 d 就是最小的。
(2)线性 SVM:当训练样本近似线性可分时,通过 软间隔最大化,学习一个线性支持向量机。 通俗讲:表示用一根线划分区域后,可能存在误判点,但还是线性的,线到支持向量的距离不一定是最小的,但忽略其他非规则的支持向量。
(3)非线性 SVM:当训练样本线性不可分时,通过 核技巧和软间隔最大化,学习一个非线性支持向量机。 通俗讲:表示使用核函数之后,把低维的非线性转换为高维线性。

备注:
(1)线性可分:如果一个线性函数能够将样本分开,称这些数据样本是线性可分的。
(2)超平面:如果不考虑空间维数,能够将样本分开的线性函数统称为超平面。
(3)线性可分支持向量机:线性可分支持向量机就对应着能将数据正确划分并且间隔最大的直线。

线性可分支持向量机

给定训练样本集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) D=(x_1,y_1),(x_2,y_2),...,(x_m,y_m) D=(x1​,y1​),(x2​,y2​),...,(xm​,ym​),其中 y i ∈ { − 1 , 1 } y_i∈\{−1,1\} yi​∈{−1,1},分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开。
当然,这样的超平面有很多。因此,学习目标是寻找最优的划分超平面。所谓 最优的划分超平面 是指:划分超平面对训练样本局部扰动的“容忍”性(鲁棒性)最好。
评价标准 :一个点距离分离超平面的远近可以表示分类预测的确信度。

线性可分SVM的推导过程
在样本空间中,划分超平面可通过如下线性方程来描述:
W T x + b = 0 \mathbf{W}^Tx+b=0 WTx+b=0
其中 W T \mathbf{W}^T WT为法向量,决定了超平面的方向, b b b为位移量,决定了超平面与原点的距离。

假设超平面能将训练样本正确地分类,即对于训练样本 ( x i , y i ) (x_i,y_i) (xi​,yi​),满足 最大间隔假设 公式:
{ W T x i + b ≥ + 1 , y= +1 W T x i + b ≤ − 1 , y= −1 \begin{cases} \mathbf{W}^Tx_i+b≥+1,& \text{y= +1}\\ \mathbf{W}^Tx_i+b≤ -1,& \text{y= −1} \end{cases} {WTxi​+b≥+1,WTxi​+b≤−1,​y= +1y= −1​
其中, y i = + 1 y_i= +1 yi​=+1表示样本为正样本, y i = − 1 y_i=−1 yi​=−1 表示样本为负样本。上式等价于 y i ( W T x i + b ) ≥ + 1 y_i(\mathbf{W}^Tx_i+b)≥+1 yi​(WTxi​+b)≥+1

备注y 只是一个label ,标注为{-1,+1}不过为了描述方便。

图一 支持向量与间隔

支持向量:如图1所示,距离超平面最近的这几个样本点满足 y i ( W T x i + b ) = 1 y_i(\mathbf{W}^Tx_i+b)=1 yi​(WTxi​+b)=1,它们被称为支持向量。
间隔(margin):如图1所示,虚线称为边界,两条虚线间的距离称为间隔,它等于两个异类支持向量的差在 W \mathbf{W} W上的投影。

间隔 γ γ γ的计算过程推导
{ 1 ∗ ( W T x + + b ) = 1 , y i = + 1 − 1 ∗ ( W T x _ + b ) = 1 , y i = − 1 \left\{ \begin{array}{rcl} 1*\big(\mathbf{W}^Tx_++b\big)=1, & & {y_i= +1}\\ \\ -1*\big(\mathbf{W}^Tx_\_+b\big)=1, & & {y_i= −1}\\ \end{array} \right. ⎩⎨⎧​1∗(WTx+​+b)=1,−1∗(WTx_​+b)=1,​​yi​=+1yi​=−1​
进而可以推出:
{ W T x + = 1 − b W T x _ = − 1 − b \begin{cases} \mathbf{W}^Tx_+=1-b\\ \mathbf{W}^Tx_\_=-1-b \end{cases} {WTx+​=1−bWTx_​=−1−b​
因此有:
γ = ( x ⃗ + − x ⃗ _ ) ⋅ W ⃗ ∣ ∣ W ∣ ∣ = 1 − b + ( 1 + b ) ∣ ∣ W ∣ ∣ = 2 ∣ ∣ W ∣ ∣ γ=\frac{(\vec x_+ − \vec x_{\_}) \cdot \vec W}{||W||}=\frac{1−b+(1+b)}{||W||}=\frac{2}{||W||} γ=∣∣W∣∣(x +​−x _​)⋅W ​=∣∣W∣∣1−b+(1+b)​=∣∣W∣∣2​
至此,我们求得了间隔 γ γ γ,而 SVM的思想 是使得间隔最大化,也就是:
​ m a x 2 ∣ ∣ W ∣ ∣ , ​ s . t . y i ⋅ ( W T x i + b ) ≥ 1 max{\frac{2}{||W||}},\quad ​ s.t. \quad y_i\cdot\big(\mathbf{W}^Tx_i+b\big)≥1 max∣∣W∣∣2​,​s.t.yi​⋅(WTxi​+b)≥1
显然,最大化 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} ∣∣w∣∣2​ 相当于最小化 ||w||,因此,为了计算方便,可转化成如下公式,它即为 支持向量机的基本型
​ m i n 1 2 ∣ ∣ W ∣ ∣ 2 , s . t . y i ⋅ ( W T x i + b ) ≥ 1 ​ min\frac{1}{2}||W||^2, \quad s.t. \quad y_i\cdot\big(\mathbf{W}^Tx_i+b\big)≥1 ​min21​∣∣W∣∣2,s.t.yi​⋅(WTxi​+b)≥1

支持向量机的基本型本身就是一个凸二次规划问题,可以采用拉格朗日乘子法使得到其对偶问题:

线性可分SVM的过程推导
该问题的 拉格朗日函数 (损失函数)可写为:
L ( w , b , α ) = 1 2 ∣ ∣ W ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( W T x i + b ) ) L(w,b,\alpha)=\frac{1}{2}||W||^2+\sum_{i=1}^{m}\alpha_i\Big(1-y_i(\mathbf{W}^Tx_i+b)\Big) L(w,b,α)=21​∣∣W∣∣2+i=1∑m​αi​(1−yi​(WTxi​+b))
分别对 w , b w,b w,b求偏导可得:
{ ∂ L ∂ w = w − ∑ i = 1 m α i y i x i ∂ L ∂ b = ∑ i = 1 m α i y i \left\{ \begin{aligned} &\frac{\partial L} {\partial w}=w-\sum_{i=1}^{m} \alpha_iy_ix_i\\ &\frac{\partial L} {\partial b}=\sum_{i=1}^{m} \alpha_iy_i\\ \end{aligned} \right. ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​​∂w∂L​=w−i=1∑m​αi​yi​xi​∂b∂L​=i=1∑m​αi​yi​​
令其分别为0,可得:
{ w = ∑ i = 1 m α i y i x i ∑ i = 1 m α i y i = 0 \left\{ \begin{aligned} &w=\sum_{i=1}^{m} \alpha_iy_ix_i\\ &\sum_{i=1}^{m} \alpha_iy_i=0\\ \end{aligned} \right. ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​​w=i=1∑m​αi​yi​xi​i=1∑m​αi​yi​=0​
将其带入拉格朗日函数(8)中,可得:
{ L ( w , b , α ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i x j s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2 , 3 , . . . , m \left\{ \begin{aligned} &L(w,b,\alpha)=\sum_{i=1}^{m} \alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m} \alpha_i \alpha_jy_iy_jx_ix_j \\ &s.t. \quad \sum_{i=1}^{m} \alpha_iy_i=0 \quad , \alpha_i≥0,\quad i=1,2,3,...,m\\ \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​​L(w,b,α)=i=1∑m​αi​−21​i=1∑m​j=1∑m​αi​αj​yi​yj​xi​xj​s.t.i=1∑m​αi​yi​=0,αi​≥0,i=1,2,3,...,m​
原问题就转换为如下关于 α \alpha α的问题,即求解 线性可分SVM的对偶型
{ m a x ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i x j s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2 , 3 , . . . , m \left\{ \begin{aligned} &max\sum_{i=1}^{m} \alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m} \alpha_i \alpha_jy_iy_jx_ix_j \\ &s.t. \quad \sum_{i=1}^{m} \alpha_iy_i=0 \quad , \alpha_i≥0,\quad i=1,2,3,...,m\\ \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​​maxi=1∑m​αi​−21​i=1∑m​j=1∑m​αi​αj​yi​yj​xi​xj​s.t.i=1∑m​αi​yi​=0,αi​≥0,i=1,2,3,...,m​
解出 α \alpha α之后,根据公式 w = ∑ i = 1 m α i y i x i w=\sum_{i=1}^{m} \alpha_iy_ix_i w=i=1∑m​αi​yi​xi​可以求得 w w w, 进而求得 b b b,可以得到模型:
f ( x ) = w T x + b = ∑ i = 1 m α i y i x i T ⋅ x + b f({x})=\mathbf{w}^T{x}+b=\sum_{i=1}^{m} \alpha_iy_ix_i^T\cdot x+b f(x)=wTx+b=i=1∑m​αi​yi​xiT​⋅x+b
上述过程的 KTT条件 为:
{ α i ≥ 0 y i f ( x i ) − 1 ≥ 0 α i ( y i f ( x i ) − 1 ) = 0 \left\{ \begin{aligned} &\alpha_i≥0\\ &y_if(x_i)-1≥0\\ &\alpha_i\big(y_if(x_i)-1\big)=0 \end{aligned} \right. ⎩⎪⎨⎪⎧​​αi​≥0yi​f(xi​)−1≥0αi​(yi​f(xi​)−1)=0​
我们分析可知,对于任意的训练样本 ( x i , y i ) (x_i,y_i) (xi​,yi​)有:

  • 若 α i = 0 \alpha_i=0 αi​=0,则其不会在公式 f ( x ) = w T x + b = ∑ i = 1 m α i y i x i T ⋅ x + b f({x})=\mathbf{w}^T{x}+b=\sum_{i=1}^{m} \alpha_iy_ix_i^T\cdot x+b f(x)=wTx+b=∑i=1m​αi​yi​xiT​⋅x+b中的求和项中出现,即:它不影响模型的训练;
  • 若 α i > 0 \alpha_i>0 αi​>0,则 y i f ( x i ) − 1 = 0 y_if(x_i)−1=0 yi​f(xi​)−1=0,也就是 y i f ( x i ) = 1 y_if(x_i)=1 yi​f(xi​)=1,即该样本一定在边界上,是一个支持向量。

备注:这里显示出了支持向量机的重要特征:当训练完成后,大部分样本都不需要保留,最终模型只与支持向量有关。

非线性支持向量机和核函数

对于非线性问题,线性可分支持向量机并不能有效解决,要使用非线性模型才能很好地分类。解决思路: 可以采用非线性变换,将非线性问题变换成线性问题。

非线性变换的具体方法:
对于这样的问题,可以将训练样本从原始空间映射到一个更高维的空间(即:升维),使得样本在这个空间中线性可分,如果原始空间维数是有限的,即属性是有限的,那么一定存在一个高维特征空间使样本可分。

非线性SVM的过程推导:

令 ϕ ( x ) ϕ(x) ϕ(x)表示将 x x x映射后的特征向量,于是在特征空间中,划分超平面所对应的的模型 可表示为:
f ( x ) = w T ϕ ( x ) + b f(x)=\mathbf{w}^Tϕ(x)+b f(x)=wTϕ(x)+b
于是有 最小化函数 : ​ m i n 1 2 ∣ ∣ W ∣ ∣ 2 , s . t . y i ⋅ ( W T ϕ ( x i ) + b ) ≥ 1 ( i = 1 , 2 , 3 , . . . m ) ​ min\frac{1}{2}||W||^2, \quad s.t. \quad y_i\cdot\big(\mathbf{W}^Tϕ(x_i)+b\big)≥1 \quad (i=1,2,3,...m) ​min21​∣∣W∣∣2,s.t.yi​⋅(WTϕ(xi​)+b)≥1(i=1,2,3,...m)
非线性SVM的对偶问题 为:
{ m a x ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2 , 3 , . . . , m \left\{ \begin{aligned} &max\sum_{i=1}^{m} \alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m} \alpha_i \alpha_jy_iy_jϕ(x_i)^Tϕ(x_j) \\ &s.t. \quad \sum_{i=1}^{m} \alpha_iy_i=0 \quad , \alpha_i≥0,\quad i=1,2,3,...,m\\ \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​​maxi=1∑m​αi​−21​i=1∑m​j=1∑m​αi​αj​yi​yj​ϕ(xi​)Tϕ(xj​)s.t.i=1∑m​αi​yi​=0,αi​≥0,i=1,2,3,...,m​
上式涉及到计算 ϕ ( x i ) T ϕ ( x j ) ϕ(xi)^Tϕ(xj) ϕ(xi)Tϕ(xj),这是样本 x i x_i xi​ 和 x j x_j xj​ 映射到特征空间之后的内积,由于特征空间的维数可能很高,甚至是无穷维,因此直接计算 ϕ ( x i ) T ϕ ( x j ) ϕ(xi)^Tϕ(xj) ϕ(xi)Tϕ(xj) 通常很困难,于是引入这样一个函数:
κ ( x i , x j ) = &lt; ϕ ( x i ) , ϕ ( x j ) &gt; = ϕ ( x i ) T ϕ ( x j ) \mathbf{\kappa}(x_i,x_j)=&lt;ϕ(x_i),ϕ(x_j)&gt;=ϕ(x_i)^Tϕ(x_j) κ(xi​,xj​)=<ϕ(xi​),ϕ(xj​)>=ϕ(xi​)Tϕ(xj​)
即 x i x_i xi​ 和 x j x_j xj​ 在特征空间中的内积等于它们在原始样本空间中通过函数 κ ( x i , x j ) \mathbf{\kappa}(x_i,x_j) κ(xi​,xj​) 计算的函数值,于是对偶问题可改写为:
{ m a x ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j κ ( x i , x j ) s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2 , 3 , . . . , m \left\{ \begin{aligned} &amp;max\sum_{i=1}^{m} \alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m} \alpha_i \alpha_jy_iy_j \mathbf{\kappa}(x_i,x_j)\\ &amp;s.t. \quad \sum_{i=1}^{m} \alpha_iy_i=0 \quad , \alpha_i≥0,\quad i=1,2,3,...,m\\ \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​​maxi=1∑m​αi​−21​i=1∑m​j=1∑m​αi​αj​yi​yj​κ(xi​,xj​)s.t.i=1∑m​αi​yi​=0,αi​≥0,i=1,2,3,...,m​
求解后得到:
f ( x ) = w T ϕ ( x i ) + b = ∑ i = 1 m α i y i ϕ ( x i ) T ϕ ( x j ) + b = ∑ i = 1 m α i y i κ ( x i , x j ) + b \begin{aligned} f({x}) &amp;=\mathbf{w}^T{ϕ(x_i)}+b \\&amp;=\sum_{i=1}^{m} \alpha_iy_iϕ(x_i)^Tϕ(x_j)+b \\&amp;=\sum_{i=1}^{m} \alpha_iy_i\mathbf{\kappa}(x_i,x_j)+b \end{aligned} f(x)​=wTϕ(xi​)+b=i=1∑m​αi​yi​ϕ(xi​)Tϕ(xj​)+b=i=1∑m​αi​yi​κ(xi​,xj​)+b​
这里的函数 κ ( x i , x j ) \mathbf{\kappa}(x_i,x_j) κ(xi​,xj​) 就是 核函数

常用的核函数:(根据样本数据的不同,选择不同的参数,实际上就得到了不同的核函数)

名称 表达式 参数
线性核LINEAR κ ( x i , x j ) = x i T x j \mathbf{\kappa}(x_i,x_j)=x_i^Tx_j κ(xi​,xj​)=xiT​xj​ 即:处理线性可分的情形,这样使得它们的形式统一起来
多项式核POLY κ ( x i , x j ) = ( x i T x j ) d \mathbf{\kappa}(x_i,x_j)=(x_i^Tx_j)^d κ(xi​,xj​)=(xiT​xj​)d d ≥ 1 d ≥1 d≥1为多项式的次数
高斯核 RBF κ ( x i , x j ) = e x p ( − ∥ x i − x j ∥ 2 2 σ 2 ) \mathbf {\kappa}(x_i,x_j)=exp\Big(- \frac {{{\|x_i-x_j \|} }^2}{2 \sigma^2 }\Big) κ(xi​,xj​)=exp(−2σ2∥xi​−xj​∥2​) σ &gt; 0 \sigma &gt;0 σ>0为高斯核的带宽(width)
拉普拉斯核 κ ( x i , x j ) = e x p ( − ∥ x i − x j ∥ σ ) \mathbf {\kappa}(x_i,x_j)=exp\Big(- \frac {{{\|x_i-x_j \|} }}{\sigma }\Big) κ(xi​,xj​)=exp(−σ∥xi​−xj​∥​) σ &gt; 0 \sigma &gt;0 σ>0
Sigmoid核 κ ( x i , x j ) = t a n h ( β x i T x j + θ ) \mathbf{\kappa}(x_i,x_j)=tanh(\beta x_i^Tx_j+\theta) κ(xi​,xj​)=tanh(βxiT​xj​+θ) tanh为双曲正切函数, β &gt; 0 , θ &lt; 0 \beta&gt;0,\theta&lt;0 β>0,θ<0

线性支持向量机与松弛变量

线性支持向量机(软间隔支持向量机)
在前面的讨论中,我们假设训练样本在样本空间(即:线性可分SVM的情形)或者特征空间(即:非线性SVM的情形)中是线性可分的,但 难点在于 :在现实任务中往往很难确定合适的核函数使训练集在特征空间中线性可分,退一步说,即使找到了这样的核函数使得样本在特征空间中线性可分,也很难判断是不是由于过拟合造成的。

线性不可分 :意味着某些样本点 ( x i , y i ) (x_i,y_i) (xi​,yi​) 不能满足间隔大于等于1的条件,样本点落在超平面与边界之间。
线性不可分的解决措施
为解决这一问题,可以对每个样本点引入一个 松弛变量 ξ i ≥ 0 ξ_i≥0 ξi​≥0 ,使得间隔加上松弛变量大于等于1,这样约束条件变为:
y i ( w T x i + b ) ≥ 1 − ξ i y_i(\mathbf{w}^T{x_i}+b)≥ 1-ξ_i yi​(wTxi​+b)≥1−ξi​

线性SVM的过程推导:
针对上面的约束条件,同时,对于每一个松弛变量 ξ i ξ_i ξi​,支付一个代价 ξ i ≥ 0 ξ_i≥0 ξi​≥0,则 目标函数 变为:
1 2 ∣ ∣ W ∣ ∣ 2 + C ∑ i = 1 m ξ i \frac{1}{2}||W||^2+C\sum_{i=1}^{m}ξ_i 21​∣∣W∣∣2+Ci=1∑m​ξi​
其中, C &gt; 0 C&gt;0 C>0为 惩罚参数 , C C C值越大对误分类的惩罚增大。

上述 目标函数 包含两层含义:(1)使 ∣ ∣ W ∣ ∣ 2 2 \frac{||W||^2}{2} 2∣∣W∣∣2​ 尽量小即间隔尽量大,(2)同时使误分类点的个数尽量小,C是调和两者的系数。
通过引入 惩罚参数 实现了将线性SVM的学习问题转化为线性可分SVM的情形,此时,线性支持向量机的学习问题再次变成 凸二次规划问题 的求解:
​ m i n 1 2 ∣ ∣ W ∣ ∣ 2 + C ∑ i = 1 m ξ i , s . t . y i ⋅ ( W T x i + b ) ≥ 1 − ξ i ( i = 1 , 2 , 3 , . . . m ) ​ min\frac{1}{2}||W||^2+C\sum_{i=1}^{m}ξ_i, \quad s.t. \quad y_i\cdot\big(\mathbf{W}^Tx_i+b\big)≥1-ξ_i \quad (i=1,2,3,...m) ​min21​∣∣W∣∣2+Ci=1∑m​ξi​,s.t.yi​⋅(WTxi​+b)≥1−ξi​(i=1,2,3,...m)
其对偶问题,与线性可分支持向量机的对偶问题解法一致,上述公式的 拉格朗日函数(损失函数) 为:
L ( w , b , α , ξ , μ ) = 1 2 ∣ ∣ W ∣ ∣ 2 + C ∑ i = 1 m ξ i + ∑ i = 1 m α i ( 1 − ξ i − y i ( W T x i + b ) ) − ∑ i = 1 m μ i ξ i L(w,b,\alpha,ξ,\mu)=\frac{1}{2}||W||^2+C\sum_{i=1}^{m}ξ_i +\sum_{i=1}^{m}\alpha_i\Big(1-ξ_i -y_i(\mathbf{W}^Tx_i+b)\Big)-\sum_{i=1}^{m}\mu_iξ_i L(w,b,α,ξ,μ)=21​∣∣W∣∣2+Ci=1∑m​ξi​+i=1∑m​αi​(1−ξi​−yi​(WTxi​+b))−i=1∑m​μi​ξi​
其中 α i ≥ 0 , μ i ≥ 0 α_i≥0,μ_i≥0 αi​≥0,μi​≥0 是拉格朗日乘子。
令 L ( w , b , α , ξ , μ ) L(w,b,α,ξ,μ) L(w,b,α,ξ,μ) 对 w , b , ξ w,b,ξ w,b,ξ 的偏导数为 0 0 0 可得如下:
{ w = ∑ i = 1 m α i y i x i ∑ i = 1 m α i y i = 0 C = α i + μ i \left\{ \begin{aligned} &amp;w=\sum_{i=1}^{m} \alpha_iy_ix_i\\ &amp;\sum_{i=1}^{m} \alpha_iy_i=0\\ &amp;C=α_i+μ_i \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧​​w=i=1∑m​αi​yi​xi​i=1∑m​αi​yi​=0C=αi​+μi​​
将上述求解的结果代入拉格朗日函数 L ( w , b , α , ξ , μ ) L(w,b,\alpha,ξ,\mu) L(w,b,α,ξ,μ)得到 线性SVM的对偶问题
{ m a x ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i x j s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 , μ i ≥ 0 , C = α i + μ i i = 1 , 2 , 3 , . . . , m \left\{ \begin{aligned} &amp;max\sum_{i=1}^{m} \alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m} \alpha_i \alpha_jy_iy_jx_ix_j \\ &amp;s.t. \quad \sum_{i=1}^{m} \alpha_iy_i=0 , \quad \alpha_i≥0,\quadμ_i≥0,\quad C=α_i+μ_i\quad i=1,2,3,...,m\\ \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​​maxi=1∑m​αi​−21​i=1∑m​j=1∑m​αi​αj​yi​yj​xi​xj​s.t.i=1∑m​αi​yi​=0,αi​≥0,μi​≥0,C=αi​+μi​i=1,2,3,...,m​
上述过程的 KTT条件 如下:
{ α i ≥ 0 y i f ( x i ) ≥ 1 − ξ i α i ( y i f ( x i ) − 1 + ξ i ) = 0 ξ i ≥ 0 , μ i ξ i = 0 \left\{ \begin{aligned} &amp;\alpha_i≥0\\ &amp;y_if(x_i)≥1-ξ_i \\ &amp;\alpha_i\big(y_if(x_i)-1+ξ_i \big)=0\\ &amp; ξ_i ≥0,\quadμ_i ξ_i =0 \end{aligned} \right. ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​​αi​≥0yi​f(xi​)≥1−ξi​αi​(yi​f(xi​)−1+ξi​)=0ξi​≥0,μi​ξi​=0​
我们分析可知,对于任意的训练样本 ( x i , y i ) (x_i,y_i) (xi​,yi​)总有 α i = 0 α_i=0 αi​=0 或者 y i f ( x i ) − 1 + ξ i = 0 y_if(x_i)−1+ξ_i=0 yi​f(xi​)−1+ξi​=0。

  • 若 α i = 0 α_i=0 αi​=0 ,则该样本不出现在公式 f ( x ) = w T x + b = ∑ i = 1 m α i y i x i T ⋅ x + b f({x})=\mathbf{w}^T{x}+b=\sum_{i=1}^{m} \alpha_iy_ix_i^T\cdot x+b f(x)=wTx+b=∑i=1m​αi​yi​xiT​⋅x+b中,不影响模型。
  • 若 α i &gt; 0 α_i&gt;0 αi​>0,必有 y i f ( x i ) − 1 + ξ i = 0 y_if(x_i)−1+ξ_i=0 yi​f(xi​)−1+ξi​=0,即 y i f ( x i ) = 1 − ξ i y_if(x_i)=1−ξ_i yi​f(xi​)=1−ξi​,此时该样本为支持向量。由于 C = α i + μ i C=α_i+μ_i C=αi​+μi​

拉格朗日乘子法
拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是求解有约束条件的优化问题非常重要的两个方法。
(1)对于 等式约束的优化问题,可以应用 拉格朗日乘子法 去求取最优值;
(2)对于含有 不等式约束的优化问题,可以应用 KKT条件 去求取最优值。
当然,这两个方法求得的结果只是必要条件,只有当是凸函数的情况下,才能保证是充分必要条件。KKT条件是拉格朗日乘子法的泛化。
关于拉格朗日乘子法(Lagrange Multiplier) 和KKT条件的最优化问题求解详见参考链接。

LR与SVM的区别与联系

相同点
(1)LR和SVM都是分类算法
(2)LR和SVM都是监督学习算法。
(3)LR和SVM都是判别模型。
(4)如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。
说明:LR也是可以用核函数的,但LR通常不采用核函数的方法.(计算量太大)
不同点
1、损失函数不同:LR采用log损失,SVM采用合页(hinge)损失。
逻辑回归的损失(目标)函数:
J ( θ ) = − 1 m ∑ i = 1 m y i l o g h θ ( x i ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) J(θ)=-\frac{1}{m}∑_{i=1}^{m}y_ilogh_θ(x_i)+(1−y_i)log(1−h_θ(x_i)) J(θ)=−m1​i=1∑m​yi​loghθ​(xi​)+(1−yi​)log(1−hθ​(xi​))
支持向量机的损失(目标)函数:
L ( w , b , α ) = 1 2 ∣ ∣ W ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( W T x i + b ) ) L(w,b,\alpha)=\frac{1}{2}||W||^2+\sum_{i=1}^{m}\alpha_i\Big(1-y_i(\mathbf{W}^Tx_i+b)\Big) L(w,b,α)=21​∣∣W∣∣2+i=1∑m​αi​(1−yi​(WTxi​+b))
2、理论基础不同:逻辑回归方法基于概率理论,假设样本为 1 1 1 的概率可以用 s i g m o i d sigmoid sigmoid函数来表示,然后通过极大似然估计的方法估计出参数的值(基于统计的,其损失函数是人为设定的凸函数) 。支持向量机​基于几何间隔最大化原理,认为存在最大几何间隔的分类面为最优分类面。(有严格的推导过程)

参考链接:
https://blog.csdn.net/qq_35992440/article/details/80987664
https://blog.csdn.net/b285795298/article/details/81977271
https://blog.csdn.net/u012581541/article/details/51181041

机器学习算法の03 支持向量机SVM相关推荐

  1. 机器学习算法 08 —— 支持向量机SVM算法(核函数、手写数字识别案例)

    文章目录 系列文章 支持向量机SVM算法 1 SVM算法简介 1.1 引入 1.2 算法定义 2 SVM算法原理 2.1 线性可分支持向量机 2.2 SVM计算过程与算法步骤(有点难,我也没理解透,建 ...

  2. 机器学习算法之支持向量机 SVM

    距离知识 点到直线/平面的距离公式: 1.假定点p(x0,y0),平面方程为f(x,y)=Ax+By+C,那么点p到平面f(x)的距离为: 2.从三维空间扩展到多维空间中,如果存在一个超平面f(X)= ...

  3. 机器学习算法 03 —— 逻辑回归算法(精确率和召回率、ROC曲线和AUC指标、过采样和欠采样)

    文章目录 系列文章 逻辑回归 1 逻辑回归介绍 1.1 逻辑回归原理 输入 激活函数 1.2 损失以及优化 2 逻辑回归API介绍 3 案例:肿瘤良性恶性预测 4 分类模型的评估 4.1 分类评估方法 ...

  4. 【机器学习算法】支持向量机(support Vector Machine,SVM)

    目录 支持向量机 支持向量机概述 线性可分及线性不可分的问题 线性可分的支持向量机 线性不可分的支持向量机 支持向量机与神经网络之间的关系 处理两类以上的分类问题. 我的主页:晴天qt01的博客_CS ...

  5. 算法模型---支持向量机(SVM)

    来源:JerryLead 支持向量机的特点 支持向量机的用途 SVM一般是用来分类的(一般先分为两类,再向多类推广) 支持向量机的适用范围 数据类型 自变量可以数值型和标称型数据 因变量是二分类,通过 ...

  6. 【SVM分类】基于matlab哈里斯鹰算法优化支持向量机SVM分类【含Matlab源码 2243期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[SVM分类]基于matlab哈里斯鹰算法优化支持向量机SVM分类[含Matlab源码 2243期] 获取代码方式2: 付费专栏Matla ...

  7. 【SVM时序预测】基于matlab鲸鱼算法优化支持向量机SVM时序数据预测【含Matlab源码 2250期】

    ⛄一.鲸鱼算法优化支持向量机SVM 1 鲸鱼优化算法 WOA是由Mirjalili和Lewis在2016年提出的一种较为新颖的元启发式群体智能优化算法,该算法模仿座头鲸的"螺旋气泡网&quo ...

  8. 机器学习算法:支持向量机(SVM)

    参考书籍: Solem<python计算机视觉编程>.李航<统计学习方法>.周志华<机器学习> 要理解好支持向量机需要较好的数学功底,且能不被公式以及文字绕晕,这里 ...

  9. svm多分类_人工智能科普|机器学习重点知识——支持向量机SVM

    作为模式识别或者机器学习的爱好者,同学们一定听说过支持向量机这个概念,这可是一个,在机器学习中避不开的重要问题. 其实关于这个知识点,有一则很通俗有趣的传说: 很久以前,一个村庄里住着一位退隐的大侠, ...

最新文章

  1. android帧动画实现方法之一
  2. Jquery v1.3.2 与v1.4.2在andSelf()函数方面的区别
  3. golang正则表达式
  4. 重庆云宇宙数据中台:iwemeta.com
  5. 1008 Elevator (20 分)【难度: 简单 / 知识点: 模拟】
  6. 浅谈移动Web开发:深入概念
  7. 在线网摘收藏?让Google来吧!
  8. Cloud一分钟 | 谷歌投资的AR云平台开发商Blue Vision Labs,将由美版滴滴Lyft收购
  9. QQ企业邮箱+Spring+Javamail+ActiveMQ(发送企业邮件)
  10. jQuery 鼠标拖拽移动窗口
  11. THINK PHP 学习笔记20171115
  12. 关于SimpleDateFormat的一些使用及性能数据
  13. 《指针的编程艺术(第二版)》一第三章 指针与数组3.1 指针与一维数组
  14. Spark SQL面试题
  15. EXCEL自定义填充柄
  16. 新的开始-轩宇的c++学习之路
  17. android 新浪微博分享链接地址,Android 集成新浪微博分享及授权 (上)
  18. 计算机 英语简历,2017计算机英文简历范文
  19. CentOS下载与安装
  20. 4种 LBS “附近的人” 实现方案,人人都能看的懂

热门文章

  1. Android使用AudioTrack播放WAV音频文件
  2. ms office word2013教程 - 使用SmartArt绘制组织结构图
  3. ural1297. Palindrome
  4. 苹果livp格式heic怎么批量转成jpg,怎么打开图片
  5. 按键精灵和TC简单软件-获取窗口句柄比较
  6. 计算机的机身内存和硬盘内存,机身内存
  7. EXCEL开发工具Visual Basic文字转拼音代码
  8. PS中给图片局部调亮 无痕
  9. linux 源码安装 zip/unzip
  10. table表头和首列的表格固定-JQuery、js实现的Table表头固定