SVM三个重点问题:间隔,对偶,核技巧
核技巧并不是说是和SVM单独绑定到一块就是属于SVM的,而是很早以前就有,就是将原本的X维度的空间映射到更高维度的空间,然后处理线性不可分的情况。
首先SVM的提出是为了解决二分类问题
准确的来说,这有两个类别的数据,有个一超平面可以将他们完美的分开,那么这个超平面的表示应该是wTX+b。
看上图,其实在图中可以将两个类别分开的线有无数条,那么SVM选择的这条有什么优势或者说有什么特点呢?
SVM就是要从这么些若干条可以正确分类的线中,挑选出来一条最好的分类平面。
那么这个图中又有一个另外的线,为什么说他不好的,比如说,有一个点,只要稍微移动,就会对类别的预测错误,因此我们说这条线去做分类他的泛化能力弱。也就是说受噪声点的影响比较大。
首先先讲解硬间隔:hard-margin
提到硬间隔,结合SVM的思想:找出最优的一条线,让它距离两个类别的点都尽可能的远,因此我们可以写出函数:[max,margin(w,b)],代表的意义就是最大化间隔,margin代表的是一个包含w和b的函数,它需要满足一个条件,st.{wxi+b>0,yi=1 ; wxi+b<0,yi=-1},这两个约束条件其实可以写成一个:yi*(wxi+b)>0,那么定义的这个margin函数到底是个什么函数,在这里我们定义的是点到直线距离,总共有i个样本点,那么就会有i个distance,需要找出最小的distance。
综合起来得到以下公式:
代表的含义就是说,我要找到一些距离超平面最近的一些点,然后将这个距离最大化,这样以来找到的直线或者超平面效果是不是就是最好的效果。
上述函数中:|wx+b|可以写成yi*(wx+b)>0,都是大于零的,因此是恒等式。
总结一下SVM算法中的硬间隔:
最终我们的出一个这样的函数,这个函数就是最后我们需要优化的问题:
上述问题我们往往称为原问题。
在这我们不难看出要优化的是带有约束条件的问题,这种问题一般怎么解决,使用拉格朗日乘子法。
那我们就先把上述目标函数中的拉格朗日函数写出来。
这个是不是就是拉格朗日函数,在函数中引入一个λ参数,用L代表了原始问题的拉格朗是函数,然后将约束条件写入到函数当中。λ是大于等于0的,后边括号里边的内容是小于等于0的,拉格朗日函数就有这种限制。
那么引入了拉格朗日函数之后我原始的问题就可以转换成:
Min L(w,b,λ)
- t λ>=0
然后此时我们发现拉格朗日函数L中是不是有三个参数,这个时候我们可以对它做一个划分,就是先将λ最大,然后再将w,b最小,转换成如下优化问题:
这边变换之后也就是说利用拉格朗日乘子法,将原本带有约束的问题转换成了不带约束的问题,那么肯定有同学会问啦,下边不是还有约束吗,我们要知道的是,我们的目标函数中要优化的是w和b这两个参数。
那么就有同学不理解了,这个经过拉格朗日变化的函数和原问题还是一样的吗,在这我们不做证明,但是带着大家理论上去理解一下,它们就是求解的一个东西,举个例子去理解:
假如说我定义一个集合,并且定义(1-yi(wTxi+b))这部分为Δ,在原问题中这部分是做对Δ这部分做了个小于等于零的约束对吧,但是我们不是说现在把它转换成了无约束的问题了嘛,因此Δ可以分为大于零小于零了两种情况,大于零的时候是不是可以无限的大,小于零的时候是不是可以无限小,但是最大值为零:
- 如果Δ是大于0的,我们看一下min,max,L(w,b,λ),那么maxL的值是多少是不是1/2 wTw + ∞ = ∞,也就是说最大值是不存在的,因此没有什么太大意义。
- 如果Δ是小于等于0的,那么同样在带入到函数当中,我们可以看出,他的一个最大值是1/2 wTw,因此呢这个时候的min max L一定存在,这样情况下是不是就等于原问题了,
如下图所示最终我们将两个式子中和,然后最小化,最终的出来的式子是不是就跟原式子一样了,那我们刚刚也说到了,是不是说在Δ大于零的情况下是没有意义的,或者说得到的那个值对我们来说没有任何意义,因此呢,在上图中就是将Δ大于零部分的w,b的值给全部丢掉了,因此剩下的是不是只有Δ小于零的部分,这是不是就相当于是我们这个公式中的潜规则一样,说然没有明确的说约束条件,但是它是不是之潜在的自动的就将不合适的集合给pass掉了呀,那现在看来我们这两个公式最终求解的结果是不是一样的,因此我们说这两个公式是不是对等的。
到现在我们是将带约束的原问题,转换成了无约束问题,怎么转化的呢通过拉格朗日,然后在将无约束问题转成对偶问题,变成了:
其实它们之间是有一种关系的,什么关系呢:
Min max L >= Max min L
为什么,这个也是可以证明的,但是在这不做证明,我们还是从直观的角度去理解,大家肯定听说过宁做鸡头不做凤尾,这句话啥意思,鸡头毕竟是鸡头,它只有鸡的水平,凤尾再差也是凤,那么这个min就是鸡,max就是凤,那么因此,min max L是不是就相当于从凤里边挑选了一个最差的,也就是凤尾,而max min L上来就min也就是说上来就不行了,因此也就相当于是从鸡中挑选了一个鸡头。同时我们说这种关系啊,叫做弱对偶关系,但是这并不是我们想要的,我们想要的是一种强对偶关系。就是:
min max L = max min L的情况下。
其实我们很善于解决无优化问题,因为平时我们在解决无优化问题的时候是不是直接对参数求导就可以啦。
那么首先先对参数b进行求偏导:
我们先对b进行求偏导,然后将其结果带入到L公式当中:
将duib求偏导的结果带入到公式中以后下一步要做什么?对w进行求偏导:
然后我们在将对w求偏导的结果也带入到其中,大家发现一个问题,就是说我求完偏导为啥要带进去呢,之前好像也没有这操作,首先我们明白,这个L函数当中有几个参数,3个(w,b,λ),那么三个参数在一个函数中的话不太好求或者说求不出来,那么怎么办呢,我把w,b通过λ表示出来,然后带入进去,这样一来的话,是不是函数L里边就只剩下一个变量λ,可以进行求解了,那么求解出来λ之后,是不是就可以求解出来w,b。
表达出来
也可以理解成这个对偶问题最终优化就变成了这个样子。