从零开始学凸优化理论与KKT条件

最近看文章,学到stackelberge game的时候,突然发现需要使用convex optimization的方法,之前一直看看就过去了,这次决定,稍微认真一点。花了一个多月时间疯狂补网课,终于学的差不多了

文章目录

  • 1:凸优化理论(一)深入理解仿射集,凸集,锥等定义及相关证明
  • 2:超平面,半空间,多面体,单纯形定义与解析
  • 3:凸函数二阶条件的理解及常见函数解析
  • 4:复合函数的凸性判定&函数扩展须知
  • 5:深入理解共轭函数及相关性质解析
  • 6:深入理解帕累托与多目标优化相关理论
  • 7:深入理解凸优化核心理论:对偶
  • 8:最后:KKT条件的简单解释

1:凸优化理论(一)深入理解仿射集,凸集,锥等定义及相关证明

2:超平面,半空间,多面体,单纯形定义与解析

3:凸函数二阶条件的理解及常见函数解析

4:复合函数的凸性判定&函数扩展须知

5:深入理解共轭函数及相关性质解析

6:深入理解帕累托与多目标优化相关理论

7:深入理解凸优化核心理论:对偶

8:最后:KKT条件的简单解释

凸问题与KKT条件是密切联系的,

  • 对一般的优化问题,如果拉格朗日函数有鞍点,那么该点处原问题与对偶问题都取得最优,此时原问题与对偶问题的对偶间隙为0。
  • 对一般的,可微的优化问题(即所有涉及到的函数都可微,不一定是凸的),如果一个解是P/D问题的最优解(即对偶间隙为0),他必须满足一个性质,即KKT条件(必要条件,该条件成立不一定是最优解,但是最优解必须满足)
  • 如果我们研究的问题是可微的凸优化问题,而且对偶间隙为0,那么KKT条件是最优解的充要条件!

直接考虑一个比较复杂的约束优化形式,一般使用拉格朗日函数+KKT条件求解。注意目标函数是凸函数,定义域是凸集。从零开始学凸优化理论与KKT条件_第1张图片
如果是浅度学习,只是掌握这个tool的话到这里已经可以了,记着(3)(4)三个条件比较特殊,使用时稍微注意。后面主要介绍为什么会有(4)这个互补松弛条件自己用的比较多所以只认真学了为啥有(4) ,我们可以通过对偶函数的性质来理解,也可以通过如下的几何形式来理解

如果我们优化 f ( x ) f(x) f(x) with g ( x ) ≤ 0 g(x)\leq 0 g(x)0,考虑拉格朗日橙子:
F = f ( x ) + λ g ( x ) F=f(x)+\lambda g(x) F=f(x)+λg(x)

此时只有两种情况
(1)可行解在 g ( x ) ≤ 0 g(x)\leq 0 g(x)0,范围内,那么相当于并没有不等式的约束,因为你不约束我们的解依然在这里,此时可以令 λ = 0 \lambda=0 λ=0,去除约束。(左图,蓝线为等高线)
(2)可行解在并不在 g ( x ) ≤ 0 g(x)\leq 0 g(x)0区域内,那么加上约束的话,可行解会落在在边界上,那么此时 g ( x ) = 0 g(x)=0 g(x)=0
从零开始学凸优化理论与KKT条件_第2张图片
也就是说无论是哪种情况,要么 λ = 0 \lambda=0 λ=0,要么 g ( x ) = 0 g(x)=0 g(x)=0,因此会有对所有不等式约束的松弛条件(4): λ g ( x ) = 0 \lambda g(x)=0 λg(x)=0

你可能感兴趣的:(theory)