有约束的最优化问题
最优化问题一般是指对于某一个函数而言,求解在其指定作用域上的全局最小值问题,一般分为以下三种情况(备注:以下几种方式求出来的解都有可能是局部极小值,只有当函数是凸函数的时候,才可以得到全局最小值):
1、无约束问题:求解方式一般为梯度下降法、牛顿法、坐标轴下降法等;
2、等式约束条件:求解方式一般为拉格朗日乘子法
3、不等式约束条件:求解方式一般为KKT条件
拉格朗日乘子法
拉格朗日乘子法就是当我们的优化函数存在等值约束的情况下的一种最优化求解方式;
其中参数α被称为拉格朗日乘子,要求α不等于0
假设现在有一个二维的优化问题
画出图像加深理解
数学证明可参考链接:https://wenku.baidu.com/view/ac56710e2e3f5727a5e962a7.html
对偶问题
在优化问题中,目标函数f(x)存在多种形式,如果目标函数和约束条件都为变量x的线性函数,则称问题为线性规划;如果目标函数为二次函数,则称最优化问题为二次规划;如果目标函数或者约束条件为非线性函数,则称最优化问题为非线性优化。每个线性规划问题都有一个对应的对偶问题。对偶问题具有以下几个特性:
- 对偶问题的对偶是原问题;
- 无论原始问题是否是凸的,对偶问题都是凸优化问题;
- 对偶问题可以给出原始问题的一个下界;
- 当满足一定条件的时候,原始问题和对偶问题的解是完美等价的。
KKT条件
KKT条件是泛拉格朗日乘子法的一种形式;主要应用在当我们的优化函数存在不等值约束的情况下的一种最优化求解方式;KKT条件即满足不等式约束情况下的条件。
可行解必须在约束区域g(x)之内,由图可知可行解x只能在g(x)<0和g(x)=0的区域取得;
当可行解x在g(x)<0的区域中的时候,此时直接极小化f(x)即可得到;
当可行解x在g(x)=0的区域中的时候,此时直接等价于等式约束问题的求解。
KKT条件理解
当可行解在约束内部区域的时候,令β=0即可消去约束。
对于参数β的取值而言,在等值约束中,约束函数和目标函数的梯度只要满足平行即可,而在不等式约束中,若β≠0,则说明可行解在约束区域的边界上,这个时候可行解应该尽可能的靠近无约束情况下的解,所以在约束边界上,目标函数的负梯度方向应该远离约束区域朝无约束区域时的解,此时约束函数的梯度方向与目标函数的负梯度方向应相同;从而可以得出β>0。
对偶问题的直观理解:最小的里面的那个最大的要比最大的那个里面的最小的大;从而就可以为原问题引入一个下界。
KKT 案例
这里利用该KKT条件满足对偶条件:
对偶问题的直观理解:最小的里面的那个最大的要比最大的那个里面的最小的大;从而就可以为原问题引入一个下界
KKT条件总结
KKT条件为下列五个
- 拉格朗日取得可行解的充要条件;
- 将不等式约束转换后的一个约束,称为松弛互补条件;
- 初始的约束条件;
- 初始的约束条件;
- 不等式约束需要满足的条件。