目录
一、支持向量机要解决的问题
Support Vector Machine
问题1:要解决的问题:什么样的决策边界才是最好的呢?
问题2:特征数据本身如果就很难分,怎么办呢?
问题3:计算复杂度怎么样?能实际应用吗?
目标:基于上述问题对SVM进行推导
决策边界
选出来离雷区最远的(雷区就是边界上的点,要Large Margin)
二、距离与数据定义
距离的计算
数据标签
数据集:(X1,Y1)(X2,Y2)... (Xn,Yn)
Y为样本的类别: 当X为正例时候 Y = +1 当X为负例时候 Y = -1
决策方程: (其中
是对数据做了变换)
=> =>
三、目标函数推导
优化的目标
通俗解释:找到一个条线(w和b),使得离该线最近的点(雷区) 能够最远
将点到直线的距离化简得:
(由于所以将绝对值展开原始依旧成立)
目标函数
放缩变换:对于决策方程(w,b)可以通过放缩使得其结果值|Y|>= 1
=> (之前我们认为恒大于0,现在严格了些)
优化目标:
由于,只需要考虑
(目标函数搞定!)
四、拉格朗日乘子法求解
目标函数
当前目标: ,约束条件:
常规套路:将求解极大值问题转换成极小值问题=>
如何求解:应用拉格朗日乘子法求解。
拉格朗日乘子法
带约束的优化问题:
原式转换:
我们的式子:
(约束条件不要忘: )
SVM求解
分别对w和b求偏导,分别得到两个条件(由于对偶性质)
对w求偏导:
对b求偏导:
五、化简最终目标函数
SVM求解
带入原始:
继续对ɑ求极大值:
条件:
极大值转换成求极小值: 条件:
六、求解决策方程
SVM求解实例
数据:3个点,其中正例 X1(3,3) ,X2(4,3) ,负例X3(1,1)
求解:
约束条件:
分别对ɑ1和ɑ2求偏导,偏导等于0可得:
(并不满足约束条件 ,所以解应在边界上)
最小值在(0.25,0,0.25)处取得。
将ɑ结果带入求解
平面方程为:
边界点所有值不为0的数据点为支持向量。
非边界点值必然为0
支持向量:真正发挥作用的数据点,ɑ值不为0的点 。
七、软间隔优化
soft-margin
软间隔:有时候数据中有一些噪音点,如果考虑它们咱们的线就不太好了。
之前方法要求要把两类点完全分得开,这个要求有点过于严格,为了解决该问题,引入松弛因子:
- 新的目标函数:
当C趋近于很大时:意味着分类严格不能有错误。
当C趋近于很小时:意味着可以有更大的错误容忍。
C是我们需要指定的一个参数!
- 拉格朗日乘子法:
八、核函数的作用
低维不可分问题
核变换:既然低维的时候不可分,那我给它映射到高维呢?
目标:找到一种变换的方法,也就是
举例
九、知识点总结
高斯核函数: