拉格朗日乘子法与KKT条件学习笔记

无约束优化问题

对于无约束优化问题如:
m i n   f ( x ) min\ f(x) min f(x)
    如果问题是 m a x   f ( x ) max\ f(x) max f(x)则可以通过取反转化为求最小值 m i n   − f ( x ) min\ -f(x) min f(x)。对于这类问题,通常需要对问题中的每个变量求偏导,然后令偏导为0,解方程组,找到问题的解即可。

等式约束与拉格朗日乘子法

对于等式约束问题,如:
m i n f ( x ) s . t . h ( x ) = 0 \begin{aligned} &min\quad f(x)\\ &s.t.\quad h(x)=0 \end{aligned} minf(x)s.t.h(x)=0
    对此类问题,无法直接用无约束优化问题的求解方案进行求解,因为求出的解可能并不满足问题的约束。此类问题可以表示如下图:约束问题的极值
    如图,其中不同的蓝色圆圈是指目标函数 f ( x , y ) f(x,y) f(xy) 投影在平面上的不同等值线,黑色曲线是约束条件 h ( x ) = 0 h(x)=0 h(x)=0 的函数图像。所以等值线与函数图像相交的点其实就是所有满足约束的点。虽然所有的交点都满足约束条件,但是从图中可以明显看到,只有等值线与约束函数 相切 时,函数才有极值点,即从此点出发沿着 h ( x ) h(x) h(x) 的图像向左或者向右走, f ( x , y ) f(x,y) f(x,y) 的值不会同时变大和变小。且在相切的地方 h ( x ) h(x) h(x) 的梯度和 f ( x , y ) f(x,y) f(x,y) 的梯度应该是在同一条直线上的。(在切点处两个函数的梯度都与切平面垂直,所以在一条直线上)
    所以满足条件的极值点一定满足: ∇ f ( x , y ) = λ ∇ h ( x , y ) ∇f(x,y)=λ∇h(x,y) f(x,y)=λh(x,y) ( λ = 0 λ=0 λ=0 表示 f ( x , y ) f(x,y) f(x,y) 本身的极值点刚好在切点上),然后和原来的等式方程 h ( x , y ) = 0 h(x,y)=0 h(x,y)=0 联立,然后只要解出这个方程组,就可以得到问题的解析解了。当然也存在解不出来的情况,就需要用罚函数法之类的方法求数值解了。
    为了方便和好记,就把原来的优化问题写成 f ( x , y ) + λ h ( x , y ) f(x,y)+λh(x,y) f(x,y)+λh(x,y) 的形式,然后分别对 λ , x , y λ,x,y λ,x,y 求偏导,并且令偏导为 0 就行了,和之前得到的方程组是一样的。这种方法叫拉格朗日乘数法。
    对于多个等式约束,可以将原问题写成 L ( x , λ ) = f ( x ) + ∑ i = 1 n λ i ∇ h i ( x ) L(x,λ)=f(x)+\begin{matrix} \sum_{i=1}^n \lambda_i \nabla h_i(x)\end{matrix} L(x,λ)=f(x)+i=1nλihi(x)形式,然后对 x , λ x,λ x,λ求偏导,让他们等于0,解方程组,得到最终结果。

不等式约束与KKT条件

若原问题中既有等式约束,又有不等式约束时,如:
m i n f ( x ) s . t . h ( x ) = 0 g ( x ) ≤ 0 \begin{aligned} min\quad &f(x)\\ s.t.\quad &h(x)=0\\ \quad &g(x)≤0 \end{aligned} mins.t.f(x)h(x)=0g(x)0
    ( 对于 ≥ 约束只要取反转换为 ≤ 约束就行了)这类问题可以表示如下图:
