SVM

SVM

感知机

  • 在三维空间或者更高维的空间,感知机的模型尝试找到一个超平面,能够把所有的二元类别隔离开。对于这个超平面,我们定义为𝑤𝑇𝑥+𝑏=0。在超平面上方𝑦=1,在超平面下方𝑦=−1。

  • 点(x0,y0)到平面(y=Ax+By+C)的距离abs(A*x0+B*y0+C)/sqrt(A**2+B**2)

    点x到超平面的相对距离 d = |𝑤𝑇𝑥+𝑏|
    函数间隔 𝛾′ = 𝑦(𝑤𝑇𝑥+𝑏)
    点到超平面的真正距离即几何间隔 𝛾 = 𝑦(𝑤𝑇𝑥+𝑏)/||𝑤||2

  • 感知机模型的损失函数优化的思想是让所有误分类的点(定义为M)到超平面的距离和最小,即最小化
    ∑ x i ∈ M − y ( i ) ( w T x ( i ) + b ) / ∣ ∣ w ∣ ∣ 2 \sum\limits_{x_i \in M}- y^{(i)}(w^Tx^{(i)} +b)\big / ||w||_2 xiMy(i)(wTx(i)+b)/w2
    在感知机模型中,固定分母||𝑤||2=1 来简化损失函数。

支持向量

  • 分离的超平面为𝑤𝑇𝑥+𝑏=0,如果所有的样本不仅可以被超平面分开,还和超平面保持一定的函数距离,那么该超平面是比感知机的超平面优的。(这样的超平面只有一个)
    和超平面平行并保持一定函数距离的这两个超平面对应的向量(𝑤𝑇𝑥+𝑏= -l, 𝑤𝑇𝑥+𝑏= l),我们定义为支持向量。
  • 两条平行线之间的距离 abs(C1-C2)/sqrt(A**2+B**2)
  • 支持向量到超平面的距离为l/||𝑤||2,两个支持向量之间的距离为2l/||𝑤||2
    在这里插入图片描述

支持向量机

  1. SVM的模型是让所有点到超平面的距离大于一定的距离,也就是所有的分类点要在各自类别的支持向量两边。一般我们都取函数间隔为1:
    m a x      1 ∣ ∣ w ∣ ∣ 2      s . t      y i ( w T x i + b ) ≥ 1 ( i = 1 , 2 , . . . m ) max \;\; \frac{1}{||w||_2} \;\; s.t \;\; y_i(w^Tx_i + b) \geq 1 (i =1,2,...m) maxw21s.tyi(wTxi+b)1(i=1,2,...m)

    等同于固定距离的分子来最大化距离(在每个点到平面的距离都大于1的情况下最大化距离平面最近的点)
    m i n      1 2 ∣ ∣ w ∣ ∣ 2 2      s . t      y i ( w T x i + b ) ≥ 1 ( i = 1 , 2 , . . . m ) min \;\; \frac{1}{2}||w||_2^2 \;\; s.t \;\; y_i(w^Tx_i + b) \geq 1 (i =1,2,...m) min21w22s.tyi(wTxi+b)1(i=1,2,...m)

  2. 目标函数是凸函数,同时约束条件不等式是仿射的,在这里插入图片描述
    根据凸优化理论,我们可以通过拉格朗日函数将我们的优化目标转化为无约束的优化函数
    L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 2 − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 ]      s . t    α i ≥ 0 L(w,b,\alpha) = \frac{1}{2}||w||_2^2 - \sum\limits_{i=1}^{m}\alpha_i[y_i(w^Tx_i + b) - 1] \; \;s.t\;\alpha_i \geq 0 L(w,b,α)=21w22i=1mαi[yi(wTxi+b)1]s.tαi0
    可以看出目标函数减去了一项恒大于0的约束条件,所以目标函数等于Max(𝐿(𝑤,𝑏,𝛼)),即原目标函数等价于 m i n ⏟ w , b    m a x ⏟ α i ≥ 0 L ( w , b , α ) \underbrace{min}_{w,b}\; \underbrace{max}_{\alpha_i \geq 0} L(w,b,\alpha) w,b minαi0 maxL(w,b,α)

  3. 我们的这个优化函数满足KKT条件(最下方),也就是说,我们可以通过拉格朗日对偶将我们的优化问题转化为等价的对偶问题来求解 m a x ⏟ α i ≥ 0    m i n ⏟ w , b    L ( w , b , α ) \underbrace{max}_{\alpha_i \geq 0} \;\underbrace{min}_{w,b}\; L(w,b,\alpha) αi0 maxw,b minL(w,b,α)

    求𝐿(𝑤,𝑏,𝛼)基于𝑤和𝑏的极小值,可以通过对𝑤和𝑏分别求偏导数得到: ∂ L ∂ w = 0    ⇒ w = ∑ i = 1 m α i y i x i \frac{\partial L}{\partial w} = 0 \;\Rightarrow w = \sum\limits_{i=1}^{m}\alpha_iy_ix_i wL=0w=i=1mαiyixi
    ∂ L ∂ b = 0    ⇒ ∑ i = 1 m α i y i = 0 \frac{\partial L}{\partial b} = 0 \;\Rightarrow \sum\limits_{i=1}^{m}\alpha_iy_i = 0 bL=0i=1mαiyi=0

  4. 上式已经求出𝑤和𝛼的关系,可以带入优化函数𝐿(𝑤,𝑏,𝛼)消去𝑤,并乘以-1转化为最小化目标函数:
    m i n ⏟ α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ∙ x j ) − ∑ i = 1 m α i \underbrace{min}_{\alpha} \frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}\alpha_i\alpha_jy_iy_j(x_i \bullet x_j) - \sum\limits_{i=1}^{m} \alpha_i α min21i=1mj=1mαiαjyiyj(xixj)i=1mαi
    此处成立的条件自然为𝛼𝑖≥0,并且两个偏导函数成立。

  5. 只要我们可以求出上式极小化时对应的𝛼向量(𝛼∗ )就可以求出𝑤和𝑏了(SMO算法)
    w ∗ = ∑ i = 1 m α i ∗ y i x i w^{*} = \sum\limits_{i=1}^{m}\alpha_i^{*}y_ix_i w=i=1mαiyixi

    根据对偶互补条件𝛼𝑖(𝑦𝑖(𝑤𝑇𝑥𝑖+𝑏)−1)=0,如果𝛼𝑖>0则有𝑦𝑖(𝑤𝑇𝑥𝑖+𝑏)=1 即点在支持向量上,否则如果𝛼𝑖=0则有𝑦𝑖(𝑤𝑇𝑥𝑖+𝑏)≥1,即样本在支持向量上或者已经被正确分类。

    对于任意支持向量(xs,ys):
    y s ( w T x s + b ) = y s ( ∑ i = 1 m α i y i x i T x s + b ) = 1 y_s(w^Tx_s+b) = y_s(\sum\limits_{i=1}^{m}\alpha_iy_ix_i^Tx_s+b) = 1 ys(wTxs+b)=ys(i=1mαiyixiTxs+b)=1

    假设我们有S个支持向量,则对应我们求出S个𝑏∗,理论上这些𝑏∗都可以作为最终的结果, 但是我们一般采用一种更健壮的办法,即求出所有支持向量所对应的𝑏∗𝑠,然后将其平均值作为最后的结果。

  6. 最终的分类决策函数为:𝑓(𝑥)=𝑠𝑖𝑔𝑛(𝑤∗∙𝑥+𝑏∗)

    SVM的假设:数据集必须是线性可分的

KKT条件:

  1. 超平面条件:ym(wT*xm+b) >= 1
  2. 拉格朗日函数条件:𝛼𝑖 >= 0
  3. 偏导数条件:𝑤 = ∑𝛼𝑖𝑦𝑖𝑥𝑖 & ∑𝛼𝑖𝑦𝑖 = 0
  4. 对偶互补条件:𝛼𝑖(𝑦𝑖(𝑤𝑇𝑥𝑖+𝑏)−1)=0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值