机器学习 之 拉格朗日乘子法
拉格朗日乘子法拉格朗日函数对偶问题KKT条件拉格朗日函数作用:将带有k个约束条件,d个变量的最优化问题转变为 k+d个变量的无约束优化问题1、当约束条件为等式形式时:有最优化问题:x为的d维向量,则此优化问题即 在g(x)=0所定义的d-1维曲面上寻找一点x能够使得目标函数f(x)取得最小值。则在该点f(x)的梯度▽f(x*) (注:不是导数!) 平行于 ▽g(x*)因此可以推出定义拉格朗日函数:
拉格朗日函数
作用:将带有k个约束条件,d个变量的最优化问题转变为 k+d个变量的无约束优化问题
1、 当约束条件为等式形式时:
有最优化问题:
x为的d维向量,则此优化问题即 在g(x)=0所定义的d-1维曲面上寻找一点x* 能够使得目标函数f(x*)取得最小值。则在该点f(x)的梯度▽f(x*) 平行于 ▽g(x*)
原因:
- 对于约束平面g(x)上的任一点都有该点的梯度▽g(x)正交于约束平面
- 在最优点x* 处,目标函数f(x)在该点的梯度▽f(x*)正交于约束平面
证明(反证法)
如果梯度▽f(x*) 不与g(x)正交,则在约束平面g(x)上沿着▽f(x*)的方向必然存在比x* 更优的点,与x* 是最优点相悖
因此可以推出
定义拉格朗日函数:
则最优化函数将转变为求 无约束条件的拉格朗日函数的优化问题:求一点使得拉格朗日函数对其所有变量(x, λ)的偏导数为0.
等式约束条件下 拉格朗日乘子 λ 可正可负
2、 当约束条件为不等式+等式时:
拉格朗日函数为:
对偶问题
已有拉格朗日函数:
由初始优化问题的约束条件,可以推出:
因此有:
进而推出:
上式左边部分为拉格朗日极小极大问题,等同于原优化问题,但是该问题还是无法求解
此时将min和max调转位置,得到拉格朗日函数的极大极小问题,也称为原始问题的对偶问题:
因为有
所以可以推出 对偶问题的最优值≤原问题的最优值
当对偶问题的最优值=原问题的最优值时,称此时为强对偶,可以通过求解对偶问题来求解原问题。
而满足KKT条件时问题满足强对偶性(具体证明请查阅其它介绍更深入的资料),因此求解对偶问题即可。
KKT条件
KKT条件是指在满足一些有规则的条件下, 一个非线性规划(Nonlinear Programming)问题能有最优化解法的一个必要和充分条件,即最优解x*必须满足下列条件:
此文为本人学习过程中查阅各方面资料所汇总的笔记,如有问题,还请大佬指正
更多推荐
所有评论(0)