不等式约束
    阴影部分表示可行域,相比于等式约束问题中可行域为一条线,不等式约束中的可行域变成了一个区域。对此类问题可表示为: L ( x , λ , μ ) = f ( x ) + ∑ i = 1 n λ i ∇ h i ( x ) + ∑ j = 1 m μ j ∇ g j ( x ) L(x,λ,μ)=f(x)+\begin{matrix} \sum_{i=1}^n λ_i \nabla h_i(x)\end{matrix}+\begin{matrix} \sum_{j=1}^m μ_j \nabla g_j(x)\end{matrix} L(x,λ,μ)=f(x)+i=1nλihi(x)+j=1mμjgj(x)。此时,极值点的取值有两种情况:
不等式约束的两种极值情况
1、可行域里面中的极值点(图左 x ∗ x^* x点)
2、h(x)和等值线相切的极值点(图右 x ∗ x^* x点)
对于第一种情况,因为极值点本身就在可行域内,此时的约束条件不起作用,也就是说 μ = 0 ,   g ( x ) ≤ 0 μ=0,\ g(x)≤0 μ=0, g(x)0,所以有:
∇ f ( x ) + λ ∇ h ( x ) = 0 h ( x ) = 0 g ( x ) ≤ 0 \nabla f(x)+λ\nabla h(x)=0\\ h(x)=0\\ g(x)≤0 f(x)+λh(x)=0h(x)=0g(x)0
对第二种情况,不等式约束就变成等式约束了,此时   μ ≥ 0 ,   g ( x ) = 0 \ μ≥0, \ g(x)=0  μ0, g(x)=0,有:
∇ f ( x ) + λ ∇ h ( x ) + μ ∇ g ( x ) = 0 h ( x ) = 0 g ( x ) = 0 μ ≥ 0 \nabla f(x)+λ\nabla h(x)+μ\nabla g(x)=0\\ h(x)=0\\ g(x)=0\\ μ≥0 f(x)+λh(x)+μg(x)=0h(x)=0g(x)=0μ0
    综合来看,第一种情况中有 μ ≥ 0 μ≥0 μ0 g ( x ) = 0 g(x)=0 g(x)=0, 第二种情况 μ = 0 μ=0 μ=0 g ( x ) ≤ 0 g(x)≤0 g(x)0。将两种情况综合起来,可以写成: μ g ( x ) = 0 ,   μ ≥ 0 ,   g ( x ) ≤ 0 μg(x)=0 , \ μ≥0 ,\ g(x)≤0 μg(x)=0, μ0, g(x)0。此时可得:
∇ f ( x ) + λ ∇ h ( x ) + μ ∇ g ( x ) = 0 h ( x ) = 0 μ g ( x ) = 0 μ ≥ 0 g ( x ) ≤ 0 \nabla f(x)+λ\nabla h(x)+μ\nabla g(x)=0\\ h(x)=0\\ μg(x)=0\\ μ≥0\\ g(x)≤0 f(x)+λh(x)+μg(x)=0h(x)=0μg(x)=0μ0g(x)0
    这个就是 KKT 条件。它的含义是这个优化问题的极值点一定满足这组方程组。(不是极值点也可能会满足,但是不会存在某个极值点不满足的情况)它也是原来的优化问题取得极值的必要条件,解出来了极值点之后还是要代入验证的。但是因为约束比较多,情况比较复杂,KKT 条件并不是对于任何情况都是满足的。要满足 KKT 条件需要有一些规范性条件(Regularity conditions),就是要求约束条件的质量不能太差,常见的比如:
1、LCQ:如果 h(x) 和 g(x) 都是形如 Ax+b 的仿射函数,那么极值一定满足 KKT 条件。
2、LICQ:起作用的 g(x) 函数(即 g(x) 相当于等式约束的情况)和 h(x) 函数在极值点处的梯度要线性无关,那么极值一定满足 KKT 条件。
3、Slater 条件:如果优化问题是个凸优化问题,且至少存在一个点满足 h(x)=0 和 g(x)=0,极值一定满足 KKT 条件。并且满足强对偶性质

参考链接

http://www.cnblogs.com/xinchen1111/p/8804858.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值