Why does the method of Lagrange multipliers work for optimization in multivariable calculus?

Ref:
[1]https://www.quora.com/Why-does-the-method-of-Lagrange-multipliers-work-for-optimization-in-multivariable-calculus

今天看到拉格朗日乘子,kkt算法的时候,突然想起来,为什么拉格朗日算法可以呢?直观上怎么理解呢?

发现还是quora上面的答案比较清晰直观。

拉格朗日算法其实相当于首先有了一个函数f的空间分布,但是有了空间分布还不够,还需要有约束条件g。约束条件g其实决定了,究竟能在f空间的什么位置能够取值。

假设约束是一条线,那么这条线上就意味着g这个条件满足了,但是同时还需要满足另一个条件,就是f究竟是不是在这个g的约束下最大的,这就带来一个问题:什么时候是最大的。

对于函数g来说,每一个点都有一个梯度,决定着变化最大的方向,但是这和g的曲线刚好是垂直的,因为g是个常数,所以从来就不改变,自然在梯度方向没有任何的改变。

在这个条件下,f函数就宽松多了,每一个点都有自己的梯度,但是让我们考虑一下函数f在约束g上的那些点,如果g的梯度和当前f的梯度不一样,那么说明g的梯度在f的梯度上面有一个分量,依据这个分量进行移动,就可以继续增加f的值,一直到一种情况就是f的梯度和g的梯度相同。在这种情况中,不论函数f在g这个约束集合上的当前这个点的临域中如何移动,都能够实现我们的目标,也就是达到了一个局部最优点(虽然说不一定是稳定的吧,但是肯定满足条件)

所以其实在这样的一个条件下,f函数在g的约束下的点集当然有很多,但是找到最大的点就需要进一步的约束,就可以通过偏导方向相同来确定。

你可能感兴趣的:(机器学习,数学,拉格朗日乘子)