拉格朗日函数对偶问题、KKT条件

一、概念介绍

KKT最优化条件是Karush(1939)以及Kuhn和Tucker(1951)先后独立发表出来的,但在Kuhn和Tucker发表之后才逐渐受到重视,因此多数情况下记载成库恩-塔克条件(Kuhn-Tucker conditions)。先介绍几个优化的概念。

1.1 优化

最优化问题,是指在一定约束条件下,求解一个目标函数的最大值(或最小值)问题。根据是否有变量的约束条件,可以将优化问题分为无约束优化问题和约束优化问题。

1.2 无约束优化问题

目标函数的可行域为全空间,对目标函数直接求导求出极值点。

1.3 约束优化问题(Constrained Optimization)

约束优化问题中变量需要满足一些等式或不等式的约束条件。约束优化问题通常使用拉格朗日乘数法来进行求解。

1.4 凸优化

非线性优化问题中,有一类比较特殊的问题是凸优化问题(Conver Programming)。在凸优化问题中,变量x的可行域为凸集,即对于集合中任意两点,他们的连线全部位于在集合内部。目标函数f也必须为凸函数,即满足
在这里插入图片描述

1.5 KKT条件

KKT(Karush-Kuhn-Tucker)条件,是非线性规划领域里最重要的理论成果之一,是确定某点为极值点的必要条件。对于凸规划,KKT点就是优化极值点(充分必要条件)。

1.6 凸优化问题转化成拉格朗日函数去进行求解的,KKT条件其实是有3组条件:包括原问题可行条件对偶可行条件互补松弛条件

所以介绍KKT条件之前先介绍拉格朗日函数的对偶问题

二、拉格朗日函数求最值

拉格朗日函数对偶问题、KKT条件_第1张图片
因为拉格朗日函数背后的意义和梯度有关,梯度是一个向量
只有在目标函数和约束条件相切的位置,目标函数的梯度方向和约束条件的梯度方向才是相反的

三、拉格朗日函数的对偶问题

3.1 原问题可行条件

遇到一个非凸问题又该怎么办呢,那就是去看它的拉格朗日函数的对偶问题
拉格朗日函数对偶问题、KKT条件_第2张图片
所以,原问题可行条件可知为:
在这里插入图片描述
构造拉格朗日函数写出来,其实就是求min(L)在这里插入图片描述拉格朗日函数对偶问题、KKT条件_第3张图片

3.2 对偶问题可行条件

先找到一个对偶函数,交换一下顺序,lambda、miu看成常数,x看作变量,先去求最小minL,这个函数叫对偶函数,对偶函数上如果增加求最大maxg加上的约束条件,就是左边原问题的对偶问题,相当于就是把计算顺序颠倒一下,如下
拉格朗日函数对偶问题、KKT条件_第4张图片
所以,对偶问题可行条件为:
在这里插入图片描述

3.3 互补松弛条件

互补松弛条件:
在这里插入图片描述
拉格朗日函数对偶问题、KKT条件_第5张图片

四、举例

求最值
拉格朗日函数对偶问题、KKT条件_第6张图片
求解过程:
拉格朗日函数对偶问题、KKT条件_第7张图片

你可能感兴趣的:(机器学习,人工智能)