目的:将有约束条件的函数最优化问题通过拉格朗日函数转化为无条件的函数最优化问题。
条件极值最优化问题:
对于无条件的函数最优化问题,常用的有3种方式:
- 梯度下降:求解一阶导数,其实就是使用泰勒一阶展开逼近最优解
- L-BFGS:求解二阶导数,其实是使用泰勒二阶展开逼近
- IIS
对于有条件约束的函数最优化问题,该怎么求呢?
数学上给出了两种求解的方式,下面以求解二元函数的条件极值为例:
例:求解二元函数
方法一 化条件极值为无条件极值
第一步:从条件
第二步:将
第三步:求出一元函数
方法二 拉格朗日乘数法
第一步:构造拉格朗日函数
第二步:由一阶偏导数组成方程组
所以,拉格朗日乘数法是求条件极值的一种方法,具体过程就是将带条件的函数极值问题转化为无条件的极值问题
例:求函数
解:
拉格朗日对偶问题
原始问题
带约束条件的最优化问题泛化表示方法
可以将约束条件表示为K个不等式约束条件和L个等式约束条件,我们命名其为原始问题(意思就是所有函数最优化问题都可以转化为求最小值问题,所有约束条件都可以转化为上面两个条件的形式,这是因为求最大值和求最小值可以相互转化,比如:求得一个极大值A,那么转化为极小值就是负A, X>0可以转化为-X<0)
拉格朗日函数
定义某原始最优化问题的拉格朗日函数为:
其中ci是第i个不等式约束函数(需要整理[2]),bj是第j个等式约束函数,αi,βj叫做拉格朗日乘子
拉格朗日函数的特性
学习特性的目的是为了求解拉格朗日函数,找到最优化问题的解
极小极大问题:
令
则
所以,当满足约束条件时,对
证明
- 先看满足约束条件的情况
若满足约束条件ci≤0,得到 αici≤0,即
再由约束条件hj=0,可知
此时
- 不满足约束条件的情况
不满足原始问题的条件ci≤0时,拉格朗日函数中间部分的值为正无穷(正正得正)
不满足条件hj=0时,βj可正可负,hj可正可负,拉格朗日函数最后一部分最大时也是正无穷
极大极小问题:
定义
此时极大化
称为拉格朗日函数的极大极小问题,也称为原始问题的对偶问题
设
原始问题和对偶问题的关系
当f(x)和
构造一阶导数方程组[3],并结合约束条件(包含原始问题的约束条件和拉格朗日函数的约束条件)来求解,这一步也称KKT条件
参考
- ^形如z=f(x,y)的是显函数,除此以外的都是隐函数
- ^整理成A≤B的形式
- ^参考上面求二元函数条件极值