支持向量

image.png

真正决定boundary在哪,是由support vector所决定的。

历史

image.png

分类(SVC)

image.png
image.png

无监督学习:聚类、降维(用于数据预处理,提高数据质量)、异常检测。

间隔(margin)

image.png
image.png
image.png

||w||表示w的L2范数(模长)。

image.png
支持向量机实际上就是凸优化问题。

s.t.即subject to,受限于

凸优化

想象y=x^2的图像,它就是一个凸函数——最小值只有一个(极小值一定是全局最优的)。

image.png
image.png
image.png

凸优化—有最小值、凹优化—有最大值。

image.png

对偶问题

image.png
image.png

g(x)和f(x)在最小点的梯度方向之间有关系? 由于g(x)=0,其梯度为0,也就是垂直于点的方向。 那么f(x)的梯度方向一定与其在同一条直线上(同向平行or反向平行),因此这个点时最小值,f(x)的导数必为0。

KKT条件

1.lambda>=0 2.lambda*g(x)恒等于0

image.png

1)lambda为什么>=0? g(x)梯度一定是向外的(梯度方向值增大,从<0- > =0 -> >0) f(x)梯度一定是向内的(最小值在约束里面) 因此,f(x)和g(x)梯度一定是相反的, 因此,lambda一定>0保证上面。=0的话就是约束不起作用。 2)lambda*g(x)为什么恒等于0? 因为要么两种情况,要么lambda=0,要么g(x)=0。

如何让梯度下降算法的步长合适?(不会过大或过小)
变步长。10^-3、10^-2这样调
image.png

对偶问题(续)

image.png

L <= f(x),因为后面加的东西<=0。因此L的最大值就是f(x) 那么minf(x)=min max L 其对偶问题就是掉个个,max min L 先求max,再求min(max可能有很多个,求min是从中选一个)。 先求min,再求max(min只有一个,求max也是一个) 举个例子,一大群高个子中的矮个子 身高 >= 一个群矮个子中的高个子。

image.png

弱对偶性(得到的不是严格解),若满足KKT条件(而SVM恰好满足),得到的就是强对偶(严格解)。

总结

image.png

损失函数是什么?max2/||w|| 即min 1/2 ||w||^2、以及约束… 拉格朗日为什么是这样形式?也就是不等式约束、等式约束一些问题。

image.png

为什么支持向量机只与支持向量有关?数学理论就是KKT条件

image.png

λ=0的点也就是非支持向量(没有贡献) λ>0的点就是支持向量(有贡献的点)

核函数

image.png
image.png

https://www.youtube.com/watch?v=3liCbRZPrZA

image.png

把x加一个映射。

image.png

不需要显式知道映射,只需要知道映射后的乘积k

常见的k有:
image.png

软间隔与正则化

image.png

  1. 样本存在一些noise
  2. C代表容忍度,C越大,越不能容忍错误,模型越复杂。
  3. 引入一个松弛变量

image.png
image.png

回归(SVR)

image.png
image.png
image.png

引入两个松弛变量

image.png

SVC是要分开(margin内是支持向量),SVR是要聚在一起(margin外是支持向量)

image.png

代码实战