NLP学习(二)——支持向量机(SVM)


Support Vector Machine(SVM)

对下图中的数据点进行分类:
NLP学习(二)——支持向量机(SVM)

要解决的问题

  • 什么样的决策边界最好?
  • 特征数据本身若很难分应怎么处理?
  • 计算复杂度如何?

决策边界

若将数据点比喻为地雷,则决策边界为选出的离雷区最远的(雷区就是边界上的点,要large margin)
NLP学习(二)——支持向量机(SVM)

距离的计算

NLP学习(二)——支持向量机(SVM)
NLP学习(二)——支持向量机(SVM)

数据标签定义

数据集:/((X_{1},Y_{1})(X_{2},Y_{2})…(X_{n},Y_{n})/)
Y为样本的类别:当X为正例时Y=+1,当X为负例时Y=-1
决策方程

/[y(x)=w^{T}/phi(x)+b => /begin{cases}y(x_{i})>0=>y_{i}=+1//y(x_{i})<0=>y_{i}=-1/end{cases}=>y_{i}·y(x_{i})>0
/]

其中/(/phi(x)/)为数据点由低维到高维的变换函数

优化的目标

通俗的解释就是找到一条线使得离该线最近的点(雷区)能够最远
将点到直线的距离化简得:

/[y_{i}·(w^{T}·/phi(x_{i})+b)/over||w||
/]

由于/(y_{i}·y(x_{i})>0/)所以去掉绝对值后原式依然成立

目标函数

放缩变换:对于决策方程(w,b)可以通过放缩使/(|Y|/geq1=>y_{i}·(w^{T}·/phi(x_{i})+b)/geq1/)
(为使其易于化简,认为其恒大于1)
优化目标NLP学习(二)——支持向量机(SVM)
由于/(y_{i}·(w^{T}·/phi(x_{i})+b)/geq1/),只需要考虑/({/underset {w,b} { /operatorname {arg/,max} } /, /left(1/over||w||/right)}/)
当前目标:/({/underset {w,b} { /operatorname {max} } /, /left(1/over||w||/right)}/),约束条件:/(y_{i}·(w^{T}·/phi(x_{i})+b)/geq1/)
常规套路:将求解极大值问题转换成求解极小值问题/(=>{/underset {w,b} { /operatorname {min} } /, /left(w^{2}/over2/right)}/)(w为向量)
求解方法:拉格朗日乘子法

拉格朗日乘子法

带约束的优化问题NLP学习(二)——支持向量机(SVM)

原式转换NLP学习(二)——支持向量机(SVM)

我们的式子NLP学习(二)——支持向量机(SVM)
(设法用a表示w和b)

SVM求解

  • 分别对w和b求偏导,分别得到两个条件(由于对偶性质)NLP学习(二)——支持向量机(SVM)
  • 对w求偏导:NLP学习(二)——支持向量机(SVM)
  • 对b求偏导:NLP学习(二)——支持向量机(SVM)
  • 带入原始:NLP学习(二)——支持向量机(SVM)
    NLP学习(二)——支持向量机(SVM)
    *继续对a求极大值:NLP学习(二)——支持向量机(SVM)
    条件:NLP学习(二)——支持向量机(SVM)
    *极大值转换成求极小值:NLP学习(二)——支持向量机(SVM)
    条件:NLP学习(二)——支持向量机(SVM)

SVM求解实例

数据:三个点,其中正例X1(3,3),X2(4,3),负例X3(1,1)
求解NLP学习(二)——支持向量机(SVM)
约束条件:/(/alpha_{1}+/alpha_{2}-/alpha_{3}=0///alpha_{i}/geq0,i=1,2,3/)
NLP学习(二)——支持向量机(SVM)
将数据代入原式NLP学习(二)——支持向量机(SVM)
由于:/(/alpha_{1}+/alpha_{2}=/alpha_{3}
化简可得:![](https://www.icode9.com/i/l/?n=22&i=blog/2917691/202207/2917691-20220725015735161-1517621231.png)
分别对/)/alpha_{1}/(和/)/alpha_{2}$求偏导(约束条件 /(/alpha_{i}/geq0,i=1,2,3/)),偏导等于0可得:
/(/alpha_{1}=1.5///alpha_{2}=-1/) 不满足约束条件
/(/alpha_{1}=0///alpha_{2}=-2/13/) 不满足约束条件
/(/alpha_{1}=0.25///alpha_{2}=0/) 满足约束条件
最小值在(0.25,0,0.25)处取得
将/(/alpha/)结果带入求解

/[w=/sum/limits_{i=1}^n/alpha_{i}y_{i}/phi(x_{n})//
w=/frac{1}{4}*1*(3,3)+0*1*(4,3)+/frac{1}{4}*-1*(1,1)=(/frac{1}{2},/frac{1}{2})//
b=y_{i}-/sum/limits_{i=1}^{n}/alpha_{i}y_{i}(x_{i}x_{j}=1-(/frac{1}{4}*1*18+/frac{1}{4}*(-1)*6)=-2
/]

平面方程为:/(0.5x_{1}+0.5x_{2}-2=0/)

支持向量

即真正发挥作用的数据点,即/(/alpha/)不为0的点(处于雷区的点)

soft-margin

软间隔:有时候数据中会有一些噪音点(干扰点),如果考虑的话决策边界的效果会变差
NLP学习(二)——支持向量机(SVM)
为了解决该问题,引入松弛因子/(xi_{i}/):

/[y_{i}(w·x_{i}+b)/geq1-/xi_{i}
/]

新的目标函数

/[min/frac{1}{2}||w||^{2}+C/sum/limits_{i=1}^{n}/xi_{i}
/]

C是一个需指定的参数
当C趋近于很大时:意味着分类严格不能有误
当C趋近于很小时:意味着可以有更大的错误容纳
因为要求极小值,当C趋于很大时,只有/(/xi_{i}/)很小时才能满足需要;当C趋于很小时,即使/(/xi_{i}/)较大也可容易地找到极小值

拉格朗日乘子法

引入松弛因子后公式为:

/[L(w,b,/xi,/alpha,/mu)=/frac{1}{2}||w||^{2}+C/sum/limits_{i}^{n}/xi_{i}-/sum/limits_{i}^{n}/alpha_{i}(y_{i}(w·x_{i}+b)-1+/xi_{i})-/sum/limits_{i}^{n}/mu_{i}/xi_{i}//
w=/sum/limits_{i}^{n}/alpha_{i}y_{i}/phi(x_{n})
/]

约束:

/[0=/sum/limits_{i}^{n}/alpha_{i}y_{i}//
C-/alpha_{i}-/mu_{i}=0//
/alpha_{i}/geq0 /mu_{i}/geq0
/]

解法与先前相同

低维不可分问题

核变换

当低维不可分的时候,映射至高维后是否可分?
NLP学习(二)——支持向量机(SVM)
目标:找到一种变换函数/(/phi(x)/),从而实现将数据由低维向高维映射
NLP学习(二)——支持向量机(SVM)

高斯核函数

公式:
NLP学习(二)——支持向量机(SVM)
NLP学习(二)——支持向量机(SVM)
尽量不要尝试自己开发新的核函数:-(

reference

https://www.bilibili.com/video/BV1dZ4y1b7in?p=129&share_source=copy_web&vd_source=bc572b96767067a4ac4c1a2d53fc8d39

原创文章,作者:Carrie001128,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/276816.html

(0)
上一篇 2022年7月25日 06:32
下一篇 2022年7月25日 06:33

相关推荐

发表回复

登录后才能评论