本文只做简单的总结,详细的过程请大家参考别的文章!

--------------------------------原问题---------------------

假设2维平面有点分布如图:

SVM入门级别简单总结SVM入门级别简单总结

想找一条直线SVM入门级别简单总结把这些点分开。也就是说满足两个条件(假设两个点的标签分别为1 和 -1)

当y=1时,有SVM入门级别简单总结SVM入门级别简单总结

当y=-1时,有SVM入门级别简单总结

在平面上就是这样两条直线

SVM入门级别简单总结

现在,希望这个直线能够很好的把两类点分开,那就是希望两条直线的间隔尽可能的大。

也就是SVM入门级别简单总结SVM入门级别简单总结

这个问题等价于SVM入门级别简单总结 其中约束条件为:SVM入门级别简单总结(添加平方项不影响取得最值时的w,这样便于后于的求导)SVM入门级别简单总结


至此,这就是硬间隔的SVM的基本型(所谓硬间隔其实就是不允许有分类错误,即后面提到的C=0的情况)。


原问题是带约束优化问题,直接求解不好求,所以才有转化成对偶问题来求解。


--------------------------对偶问题------------------------


对偶问题利用拉格朗日乘子法:

优化目标:SVM入门级别简单总结

如果高数知识没忘的话,我们下一步很自然就会做对w和b求偏导

对w求偏导:SVM入门级别简单总结


对b求偏导:SVM入门级别简单总结

可以看到w和b都是只含未知变量SVM入门级别简单总结

把w和b带进去可以得到下面这个式子(附详细的推导过程)

SVM入门级别简单总结

注意这里的,把摸的平方,展开写成这样便于理解

SVM入门级别简单总结

把上面推导得到的w带进来,这里要注意一下下标。不是一样的下标,因为最终是有m*m项而不是只有m项

SVM入门级别简单总结

注意利用上面对b求偏导等于0的条件。

至此,对偶问题的目标函数就推导完毕了。下面就是要补充一下KKT条件。

条件1:拉格朗日乘子需要大于等于0。SVM入门级别简单总结

条件2:原问题带下的条件约束:SVM入门级别简单总结

条件3:SVM入门级别简单总结

对于条件1,2大家可能没疑惑,但是条件3是怎么一回事呢?

我们可以这样简单直观的理解:我们优化目标是以下这个函数

SVM入门级别简单总结

假如我们不加条件3的约束,其实求出来的并不是单单SVM入门级别简单总结的最值。

而是整一串的最值。

如果我们约束了SVM入门级别简单总结,那么其实这个优化目标就是等价的。


也就是:SVM入门级别简单总结

至此,KKT条件也补充完毕。


硬间隔的SVM推导到这里可以告一段落,下面就是软间隔的SVM推导,其实,和硬间隔没有多大区别。

-------------------------------------------------------------软间隔SVM---------------------------------------------


在上面的约束条件中,我们严格要求对于每一个样本都要有SVM入门级别简单总结

然而,现实中的许多任务很难找到合适的核函数使得训练样本在空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合所造成的。

也就是说,我们不需要严格的要求上面的约束条件严格成立,只要要求以下这个式子成立:

SVM入门级别简单总结

其实,我们这个SVM入门级别简单总结就是我的误差(误差是大于等于0的),既然每个都允许有一定的误差,那么整个优化目标函数就可以变成


SVM入门级别简单总结SVM入门级别简单总结SVM入门级别简单总结

这里的常数C可能有点突兀,大家都可以在网上找到更多关于常数C的解读。


在硬间隔时,我做到这里的时候,下面就是转为对偶问题,这里同样也是这个思路。

转为对偶问题:

SVM入门级别简单总结

这里我不妨先写出KKT条件:

SVM入门级别简单总结

最后两个其实是保证优化函数里面后面两项为0的(这里上面解释过)

OK,至此SVM的基本推导就结束了。


------------------------------我是分割线-------------------------------------------------------

这里我再补充一下关于SVM入门级别简单总结的一些问题。

其实,SVM入门级别简单总结是误差,这个误差可以有很多种形式。

例如,0/1损失函数,所谓0/1损失函数就是,对于不满足SVM入门级别简单总结的样本,我们就令SVM入门级别简单总结为1,满足的就令为0

又比如hinge损失,就是令SVM入门级别简单总结

什么意思呢?这样,假如对于某一个样本SVM入门级别简单总结,我们算出来SVM入门级别简单总结为2,且此时SVM入门级别简单总结=1

那么SVM入门级别简单总结,也就是没有误差。

如果SVM入门级别简单总结=0.8,且SVM入门级别简单总结=1,那么SVM入门级别简单总结

也就是说有0.2的误差。

----------------------------------------------我还是分割线-----------------------------------------

首先,我们把SVM入门级别简单总结记作SVM入门级别简单总结

然后把w带进去。

其实,公式,推到完了,但是为什么这个模型要叫支持向量机?机的意思可以理解成“算法”,那么支持算法是什么呢?


支持向量的概念可以从KKT条件中导出。

在KKT条件中,如果我们对SVM入门级别简单总结做一些简单的不等式分析可以得到一些结论。

SVM入门级别简单总结,这个式子其实告诉我们,SVM入门级别简单总结或者SVM入门级别简单总结至少有一个为0。

①不妨假设SVM入门级别简单总结时,这个时候,样本SVM入门级别简单总结由于系数等于0就不再对SVM入门级别简单总结起作用。

②不妨假设SVM入门级别简单总结时,有SVM入门级别简单总结,没有误差,即位于间隔上。

③不妨假设SVM入门级别简单总结,也就是说位于间隔内部。

具体可以参考下面这个图。

SVM入门级别简单总结

总结一下:

1.如何把SVM的优化目标找出来(即原问题)?

2.为什么要转成对偶问题?对偶问题是什么?

3.KKT条件是哪些?

下一篇是关于利用SMO算法求解这个最优解的问题也涉及到一些公式的推导,稍等...........................


相关文章:

  • 2022-12-23
  • 2021-06-14
  • 2021-12-23
  • 2021-09-19
  • 2021-07-23
  • 2022-12-23
  • 2021-06-13
猜你喜欢
  • 2021-04-18
  • 2021-05-24
  • 2021-10-30
  • 2021-09-07
  • 2022-12-23
  • 2021-10-27
  • 2022-03-09
相关资源
相似解决方案