ref:https://blog.csdn.net/lijil168/article/details/69395023
https://blog.csdn.net/johnnyconstantine/article/details/46335763
在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法。在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。
我们这里提到的最优化问题通常是指对于给定的某一函数,求其在指定作用域上的全局最小值(因为最小值与最大值可以很容易转化,即最大值问题可以转化成最小值问题)。提到KKT条件一般会附带的提一下拉格朗日乘子。对学过高等数学的人来说比较拉格朗日乘子应该会有些印象。二者均是求解最优化问题的方法,不同之处在于应用的情形不同。
一般情况下,最优化问题会碰到一下三种情况:
(1)无约束条件
这是最简单的情况,解决方法通常是函数对变量求导,令求导函数等于0的点可能是极值点。将结果带回原函数进行验证即可。
(2)等式约束条件
设目标函数为f(x),约束条件为h_k(x),形如:
s.t. 表示subject to ,“受限于”的意思,l表示有l个约束条件。
则解决方法是消元法或者拉格朗日法。消元法比较简单不在赘述,这里主要讲拉格朗日法,因为后面提到的KKT条件是对拉格朗日乘子法的一种泛化。
例如给定椭球:
求这个椭球的内接长方体的最大体积。这个问题实际上就是条件极值问题,即在条件 下,求的最大值。
当然这个问题实际可以先根据条件消去 z (消元法),然后带入转化为无条件极值问题来处理。但是有时候这样做很困难,甚至是做不到的,这时候就需要用拉格朗日乘数法了。
首先定义拉格朗日函数F(x):
( 其中λk是各个约束条件的待定系数。)
然后解变量的偏导方程:
......,
如果有l个约束条件,就应该有l+1个方程。求出的方程组的解就可能是最优化值(高等数学中提到的极值),将结果带回原方程验证就可得到解。
回到上面的题目,通过拉格朗日乘数法将问题转化为
对求偏导得到
联立前面三个方程得到和,带入第四个方程解之
带入解得最大体积为:
(3)不等式约束条件
设目标函数f(x),不等式约束为g(x),有的教程还会添加上等式约束条件h(x)。此时的约束优化问题描述如下:
则我们定义不等式约束下的拉格朗日函数L,则L表达式为:
其中f(x)是原目标函数,hj(x)是第j个等式约束条件,λj是对应的约束系数,gk是不等式约束,uk是对应的约束系数。
常用的方法是KKT条件,同样地,把所有的不等式约束、等式约束和目标函数全部写为一个式子L(a, b, x)= f(x) + a*g(x)+b*h(x),
KKT条件是说最优值必须满足以下条件:
1)L(a, b, x)对x求导为零;
2)h(x) =0;
3)a*g(x) = 0;
求取这些等式之后就能得到候选最优值。其中第三个式子非常有趣,因为g(x)<=0,如果要满足这个等式,必须a=0或者g(x)=0. 这是SVM的很多重要性质的来源,如支持向量的概念。
接下来主要介绍KKT条件,推导及应用。详细推导过程如下:
从几何角度看拉格朗日乘子法的物理意义:
该方法适用于约束条件下求极值的问题。对于没有约束的极值问题,显然,如果某一点是极值的必要条件是该点的各方向的偏导数皆为零,也就是说,如果偏导数不全为零,那么就不可能是极值。
例如,一个三元函数w(x,y,z), 它是x,y,z的函数,且在一个约束条件下求它的极值。我们假设图中的曲面就是约束方程g(x,y,z)=0的图像,即约束面。之前没有约束面时,w取极值的必要条件是各个方向偏导数为零,而对于可微函数各个方向偏导为零的充分必要条件是沿x,y,z 方向的偏导为零。现在有了约束面,我们不再需要这么苛刻的必要条件,因为有了约束面,x,y,z在一定程度上被限制了,只能在约束面内移动,因此只需要沿约束面内的各个方向运动时的偏导数(变化化率)为零就可以了,此时自由度由三维下降到两维。满足在约束面内的各个方向偏导为零,也就是说,w取极值的必要条件减弱为待求函数的方向导数(梯度)垂直于约束面,从数学上看,也就是方向导数和约束面的法线方向同向(一个向量等于另一个向量的常数倍),而不需要梯度为零,因为和梯度垂直的方向偏导数一定为零,这样,沿约束面各个方向运动时w的偏导数也就为零了。这便是拉格朗日乘子法求极值的几何意义。
个人总结:
想象一下我们爬山(优化函数)找最高点(求最大值),要想最快的上,要找最陡的方向,陡峭的程度以坡度(方向导数)度量,最陡的方向即为最大坡度(梯度)决定的方向,理想情况下,当无法再上升,坡度(梯度)变成0时,找到最高点(求得最大值)。但是,当我们必须绕圆弧行盘山路爬行时,盘山路(约束条件)约束了我们的路径及方向,我们必须沿着盘山路最陡的方向(梯度,注意此时退化为一维,只有一个方向,为道路切向),当道路不再上升(及切向为0),即找到最高点。
再想想一下我们是海水,从山底向上移动(集体作战),领袖沿着盘山路行进,每一步我们可以找到同海拔的海岸线(等高线),海岸线与盘山路想交,我们可以继续向上移动,直到海岸线与盘山路向切,此时,找到最高海拔,海岸线(等高线)同时与约束方程确定的边界相切。
在极值点,优化函数的等高线、优化函数与约束方程的交线、约束方程的投影线(类似约束曲面的等高线,约束曲线)相切于一点。等高线与约束曲线法向相同(不考虑正负),而优化函数的梯度数值等于其等高线的法向数值,约束方程的梯度数值等于约束曲线的法向数值。故∆f=λ∆g,λ!=0
极值点的2个条件:
1、极值点在优化函数及约束方程上;
2、在极值点,优化函数的等高线、优化函数与约束方程交线、约束曲线相切,优化函数与约束方程交线的梯度(导数)为0
可利用这2个条件求解:
一、根据1将约束方程带入优化函数消元、降维变成无约束低维问题求解,根据2求梯度为0
二、根据2构造似然函数L(X,λ),使在特殊条件下满足1和2,对L(X,λ)解特殊条件。
对偶理论入门
ref:https://blog.csdn.net/johnnyconstantine/article/details/46433119
线性规划(Linear Programming,简称LP)是运筹学中研究较早、发展较快、应用广泛、方法较为成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法。研究线性约束条件下线性目标函数的极值问题的数学理论和方法。线性规划中普遍存在配对现象,即对每一个线性规划问题,都存在另一个与它有密切关系的线性规划问题,其中之一称为原问题,而另一个称它的对偶问题。这篇博客提到的对偶理论(Duality theory)就是研究线性规划中原始问题与对偶问题之间关系的理论。
对偶理论自1947年提出以来,已经有了很大发展,现在关于线性规划的一般著作都包含这部分内容,它已成为线性规划的必不可少的重要基础理论之一。
1.1 对偶问题的表达
线性规划中的对偶可以概括为三种形式。
(1)对称形式的对偶
设原问题为:
min cx
s.t. Ax >= b,
x>= 0
则对偶问题为:
max wb
s.t. wA <= 0,
w>=0
其中A=(p1,....,pn)是m*n矩阵,b=(b1,......,bm)T是m维列向量,c=(c1,.......,cn)是n维行向量. x =(x1,.......,x2)T是由原问题的变量组成的n维列向量,w=(w1,......,wm)是由对偶问题的变量组成的m维行向量。
在原问题中,目标函数是c与x的内积,Ax>=b包含m个不等式约束,其中每个约束条件记作
Aix>=bi.
Ai是A的第i行,变量xj有非负限制。
在对偶问题中,目标函数是b与w的内积,wA<=c包含n个不等式约束,每个约束条件记作
wpi <= cj,
对偶变量wi也有非负限制。
根据对称对偶的定义,原问题中约束条件Aix>=bi的个数恰好等于对偶变量的个数,原问题中变量的个数,恰好等于对偶问题中约束条件wA<=c的个数。
按照上述定义,很容易写出一个线性规划问题的对偶问题。
例如:设原问题是:
,
则其对偶问题按照上述的定义可以写成
(2)非对称形式的对偶
在上述对称形式的对偶中我们考虑的约束条件为不等式约束条件,这里我们对等式约束条件下的对偶问题称为非对称形式的对偶。但是对偶问题的变换方式和上述类似,只需稍微的变换一下,如下所示。设原问题为:
min cx
s.t. Ax = b,
x>=0
这里稍加变换就可以写成对称形式的等价如:
min cx
s.t. Ax >= b,
-Ax >= -b,
x>= 0
按照对称形式的策略,此时的对偶问题为:
max ub-vb
s.t. uA- vA <=c,
u,v>=0.
令w=u-v ,显然w没有非负限制,于是得到
max wb
s.t. wA<=c.
这里也给出个例子如下:
,
它的对偶问题是:
(3)一般情形
结合等式约束和不等式约束条件的问题就是第三种一般情形。
设原问题为
min cx
s.t. A1x >=b,
A2x = b2,
A3x <= b3,
x>=0,
其中,A1是m1*n矩阵,A2是m2*n矩阵,A3是m3*n矩阵,b1,b2和b3分别是m1维,m2维和m3维列向量,c是n维行向量,x是n维列向量。
对上述问题进行变换,引入松弛变量得:
min cx
s.t. A1x – xs =b1,
A2x = b2,
A3x + xt = b3,
x, xs, xt >= 0,
其中,xs是有m1个松弛变量组成的m1维列向量,xt是有m3个松弛变量组成的m3维列向量,上述问题即
min cx +0*xs + 0*xt
x,xs,xt>=0
根据非对称形式对偶变换方法得到:
即
其中w1,w2和w3分别是由变量组成的m1维,m2维和m3维行向量。
原问题中的约束A1x>=b1所对应的对偶变量w1有非负限制,A2x=b2所对应的对偶变量w2无正负限制,A3x<=b3所对应的对偶变量w3有非正限制。
1.2 对偶问题的基本定理
定理1.1(弱对偶定理)
设X(0)是原问题max z=CX,AX≤b,X≥0的可行解
Y(0)是其对偶问题minw=Yb,YA≥C,Y≥0的可行解
则 CX(0)≤Y(0)b。
定理1.2(最优性定理)
设X(0)是原问题max z=CX,AX≤b,X≥0的可行解,
Y(0)是其对偶问题min w=Yb,YA≥C,Y≥0的可行,
若CX(0)=Y(0)b,则X(0)、Y(0)分别是它们的最优解。
定理1.3(对偶定理)
若原问题max z=CX,AX≤b,X≥0有最优解,
则其对偶问题min w=Yb,YA≥C,Y≥0 一定有最优解,且二者的目标函数值相等。
定理1.4(互补松弛定理)
原问题max z=CX,AX≤b,X≥0及其对偶问题minw=Yb,YA≥C,Y≥0 的可行解X(0)、Y(0)是最优解的充要条件是
Y(0)XS = 0 ;
YSX(0)= 0
其中, XS、YS分别是原问题松弛变量向量和对偶问题剩余变量向量。