拉格朗日对偶(Lagrange duality)
对于凸优化问题来说,无约束的优化一般可以使用一阶导数为零求解。而对于有约束条件的凸优化来说,拉格朗日对偶理论是对凸的最优解的研究。
假设
f(x),ci(x),hj(x)
是定义在
Rn
上的连续可微函数(),考虑约束最优化问题:
minx∈Rns.t.f(x)ci(x)≤0,i=1,2,…,khj(x)=0,j=1,2,…,k(1)(2)(3)
拉格朗日乘子
引入一个人工构造的拉格朗日函数,广义拉格朗日函数(generalized Lagrange function):
L(x,α,β)=f(x)+∑i=0kαici(x)+∑j=1lβjhj(x)
x=(x(1),x(2),…,x(n))∈Rn,αi,βj
是拉格朗日乘子,
特别要求
αi≥0
.
总结:
通过拉格朗日的办法重新定义一个无约束问题这个无约束问题等价于原来的约束优化问题,从而将约束问题无约束化。
原问题与对偶问题
原问题(The primal problem)
minx[maxα,β:αi≥0L(x,α,β)]callthisθP(x)=minxθP(x)
在上述方程中,函数
θP(x)
称为原目标,右端无约束极小化问题就原问题。假设原问题的最优值为:
p∗=minxθP(x)
对偶问题(The dual problem)
把上面式子最大化和最小化切换一下,就可以得到:
maxα,β:αi≥0[minxL(x,α,β)]call this θD(α,β)=maxα,β:αi≥0θD(α,β)
在上述方程中,函数
θD(x)
称为对偶目标,右边就是有约束极大化问题即对偶问题。假设对偶问题的最优值为:
d∗=maxα,β:αi≥0θD(α,β)
原始问题与对偶问题的关系
若原始问题与对偶问题都有最优值,则:
d∗=maxα,β:αi≥0minxL(x,α,β)≤minxmaxα,β:αi≥0L(x,α,β)=p∗(4)(5)
从上面能得出原始问题的最优值不小于对偶问题的最优值。但是我们要通过对偶问题来求解原始问题,就必须使得原始问题的最优值与对偶问题的最优值相等。上面简单来说就是:
设
x∗α∗,β∗
分别是原始问题和对偶问题的可行解,如果
d∗=p∗
,那么
x∗
和
α∗,β∗
都是原始问题和对偶问题的最优解。
总结:
显然原问题与对偶问题是不等价的,我们需要让他满足一些条件来达到等价。而满足
d∗=p∗
,即需要KKT条件。
KKT条件
对于原始问题和对偶问题,假设函数
f(x)
和
ci(x)
是凸函数,
hi(x)
是仿射函数(即由一阶多项式构成的函数,
f(x)=Ax+b
,
A
是矩阵,
x
,
b
是向量;并且假设不等式约束
ci(x)
是严格可行的,即存在
x
,对所有
i
有
ci(x)<0
,则
x∗
和
α∗,β∗
分别是原始问题和对偶问题的最优解的充分必要条件是
x∗
和
α∗,β∗
满足下面的 Karush-Kuhn-Tucker(KKT) 条件:
1.(Lagrangian stationarity) ∇xL(x∗,α∗,β∗)=02.(Complementary slackness) α∗ici(x)=0,i=1,2,…,k and hj(x∗)=0,j=1,2,…,l3.(Primal feasibility) ci(x)≤0,i=1,2,…,k4.(Dual feasibility) α∗i≥0,i=1,2,…,k(6)(7)(8)(9)
关于KKT 条件的理解:第一个条件是由解析函数的知识,对于各个变量的偏导数为0。特别注意当
α∗i>0
时,由KKT松弛互补条件可知:
ci(x∗)=0
。(推导SVM中使用)
总结:
拉格朗日乘子法就是把原始的约束问题通过拉格朗日函数转化为无约束问题,如果原始问题求解棘手,在满足KKT的条件下用求解对偶问题来代替求解原始问题,使得问题求解更加容易。
从等式优化——>不等式优化——>KKT条件理解拉格朗日乘子法,参考链接如下:
约束优化方法之拉格朗日乘子法与KKT条件
SVM(Support Vector Machine)
支持向量机即 Support Vector Machine,简称 SVM 。其目的就是寻找到一个超平面使样本分成两类,并且间隔(如何推导出间隔点我)最大。
线性可分SVM的推导
我们求得的w就代表着我们需要寻找的超平面的系数。用数学语言表达就是一个凸二次规划问题(convex quadratic programming):
max1∥w∥,s.t.,yi(wTxi+b)≥1,i=1,…,n(10)(11)
通过求解这个问题,我们就可以找到一个间隔最大的分类器 ,如下图所示,中间的红色线条是最优超平面 :
这个问题等价于(为了方便求解,加上平方,还有一个系数,显然这两个问题是等价的,因为我们关心的并不是最优情况下目标函数的具体数值):
min12∥w∥2s.t.,yi(wTxi+b)≥1,i=1,…,n(12)(13)
提炼出线性可分情况下 SVM 的学习算法:
输入:线性可分数据集
{(xi,yi)}Ni=1
1. 构造约束最优化问题:
minw,b12||w||2s.t. yi(w⋅xi+b)≥1, i=1,2,...,N
2. 求解得到
w∗,b∗
,分类超平面即为
w∗⋅x+b∗=0
3. 对于新的观测数据
x
,根据
f(x)=sign(w∗⋅x+b∗)f(x)=sign(w∗⋅x+b∗)
判断其类别
y
即可.
现在回到之前的优化目标,也即原始问题
min12∥w∥2s.t.,yi(wTxi+b)≥1,i=1,…,n(14)(15)
这里就可以使用拉格朗日乘子法了:
L(w,b,α)=12∥w∥2−∑i=1nαi(yi(wTxi+b)−1)
然后每对满足原始问题与对偶问题的解都满足 KKT 条件,即:
∇wL(w∗,b∗,a∗)=w∗−∑i=1Na∗iyixi=0∇bL(w∗,b∗,a∗)=−∑i=1Na∗iyi=0a∗i(yi(w∗⋅x+b∗)−1)=0yi(w∗⋅x+b∗)−1≥0ai≥0, i=1,2,...,N
这里至少存在一个
a∗j>0
,使得
yj(w⋅xj+b)−1=0
,这便是支持向量,然后根据 KKT 条件可得:
∂L(w,b,a)∂w∂L(w,b,a)∂b=0⇒w−∑i=1Naiyixi=0=0⇒−∑i=1Naiyi=0w∗b∗=∑i=1Na∗iyixi=yj−∑i=1Na∗iyi(xi⋅xj)
将以上结果带入
L(w,b,a)
会有:
现在的待优化函数 变为:
maxai≥0 −12∑i=1N∑j=1N2∑i=1N∑j=1Naiajyiyj(xi⋅xj)+∑i=1N