多分类svm对偶化核化法代码_机器学习技法2-(对偶SVM)

一.对偶问题的动机

非线性SVM的思路:

非线性SVM是最大间隔和特征转换的结合体,通过最大间隔得到低的VC维,从而降低模型复杂度,通过特征转换

equation?tex=Z%3D%5CPhi%28x_%7Bn%7D%29 替换原来的特征空间,得到的特征空间为
equation?tex=%5Ctilde%7Bd%7D ,下图是采用QP计算工具计算的流程,共有
equation?tex=%5Ctilde%7Bd%7D%2B1 个变量和N个线性限制条件,当
equation?tex=%5Ctilde%7Bd%7D 越大,这个QP问题就越难计算。

b2c13c1c60e7ea93467adf00c2e3c444.png

对于

equation?tex=%5Ctilde%7Bd%7D 非常大,甚至是无穷大,也就是无穷维度的特征空间,这是QP问题很难解,那么该怎么办?解决的办法是让SVM的求解与
equation?tex=%5Ctilde%7Bd%7D没有关系 。

我们的目标是让求解SVM的过程与

equation?tex=%5Ctilde%7Bd%7D无关。

efdbadca72d5d7e7fa15343a3a583faa.png

上述中的‘Equivalent’ SVM实际上是原始SVM的对偶问题(dual problem ),该对偶问题的求解与

equation?tex=%5Ctilde%7Bd%7D无关,只与样本个数N有关。

二.SVM的对偶问题

解决的方法思想——拉格朗日乘子法

在推导正则化的时候,我们也引入了该方法,该方法针对有限制条件的最优化问题,通过该方法可以把限制条件转入目标函数中。

626d494fe1c6e0612fea48c1bc513212.png

在正则化的推导的过程中,我们的拉格朗日乘子

equation?tex=%5Clambda是已知的,是由我们定的。在SVM的对偶问题中,这些拉格朗日乘子
equation?tex=%5Clambda%5E%7B%27%7D 是未知的,是需要我们求解的参数,个数为N(对应限制条件的个数)。

在SVM的文献中,拉格朗日乘子一般用

equation?tex=%5Calpha 表示,对线性SVM列拉格朗日函数则有:

e61d5c1d42961da9f087e1419bafafc0.png

equation?tex=%5Calpha%5Cgeq0 ,现在已经将限制条件加到目标函数中了,那么限制条件怎么实现呢?将限制条件隐藏在最大值函数中,推导:

0e6e8dac48b579dd0b726dc9e8a3b910.png

对于一个满足定义域

equation?tex=%5Calpha_%7Bn%7D%5Cgeq0 的固定的
equation?tex=%5Calpha%5E%7B%27%7D 有:

5612da1b7fef58f35f3e23a8bac3f604.png

解释:函数L的最大值,即使做了最小化也是大于或等于该函数的最小值的。

对满足定义域

equation?tex=%5Calpha_%7Bn%7D%5Cgeq0 的任意一个固定的
equation?tex=%5Calpha%5E%7B%27%7D都满足上式,则有:

cca99b28150c700fe50ce10887f0d02f.png

这称为原来问题的对偶问题,由于采用了拉格朗日乘数法,因此称为拉格朗日对偶问题,通过这个对偶问题可以求出原来问题的下限

如果是

equation?tex=%5Cgeq 则为弱对偶问题,如果是
equation?tex=%3D 则为强对偶问题。

对于满足强对偶问题的拉格朗日对偶问题,当满足下面条件时候可用QP计算:

  1. 凸函数
  2. 通过特征变换为高维空间是线性可分
  3. 条件是线性条件

因此这是一个强对偶,故优化目标为:

013fadc005875ee2c767e937cfe06176.png

现在对内部min做优化,则需要对b和w求导,现先对b求导,则有:

478ac8e658d1acb78d40f924b379139f.png

因此可用将该条件作为上述优化目标的条件,同时也消除了b:

命名下式子为(H)

