拉格朗日对偶问题与支持向量机学习笔记(1)
0 前言
这两部分内容在之前学凸优化和数据挖掘课的时候就学过了,奈何当时课上全在摸鱼,导致现在要用的时候啥也不会。于是在各种论坛上看别人的笔记,奈何自己实在过于愚笨,很多地方花了很多时间才理解。为了加深自己的印象以及练习一下刚学的markdown,还是写个专栏记录一下自己的学习成果。(不过我不得不说b站专栏对markdown的支持真的太差了,即使使用了相关插件,很多公式也无法识别;此外,由于b站专栏最多只能插入包括公式在内的100张图片,我不得不把这篇文章拆成两部分才能发出来,真是呃呃了)。
本文参考了“https://blog.csdn.net/weixin_44378835/article/details/110732412?utm_source%20=%20app”这篇博文和其他一些博文,进行了一定的缩减,在部分地方添加了自己的想法和更详细的推导过程。
1 拉格朗日对偶问题
1.1 原问题
给出如下的优化问题:
其中和
均为
的线性组合。我们称这个问题为“原问题”。
在求解原问题的时候,我们会遇到两个不喜欢的东西:①带有约束条件②优化目标不一定是凸函数。因此,我们希望通过转化的方式将原问题变成一个没有约束条件的凸问题,这也是引入拉格朗日乘子法以及构造拉格朗日对偶问题的原因。
1.2 消除约束条件
通过引入拉格朗日乘子,我们构造另一个函数:
,其中
。显然,当
满足原问题的约束时,函数
。因此,我们找到了一个恒小于等于原优化目标的函数,继续考虑使用此函数去逼近原优化目标。
要用一个较小的函数逼近较大的函数,显然应当去极大化它。记。当
满足原问题的约束时,我们取
,则此时
;当
不满足原问题的约束时,我们不妨假设存在某个
,使得
,令
,则此时
。因此,
可以写为如下形式:
显然,和
考虑构造另一个函数。可以证明,
是关于
的凹函数。
实际上,对于任何形如
的函数,若
关于
的阶次为1(给定
,
为关于
的线性函数),则函数
是关于
的凹函数。
相对应的,对于任何形如
的函数,若
关于
的阶次为1,则函数
是关于
的凸函数。
从直观上去理解,假设
,对于每个
,都有一个关于
的线性函数
。对于每一个给定的
,令
,得到的就是所求的
。不难发现,
是关于
的凹的分段线性函数。

构造优化问题,我们称它为原问题的对偶问题。显然,这是一个无约束的、最大化凹函数的问题,它等价于最小化一个无约束的凸函数。
至此,我们从原问题出发,构造了一个无约束的最小化凸函数问题。
1.4 原问题和对偶问题的关系
结论:对偶问题的最优解≤原问题的最优解,
证明过程利用了如下结论:
对于任意函数
,均有
直观理解:“所有最大值里面的最小值”要大于“所有最小值里面的最大值”。
证明:;
记
;
记
;
则有
上述结论就是“弱对偶性”——对于任何上述形式的问题,对偶问题的最优解小于等于原问题的最优解。
1.5 KKT条件
$$
对于一般性优化问题(为一般函数):
KKT是原问题转化为对偶优化问题的必要条件;
原问题准则函数和对偶准则函数的极值点通常不一致。
对于凸优化问题(为凸函数):
满足KKT条件的点,那么它们分别是 原问题准则函数 和 对偶准则函数的极值点并且 strong duality成立(
)
2 支持向量机(SVM)
这部分内容会发在拉格朗日对偶问题与支持向量机学习笔记(2)中