自己总结的规律
- 梯度为0, 其实就是说明里面每一个参数的偏导数都为0.
- 拉格朗日乘子法是对于等式约束.
- KKT条件是针对不等式约束条件.
拉格朗日乘子法结论
如果有个约束等式:
只需解如下方程组:
KKT条件
求如下的极值:
通过解下面这个方程组来得到答案:
这个方程组也就是所谓的KKT条件。
进一步解释下方程组的各个项:
说明: 最难理解的是$mu_j h_j = 0$,
- 根据左图, 此时的最小值在$f$函数的最小值点取得, 因此 $mu_j=0$, 此时$h_j ≤0$
- 根据右图, 此时的最小值在两者相切的地方取得, 因此 $mu_j≥0$, 此时$h_j =0$
参考: 马同学博客~
按照相应的相切概念会得到下面的式子,即两者具有等比例的剃度值。
$$ abla f(x,y)+lambda abla g(x,y)=0 ag{1}$$
如何上面的式子转为拉格朗日乘子法的一般形式,即
$$mathcal{L}(x,y,lambda)=f(x,y)+lambda cdot g(x,y) ag{2}$$
并且是对于三个变量的偏导数为0,下面我从(1)到(2)的理解.
由(1)可得
$ abla_x f(x,y)+lambda abla_x g(x,y)=0$
$ abla_y f(x,y)+lambda abla_y g(x,y)=0$
即
$ abla_x (f(x,y)+lambda abla_x g(x,y))= abla_xmathcal{L}(x,y,lambda)=0 ag{a}$
$ abla_y (f(x,y)+lambda abla_y g(x,y))= abla_ymathcal{L}(x,y,lambda)=0 ag{b}$
而下面的式子等于0则限制了$g(x,y)=0$
$ abla_lambdamathcal{L}(x,y,lambda)=g(x,y)=0 ag{c}$
也就是说明,(2)式在(a)(b)(c)三个式子下可以达到(1)式的效果.此时存在下面的表达式,所以等价,两者有一样的极值.
$$mathcal{L}(x,y,lambda)=f(x,y)$$