73d77d516e2f9286df2d523006257620.png

然后对w求导(仍然在对min做优化):

238a35f17a3b1ebff1a03449e2eafd76.png

将其代入(H)得到:

307d882b70ae3fdc98763c58ec00f62d.png

由于w和b被函

equation?tex=X_%7Bn%7D
equation?tex=Z_%7Bn%7D 替换了,因此可用把min符号去掉。

最后给出求解上述优化问题需要满足的必要条件,也就是KKT条件:

249aefc4813512000738460f051ba736.png

三.解对偶问题

经过上节课的推导,最终可得到对偶SVM的标准形式:

ac1a2455424e5d6bd8f19df6c712b500.png

这时可以采用QP求解了,因为求解的变量个数只与N相关了。

00c975d7b8f33e4c9be3a3003b818b4d.png

但是Q矩阵会很大,这导致该QP问题难解,因为当有N=30000个样本时,Q的维度为30000×30000,非常耗费存储导致计算非常慢。

因此在在求解对偶SVM时,需要做特殊的解法:

  • 不存储Q
  • 采用特殊的限制条件

得到的最优化结果为(b,W)。

ce64c74126725081fb7a4fec1ebf336b.png

可以容易的计算出w。

b的计算,假设

equation?tex=%5Calpha_%7Bn%7D+ 大于0,那么
equation?tex=b+%3D+y_%7Bn%7D-w%5E%7B%5Ctop%7Dz_%7Bn%7D ,可以发现该点在最大间隔的边界上,也就是支撑向量。

四.对偶SVM背后的信息

在支持向量机中,有两种样本点,把在最大间隔边界上的点称为边界点support vectors候选点,也称为,在边界外的点对于分析最大间隔没有用。在边界上的点,如果

equation?tex=%5Calpha_%7Bn%7D+ 大于0,那么该点为support vectors,如果
equation?tex=%5Calpha_%7Bn%7D+ ,那么该点只是在边界上,但不是support vectors。

通过一个练习理解这里的定义:

a9361569eaebfc5fcd55eaf416d0aaff.png

在解支持向量机的对偶问题的时候,只需要support vectors,也就是说学得最大间隔分离面只需要通过找出对偶问题的support vectors。

57882f1bb7d7ceac29df8f0c2bf38249.png

在SVM中,w是通过求解对偶问题得到的,在PLA中是通过纠错得到w。

12b69428a117da4d9b45316d92ef8121.png

可以看出SVM和PLA的w都有

equation?tex=y_%7Bn%7Dz_%7Bn%7D 的线性组合,这说明了w是被样本点求出来的,其中SVM由support vectors求出的,而PLA的w是由发生错误的样本点求出来的。

线性SVM与对偶SVM的比较:

870b7289b07985a89079376dbd426179.png

在线性SVM中,求解出最佳的b和w与所在的特征空间的维度数量有关,适合于特征空间维度低的情况下;在对偶SVM中,求解出的b和w与样本集的规模N有关,适合于N不大的情况下,在对偶SVM中,引入了特征转换可以对非线性数据集进行分类,求解的最佳b和w只与support vectors有关。

引入SVM的对偶问题是为了让SVM能做非线性分类,我们希望SVM能对很复杂的非线性问题都能够实现分类,因此在特征转换的时候特征空间可能会很大,一种极端的情况是 特征空间维度

equation?tex=%5Ctilde%7Bd%7D 为无穷大,但是这时计算机无法计算,因此引入了对偶问题来使得求解过程与
equation?tex=%5Ctilde%7Bd%7D 无关,但是在上述的对偶问题中,我们得到的b和w的计算虽然表面上与
equation?tex=%5Ctilde%7Bd%7D 无关,本质上却仍然与
equation?tex=%5Ctilde%7Bd%7D 有关,不过是隐藏起来了。

bce942e87364f69a5ff3080c2d3b0087.png

那么该怎么完全避免计算

equation?tex=%5Ctilde%7Bd%7D 呢?(下节课)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值