机器学习:支持向量机(SVM)

机器学习算法—支持向量机(support vector machine,SVM)

线性SVM

给定训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋅ ⋅ ⋅ , ( x m , y m ) } , y ∈ { − 1 , + 1 } D=\{(x_1,y_1),(x_2,y_2),\cdot\cdot\cdot,(x_m,y_m)\},y\in\{-1,+1\} D={(x1,y1),(x2,y2),,(xm,ym)}y{1,+1},分类学习的基本思想就是基于训练集D在样本空间寻找一个划分超平面,将不同类别的样本区别开。因此重点就是如何寻找最优的划分超平面。

Alt
在样本空间中,划分超平面可通过如下线性方程来描述: ω T x + b = 0 \omega^Tx+b=0 ωTx+b=0样本空间中任一点 x x x到超平面 ( ω , b ) (\omega,b) (ω,b)距离 γ \gamma γ可写成: γ = ∣ ω T x + b ∣ ∣ ∣ ω ∣ ∣ \gamma=\frac{|\omega^Tx+b|} {||\omega||} γ=ωωTx+b假设超平面 ( ω , b ) (\omega,b) (ω,b)能够对样本 ( x i , y i ) (x_i,y_i) (xi,yi)正确分类,那么有 { ω T x i + b &gt; 0 , y i = + 1 ω T x i + b &lt; 0 , y i = − 1 \begin{cases} \omega^Tx_i+b&gt;0,y_i=+1 \\ \omega^Tx_i+b&lt;0,y_i=-1\end{cases} {ωTxi+b>0yi=+1ωTxi+b<0yi=1为了增强分类器的鲁棒性,我们令 { ω T x i + b ≥ + 1 , y i = + 1 ω T x i + b ≤ − 1 , y i = − 1 \begin{cases} \omega^Tx_i+b\geq+1,y_i=+1 \\ \omega^Tx_i+b\leq-1,y_i=-1\end{cases} {ωTxi+b+1yi=+1ωTxi+b1yi=1使得上式等号成立的样例称之为“支持向量(support vector)”。
两个异类支持向量到超平面的距离之和称为间隔(margin) γ \gamma γ γ = 2 ∣ ∣ ω ∣ ∣ \gamma=\frac{2} {||\omega||} γ=ω2
Alt
间隔最大化
支持向量机的思想思想就是寻找一超平面,使得间隔最大化。因此可获得支持向量机的基本型为:
m a x ω , b 2 ∣ ∣ ω ∣ ∣ s.t. y i ( ω T x i + b ) ≥ 1 i = 1 , 2 , . . . m . \begin{array}{} \underset {\omega,b} {max} &amp; \frac{2}{||\omega||} \\ \text{s.t.}&amp; y_i( \omega^Tx_i+b)\geq1 \\ &amp;i=1,2,...m. \end{array} ω,bmaxs.t.ω2yi(ωTxi+b)1i=1,2,...m.引入二范数,上述优化问题等价于
m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 s.t. y i ( ω T x i + b ) ≥ 1 i = 1 , 2 , . . . m . \begin{array}{} \underset {\omega,b} {min} &amp; \frac{1}{2} ||\omega||^2 \\ \text{s.t.}&amp; y_i( \omega^Tx_i+b)\geq1 \\ &amp;i=1,2,...m. \end{array} ω,bmins.t.21ω2yi(ωTxi+b)1i=1,2,...m.

对偶SVM

拉格朗日函数和对偶形式

拉格朗日函数

定义:
对于优化问题一 m i n u f ( u ) s.t. g i ( u ) ≤ 0 ,   i = 1 , 2 , . . . , m h j ( u ) = 0 ,   j = 1 , 2 , . . . , n \begin{array}{} \underset {u} {min} &amp; f(u) \\ \text{s.t.}&amp; g_i(u)\leq0, \ i=1,2,...,m \\ &amp;h_j(u)=0, \ j=1,2,...,n \end{array} umins.t.f(u)gi(u)0, i=1,2,...,mhj(u)=0, j=1,2,...,n
定义其拉格朗日函数为: L ( u , α , β ) : = f ( u ) + ∑ i = 1 m α i g i ( u ) + ∑ j = 1 n β j h j ( u ) , 其中 α i ≥ 0 L(u,\alpha,\beta):=f(u)+\sum_{i=1}^m\alpha_ig_i(u)+\sum_{j=1}^n\beta_jh_j(u),\text{其中}\alpha_i \geq0 L(u,α,β):=f(u)+i=1mαigi(u)+j=1nβjhj(u)其中αi0对于优化问题一描述的优化问题等价于
m i n u m a x α , β L ( u , α , β ) s.t. α i ≥ 0 ,   i = 1 , 2 , . . . , m \begin{array}{} \underset {u} {min} \underset {\alpha,\beta} {max}&amp; L(u,\alpha,\beta) \\ \text{s.t.}&amp; \alpha_i \geq0, \ i=1,2,...,m \\ \end{array} uminα,βmaxs.t.L(u,α,β)αi0, i=1,2,...,m证明过程:
ALT

KKT条件

利用拉格朗日函数构造等价的优化问题必须满足KKT条件:

  • 主问题可行: g i ( u ) ≤ 0 ,   h j ( u ) = 0 g_i(u)\leq0,\ h_j(u)=0 gi(u)0, hj(u)=0
  • 对偶问题可行: α i ≥ 0 \alpha_i \geq 0 αi0
  • 互补松弛(complementary slackness): α i g i ( u ) = 0 \alpha_ig_i(u) = 0 αigi(u)=0

α i g i ( u ) = 0 \alpha_ig_i(u) = 0 αigi(u)=0是在主问题和对偶问题都可行的条件下的最大值。

对偶问题

定义优化问题一的对偶问题为:
m a x α , β m i n u L ( u , α , β ) s.t. α i ≥ 0 ,   i = 1 , 2 , . . . , m \begin{array}{} \underset {\alpha,\beta} {max} \underset {u} {min} &amp; L(u,\alpha,\beta) \\ \text{s.t.}&amp; \alpha_i \geq0, \ i=1,2,...,m \\ \end{array} α,βmaxumins.t.L(u,α,β)αi0, i=1,2,...,m对偶问题是主问题的下界,即: m a x α , β m i n u ≤ m i n u m a x α , β \underset {\alpha,\beta} {max} \underset {u} {min} \leq \underset {u} {min} \underset {\alpha,\beta} {max} α,βmaxuminuminα,βmax

线性支持向量机对偶型

支持向量机基本型:
m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 s.t. y i ( ω T x i + b ) ≥ 1 i = 1 , 2 , . . . m . \begin{array}{} \underset {\omega,b} {min} &amp; \frac{1}{2} ||\omega||^2 \\ \text{s.t.}&amp; y_i( \omega^Tx_i+b)\geq1 \\ &amp;i=1,2,...m. \end{array} ω,bmins.t.21ω2yi(ωTxi+b)1i=1,2,...m.这是一个有约束的二次规划问题,引入拉格朗日乘子 α \alpha α,当 α ≥ 0 \alpha\geq0 α0时,可构造拉格朗日函数 L ( ω , b , α ) L(\omega,b,\alpha) L(ω,b,α): L ( ω , b , α ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( ω T x i + b ) ) L(\omega,b,\alpha)=\frac{1} {2} ||\omega||^2+\sum_{i=1}^m \alpha_i(1-y_i( \omega^Tx_i+b)) L(ω,b,α)=21ω2+i=1mαi(1yi(ωTxi+b))分别对 ω , b , α \omega,b,\alpha ω,b,α求导等于0可得: ∂ L ∂ ω = 0 &ThickSpace; ⟹ &ThickSpace; ω = ∑ i = 1 m α i y i x i \frac{\partial L}{\partial \omega}=0 \implies \omega=\sum_{i=1}^m\alpha_iy_ix_i ωL=0ω=i=1mαiyixi ∂ L ∂ b = 0 &ThickSpace; ⟹ &ThickSpace; ∑ i = 1 m α i y i = 0 \frac{\partial L}{\partial b}=0\implies \sum_{i=1}^m\alpha_iy_i=0 bL=0i=1mαiyi=0将其代入到上式可得:
m i n α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j − ∑ i = 1 m α i s.t. α i ≥ 0 , i = 1 , 2 , . . . m . \begin{array}{} \underset {\alpha} {min} &amp; \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_jx_i^Tx_j -\sum_{i=1}^m\alpha_i\\ \text{s.t.}&amp; \alpha_i\geq 0 ,\quad i=1,2,...m. \end{array} αmins.t.21i=1mj=1mαiαjyiyjxiTxji=1mαiαi0,i=1,2,...m.上式即为线性支持向量机对偶型,等价于找到一组合适的参数 α \alpha α使得上式成立。
线性支持向量机对偶型中描述的优化问题属于二次规划问题, 包括m优化变量, m+2约束
线性支持向量机的KKT条件如下

  • 主问题可行: 1 − y i ( ω T x i + b ) ≤ 0 1-y_i( \omega^Tx_i+b)\leq0 1yi(ωTxi+b)0;
  • 对偶问题可行: α i ≥ 0 \alpha_i\geq 0 αi0
  • 互补松弛: α i ( 1 − y i ( ω T x i + b ) ) = 0 \alpha_i(1-y_i( \omega^Tx_i+b))=0 αi(1yi(ωTxi+b))=0

支持向量

满足 1 − y i ( ω T x i + b ) = 0 1-y_i( \omega^Tx_i+b)=0 1yi(ωTxi+b)=0,即 y i ( ω T x i + b ) = 1 y_i( \omega^Tx_i+b)=1 yi(ωTxi+b)=1的样本称为支持向量;
也可以说,对偶变量 α i &gt; 0 \alpha_i&gt;0 αi>0对应的样本称为支持向量。
引理:线性支持向量机中, 支持向量是距离划分超平面最近的样本, 落在最大间隔边界上。
定理:支持向量机的参数 ( ω , b ) (\omega,b) (ω,b)仅由支持向量决定,与其他样本无关。证明:
ALT

线性支持向量机的假设函数

h ( x ) = sign ( ∑ i ∈ S V α i y i x i T x + b ) h(x)=\text{sign}(\sum_{i\in SV}\alpha_iy_ix_i^Tx+b) h(x)=sign(iSVαiyixiTx+b)

非线性SVM

对于非线性可分问题,在原始的特征空间 R d \R^d Rd不是线性可分的,支持向量机希望通过一个映射: ϕ : R d → R d ~ \phi:\R^d\to \R^{\tilde{d}} ϕ:RdRd~,使得样本在空间 R d ~ \R^{\tilde{d}} Rd~是线性可分的。

核函数

定义核函数: k ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) k(x_i,x_j)=\phi(x_i)^T\phi(x_j) k(xi,xj)=ϕ(xi)Tϕ(xj)
支持向量机的基本型和对偶型相应的变为:
ALT
常用核函数
ALT
通常,当特征维数d超过样本数m时(文本分类问题通常是这种情况),使用线性核;当特征维数d比较小,样本数m中等时,使用RBF核; 当特征维数d比较小;样本数m特别大时,支持向量机性能通常不如深度神经网络。

软间隔SVM

不管直接在原特征空间, 还是在映射的高维空间,我们都假设样本是线性可分的. 虽然理论上我们总能找到一个高维映射使数据线性可分, 但在实际任务中, 寻找到这样一个合适的核函数通常很难. 此外, 由于数据中通常有噪声存在, 一味追求数据线性可分可能会使模型陷入过拟合的泥沼. 因此, 我们放宽对样本的要求, 即允许有少量样本分类错误.

软间隔支持向量机基本型

m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ cost ( y i ≠ sign ( w T ϕ ( x i ) + b ) ) s.t. y i ( ω T x i + b ) ≥ 1 , if  y i = sign ( w T ϕ ( x i ) + b ) \begin{array}{} \underset {\omega,b} {min} &amp; \frac{1}{2} ||\omega||^2+C\sum \text{cost}(y_i \neq \text{sign}(w^T\phi(x_i)+b))\\ \text{s.t.}&amp; y_i( \omega^Tx_i+b)\geq1 ,\quad \text{if}\ y_i = \text{sign}(w^T\phi(x_i)+b) \end{array} ω,bmins.t.21ω2+Ccost(yi̸=sign(wTϕ(xi)+b))yi(ωTxi+b)1,if yi=sign(wTϕ(xi)+b)其中,cost()是代价函数,C是个可调节参数用于权衡优化间隔和少量分类错误样本这两个目标,当C较大时,我们希望更多的样本满足大间隔约束;当C较小时,我们允许有一些样本不满足大间隔约束。
引入松弛变量 ξ i \xi_i ξi用于度量样本违背约束的程度。当样本违背约束的程度越大,松弛变量值越大,即:
ALT
软间隔支持向量机基本型
ALT

软间隔支持向量机对偶型

m i n α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) − ∑ i = 1 m α i s.t. ∑ i = 1 m α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , . . . m . \begin{array}{} \underset {\alpha} {min} &amp; \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\phi(x_i)^T\phi(x_j) -\sum_{i=1}^m\alpha_i\\ \text{s.t.}&amp; \sum_{i=1}^m\alpha_iy_i=0 \\ &amp;\quad \quad\quad\quad \quad0 \leq \alpha_i\leq C ,\quad i=1,2,...m. \end{array} αmins.t.21i=1mj=1mαiαjyiyjϕ(xi)Tϕ(xj)i=1mαii=1mαiyi=00αiC,i=1,2,...m.证明:
ALT

支持向量

ALT
ALT

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值