前言
在SVM中有一个求极小值的问题转换过程,转换为一个对偶问题,但是我不太清楚这个问题为什么可以转换,而且还不太清楚为什么这么转换?不太明确转换后有什么优点,写个文章来了解这些内容。
原始问题转换
min21∣∣w∣∣2s.t.yi(xi+b)>=1i=1,2...,n
拉格朗日乘子之后的公式为:
F(w,b,a)=21∣∣w∣∣2+i=1∑nai[1−yi(wxi+b)]s.t.ai>=0
优化问题为:
minF(w,b,a)=21∣∣w∣∣2+i=1∑nai[1−yi(wxi+b)]
- 有一个疑惑,为什么是1−yi(wxi+b)<=0?
我们假设有一个最优解w∗,则得到最小值f(w∗)=21∣∣w∗∣∣2,则会发现一些:
minF(w∗,b,a)<=f(w∗)
最优解w∗,使得1−yi(wx∗+b)<=0,则∑i=1nai[1−yi(w∗xi+b)]<=0,这里ai>=0,所以上述公式必然成立,但一般我们会把问题假设为如下所示:
ai>0maxF(w,b,a)=21∣∣w∣∣2+i=1∑nai[1−yi(wxi+b)]
因为有这种考虑:
- 满足约束条件1−yi(wxi+b)<=0,要想使得ai>0maxF(w,b,a)=21∣∣w∣∣2,则ai=0
- 不满足约束条件,1−yi(wxi+b)>0,则ai>0maxF(w,b,a)可以是无穷大,也就无解了
我比较奇怪就是为什么要aimax,而不是aimin?我觉得如果是求最小值,则有:
- 满足约束条件1−yi(wxi+b)<=0,要想使得ai>0minF(w,b,a)→−∞,则ai→+∞,无解
- 不满足约束条件,1−yi(wxi+b)>0,则ai>0minF(w,b,a)=21∣∣w∣∣2,则ai=0
似乎aimax、aimin效果是一样的,这只是我个人的理解,没有数学理论的支持,感兴趣的朋友可以自己去了解一下背后的数学知识。不过从另一个角度来分析:逼近。可能会有一些结果,从上面的一个公式来继续分析:
minF(w∗,b,a)<=f(w∗)
该公式说明存在满足约束条件的w∗,那这样F(w∗,b,a)只能去逼近这个f(w∗),所以是求F(w∗,b,a)的最大值,也就是:
wiminai>0maxF(w,b,a)
先分析maxai>0F(w,b,a),得到的结果是逼近21∣∣w∣∣2,然后再通过minwi21∣∣w∣∣2从而达到目的。我们最终的公式为:
wiminai>0maxF(w,b,a)=21∣∣w∣∣2+i=1∑nai[1−yi(wxi+b)]
max可以使得我们得到最接近21∣∣w∣∣2的F(w,b,a),然后再求min21∣∣w∣∣2,很多博客里称xminai>0maxF(w,b,a)为原始问题,接下来就是求解该原始问题的对偶问题。
对偶问题
于是我们可以转换问题为min−max问题:
wminai>0max21∣∣w∣∣2+i=1∑nai[1−yi(wxi+b)]
对偶问题就是将min与max位置互换,为什么可以互换?确实是可以互换的,但是不太清楚原理,先直接放定理:若原始问题和对偶问题都有最优值,则对偶问题最优值d∗小于或等于原始问题最优值p∗。公式表示就是如下:
d∗=wminaimaxF(w,b,ai)<=aImaxwminF(w,b,ai)=p∗
其实我是非常想学习这个对偶问题的转换,其相关知识涉及最优化理论、运筹学等数学知识,需要时间去研读。不过就这个问题继续转换,就是得到原问题的对偶问题,这中间的转换主要是:
-
minwF(w,b,ai) 对w、b求偏导,偏导等于零,求极值,得到:
w=i∑aiyixii∑ay=0
-
将w、b结果代入到原公式中得到:
maxai>0−21i∑j∑aiajyiyj(xi∗xj)+i∑ais.t.i∑aiyi=0ai>=0
在对这个函数求解,求解方法有SMO方法,也可以通过求极值方法,假设我们得到了a的值,然后再通过
w=i∑aiyixi
求解b 稍微复杂些,根据y=wx+b求的:
b=yj−i∑aiyi(xi∗xj)
这里yj是支持向量的点,并不是所有样本数据集,是aj>0的点,而且也不是只有一个,应该有多个,最后求解平均值作为b的值。
转换为对偶问题的优点
- 对偶问题往往更易于求解
- 自然引入核函数,推广到非线性分类问题的求解
总结
对偶问题还是比较难理解,本文没有去分析其原理,而且本文是基于一个min问题来看到对偶问题,如果是一个max问题,它的对偶问题如何,其实也是一样的,思想是换成了求上限,对上限求min,逼近真实值,大家可以看下参考博客的知乎,Cyber的回答,这篇文章会继续完善。
参考博客
深入理解SVM之对偶问题
如何通俗地讲解对偶问题?尤其是拉格朗日对偶lagrangian duality?