拉格朗日乘子、KKT条件等相关理论现在由于机器学习的热度经常可以看到介绍它们的文章,因为它们是一些机器学习模型例如支持向量机的底层原理;更一般的来说,它们属于处理非线性优化问题的典型技术。这篇文章先用一个具体的例子来演示非线性优化问题的处理过程,然后用二维平面的例子来辅助理解拉格朗日定理,最后列出该定理严格的数学描述
最简单的方法: 替换法
只要优化问题中存在非线性关系,无论是目标函数还是约束条件,那么这个问题就成了一个非线性优化问题,像单纯形法等适用于线性优化问题的算法是无法处理的。对于一个无约束的优化问题,即求一个函数的最值问题,相对来说是比较容易的;所以处理带约束的非线性优化问题,最经典的一种思想就是想办法把约束信息移除掉,把原始问题转换成一个没有约束的函数最值问题。
对于一些非常简单的非线性优化问题,替换法是最容易想到的方法。例如这个问题:
显然我们可以利用约束等式,把目标函数中的用来替代:
现在原问题就变成了一个关于的二次函数,二次函数求最大最小值就很容易了。
当然替换法只能适用于这种非常简单的情况,约束稍微复杂一点就不适用了
更通用的方法:拉格朗日乘子法
拉格朗日乘子方法是更为一般和通用的处理非线性优化问题的技术,一句话描述它,通过引入拉格朗日乘子把约束附加到目标函数上,构成拉格朗日函数,从而将原来的有约束问题转化成无约束问题。
例如我们要计算下面这个例子:
我们先把约束等式写成下面的格式:
接着我们引入用表示的拉格朗日乘子,将它乘上约束等式的左边,然后用目标函数减去这个分量:
这个就叫做拉格朗日函数,按照拉格朗日定理,拉格朗日函数的最优解就是原始的带约束的优化问题的解;怎么求解拉格朗日函数的最优解呢? 那我们只需要利用可微函数极值点梯度为零的性质求解就行了,也就是分别对中的变量,和求偏导并另其等于零:
求解这个方程组,可以得到最优解:
拉格朗日乘子法局限性也很大,首先它只适用于约束只有等式的情况,当存在不等式时,需要引入KKT条件定理进行扩展;另一方面当目标或约束复杂度很高时,通过简单的求偏导等于零来直接计算最优解也变得不现实
图示
为了辅助理解拉格朗日定理,一般都会借助二维图例来说明,这当然不是该定理严格的数学证明,不过比较直观,便于理解它的过程。
我们用一个简单的二元单约束优化问题来举例:
对于目标函数,它的实际图像应该是个三维曲面,因为有着三个变量,那么在二维平面上反映的其实三维曲面的投影,我们称之为等值线,对于任何一个目标值,所有满足等于该目标值的两个变量构成了二维面上的一条曲线;例如,它在二维平面上的等值线大致就是这个样子
对于二元约束等式,我们可以在二维平面上划出它的曲线,例如如果约束是,那么这个约束就是平面上的圆曲线:
另一方面,约束曲线也可以看成是约束函数等于零时的等值线;结合约束曲线和目标函数等高线,这个约束问题就是要在约束曲线的所有点中找到目标函数值最大的点
按照拉格朗日定理,我们定义拉格朗日函数为:
如果设这个最优解的点为,那么该点一定满足:
我们对照平面曲线图来理解这个公式:表示的是目标函数在点的梯度,即目标函数对各个分量的偏导数构成的向量:
回顾一下梯度的概念,梯度的方向是函数在该点处变化最快的方向,它的模则是这个最大的变化率,对于二元的目标函数,梯度在二维等值线上画出来就是该点的法向量:
同样的,表示的是约束函数在点的梯度,表示在二维平面上也是约束曲线上的法向量
我们可以想象一下,对于两个空间曲面,如果它们在某一点相切,那么在该点两个曲面的法向量是平行的(在一条直线上),对应的等值线上的法向量也是平行的,其实也就是梯度是平行的;梯度和梯度平行,用线性代数的语言描述就是
这其实就是拉格朗日定理的方程式,所以对于上面这个二元优化问题,拉格朗日定理的意思就是这个最优解代表的点就是约束曲线与目标函数等值线的相切点:
抛开拉格朗日定理,在这个简单的例子里,我们只凭直觉也可以发现,只有当选择那个相切点的时候能够达到最大的目标值,如果目标函数等高线向左下移一点,它与约束曲线的交点是满足约束的,但是此时的目标值更小了;如果目标函数等高线向右上移一点,他与约束曲线没有交点,也就是没有可以达到这个目标值的解。
拉格朗日定理
最后我从相关资料中摘录了一下拉格朗日定理相关的严格数学定义,严格定义我觉得还是有必要读一下的,不过证明过程就可以忽略了。拉格朗日定理本身是描述最优解的必要条件,而充分条件其实还有更加严格的定义,我就放在最后一节了。
在表述拉格朗日定理前,先明确一些定义:
- 将优化问题表述为:
是目标函数,而到的等式约束将变量向量规定在有限轨迹中; - 通过引入拉格朗日乘子,可以构造拉格朗日函数:
- 用表示在上的梯度,即对的一阶偏导,即:
同样的,表示在的梯度 - 定义代表所有约束函数的向量,那么各个对的偏导构成了一个雅可比(Jacobian)矩阵:
我们称对于某个点在上满足非退化约束条件(nondegenerate constraint qualification, 简写为NDCQ),当雅可比矩阵在时的秩等于,即它是满秩矩阵的
那么有拉格朗日条件定理(Lagrange Conditions):
- 假定都是函数(一阶可导),是在限定空间上的局部极值点,并且满足条件,那么一定存在使得是拉格朗日函数
的驻点,即:
对于定理中强调的需要满足条件,我们用一个简单的例子来理解下为什么要加上一点. 假设一个二元优化问题,且只有一个约束条件:
它的拉格朗日函数为:
根据拉格朗日定理,的驻点满足:
再加上:
三个方程式应该可以求解得到三个变量的值,但是如果不满足条件,即和都等于零,拉格朗日函数一阶偏导的两个等式就可以规约为一个等式,这也就意味着无法求解,所以条件是拉格朗日定理的严格定义中必须要明确的
极大(极小)值的充分条件
极值点必然是的驻点,也必然满足拉格朗日定理,但是拉格朗日定理只是最值的必要条件,也就是说当我们求得一个驻点后,我们其实不能直接判断它是极大值还是极小值,可能我们计算出的驻点是个局部最小值,但我们的问题是求最大值问题,那么这个驻点其实也不是可选的解;因此我们还要另一个定理来作为极大值(极小值)的判定准则
还是先明确一些定义:
- 我们用来表示拉格朗日函数的二阶偏微分矩阵,即:
它一般被称为Hessian矩阵 - 对于一个的实对称矩阵,如果对于任意的长度为的非零向量,都有成立,则称是一个正定矩阵;如果,则称为负定矩阵
那么有严格极大值的充分条件定理:
- 假设是函数(二阶可导),是满足拉格朗日条件的驻点,其对应的拉格朗日乘子为;对应于有Hessian矩阵,那么驻点是严格极大值,当对于任意满足限制条件的,是负定的,即