背景 html
上一篇文章总结了linear hard SVM,解法很直观,直接从SVM的定义出发,通过等价变换,转成QP问题求解。这一讲,从另外一个角度描述hard SVM的解法,不那么直观,可是能够避免feature转换时的数据计算,这样就能够利用一些很高纬度(甚至是无限维度)的feature转换,获得一些更精细的解。 函数
拉格朗日乘子式 优化
首先,回顾一下SVM问题的定义,以下: spa
线性约束很烦,不方便优化,是否有一种方法能够将线性约束放到优化问题自己,这样就能够无拘无束的优化,而不用考虑线性约束了。拉格朗日大神提供了一种方法,能够达到这个目的,称之为拉格朗日乘子式(更通用的方法参考文章"简易解说拉格朗日对偶"),形式以下, 3d
这个公式是否是很奇怪,无故的多处了N个变量,可是再看下面的变化,就知道这个拉格朗日乘子式的厉害了。 htm
什么,SVM问题等于右边那个min max?没错,虽然初看感受不科学,可是仔细分析,的确如此。首先,因为,令f(w,b) = , blog
当f(w,b) > 0,在w,b固定的状况下,,max会将放大到; 图片
当f(w,b)0,那么,那么。 get
因此,综合两种状况,SVM问题与min max变换公式等价。是否是很奇妙,不得不佩服拉格朗日大神。 it
对偶变换
上面的问题中min max的形式不方便求解,不过能够经过一番变化,导出max min的形式,这样就能够从内到外,先计算里面的min,而后计算外面的max。这种变化叫对偶变化。
首先选任意一个固定的,而且,那么有
两边经过w,b取min,等式仍然成立,即
有多重选择,可是上面的不等式一致成立,因此在众多的选择一个最大,上面的等式变形为,
这样,min max就和max min创建了必定的联系,可是因为是"",称之为弱对偶(week duality)。""强对偶(strong duality)如何才能成立呢?须要知足下面的条件,
太桥了,SVM问题彻底符合上述约束,因此是对偶,这样能够经过解右边max min的问题来获得最终解!
问题化简
通过上面的对偶变化,下面来一步一步的简化咱们的原始问题,
首先对b求偏导数,而且为0,有以下结果
带入这个结果到上面的公司,化简
接下啦,对w求偏导数,
因此,向量w为
将w带入,而且去掉min,获得以下
执行到这里,如今目标函数只与有关,形式知足QP,能够轻易获得,也就是获得w。可是在计算过程当中,须要计算一个中间矩阵Q,维度为N*N,这个是主要计算开销。上一讲无需计算这个Q,由于Q的形式十分简单。
问题来了,如何求解b,上面的目标函数中,在以前的简化过程当中消去了b,已经与b无关。
计算b
如今只剩下最后一个问题,如何计算b? 在以前的简化过程当中消去了b,上面的QP解与无关。
KKT条件帮助咱们解决这个问题。若是原始问题和对偶问题都有最优解,且解相同,那么会知足KKT条件。这也是一个充分必要条件,其中很重要的一点是complementary slackness(互补松弛性),该条件有下面等式成立,
因为(对偶条件),且(原始条件),那么二者有一个不为0时,另一个必然为0。因此,只要找到一个,就能够利用这个性质计算出b,计算方法以下:
两边乘以,
理论来讲,只须要一个点就能够,可是实际上因为计算有偏差,可能会计算全部的b,而后求平均。而且这些能够计算出b的点,就是支持向量,由于他们知足了原始问题中支撑向量的定义。可是,并非全部的支撑向量,都有对应的。通常的,咱们只用的向量称为支撑向量,而那些知足支撑向量定义的向量称之为候选支撑向量,有以下关系
而且,为了简化计算,在计算w的时候,的计算都可以省去,以下
w的哲学
经过上面的计算,其实最后w是()的线性组合。一样的,PLA中w也是()的线性组合。只是SVM利用支撑向量求解这个线性组合,PLA使用错误的向量。同理,逻辑回归,线性回归也有相似规律,称这种现象为"w represented by data"。
总结
本节使用对偶问题,从另一个侧面求解了SVM,而且数据学推导相对复杂,计算量也增长了许多,由于须要求解一个N*N维度的矩阵Q。可是,为何要作这些事情呢,hard linear SVM要简单许多复?其实换成对偶问题是为了利用kernel作铺垫,改kernel能够将维度转化的计算省略,从而能够计算很复杂的转化,这一点下一节讨论。
PS:划线部分段落是因为包含公式,没法正常显示,因此采用图片方式在下方显示。