首先需要明确的是拉格朗日乘子法是一种凸优化算法,所以目标函数是一个凸函数,约束条件也是一个凸函数。

1.带有等式约束的最小值问题

机器学习中的数学之拉格朗日乘子法

机器学习中的数学之拉格朗日乘子法      (这是约束条件)

求 机器学习中的数学之拉格朗日乘子法  的极小值.

目标函数在三维空间中是一个倒立的圆锥。约束条件是一个双曲线在z轴上无限拉伸形成的一个面。为了方便我们把两个图像投影到二维平面上形成一个等高先图。如下

机器学习中的数学之拉格朗日乘子法

很容易想到极小值点是在两个面的交点集合之中。 约束面与目标函数相交,相切,相离。先来分析相交。

选取A点。前面说过了拉格朗日乘子法是一种凸优化算法,目标函数是一个凸函数,约束条件也是一个凸函数。而本例也是如此。所以可以明白,内圈的等高线的高度一定是小于外圈的(高度对应函数值)。如果两个面相交于A点,那么这一个点有没有可能是极小值点呢。

 

机器学习中的数学之拉格朗日乘子法

由图可知A点以下的红线部分与高度更小的等高线相交了。所以很明显A点不是。那么怎么才能让A点以下的部分不超过当前等高线呢,当然是要两个面相切啦。所以B点就是极小值点。

现在我们从相切这一个条件可以推出。机器学习中的数学之拉格朗日乘子法   与  机器学习中的数学之拉格朗日乘子法  在B点的法向量平行(在各个方向上的偏导成比例)。机器学习中的数学之拉格朗日乘子法  (表示梯度成比例) 即  机器学习中的数学之拉格朗日乘子法    ;    机器学习中的数学之拉格朗日乘子法     加上  机器学习中的数学之拉格朗日乘子法    一共有了三个等式。

整理一下为    机器学习中的数学之拉格朗日乘子法

在本例子中我们试着求解  发现能得到  机器学习中的数学之拉格朗日乘子法     这刚好是极小值点。那么我们能不能把这三个等式综合到一个式子里面呢?

我们尝试这样写    机器学习中的数学之拉格朗日乘子法   。然后对 机器学习中的数学之拉格朗日乘子法 分别求偏导。然后令其为0。可以得到三个等式

机器学习中的数学之拉格朗日乘子法       这不就是上面的三个等式,完全一样。所以两种求法是等价的。这就是带有等式约束条件的拉格朗日乘子法。

下面给出更一般的情况。那就是有多个等式约束条件的情况。其实上面是一个特例。机器学习中的数学之拉格朗日乘子法  (在知乎上扣了一张等高线图)

机器学习中的数学之拉格朗日乘子法

现在我们得到的梯度关系不再是目标函数的梯度与约束条件的梯度平行了。而是 目标函数的梯度与约束条件的的组合梯度平行。

即 机器学习中的数学之拉格朗日乘子法  。

我们试着从代数的角度看待拉格朗日乘子法 。对于  机器学习中的数学之拉格朗日乘子法

求极小值。

机器学习中的数学之拉格朗日乘子法    这是我们的目标函数。求在约束条件下的  机器学习中的数学之拉格朗日乘子法

我们建立拉格朗日函数  机器学习中的数学之拉格朗日乘子法。如果我们求在约束条件下拉格朗日函数 的极小值那么可以得到如下联立关系。

机器学习中的数学之拉格朗日乘子法         

显然在约束条件下  机器学习中的数学之拉格朗日乘子法     那么我们就试着求  机器学习中的数学之拉格朗日乘子法  我们直接对  机器学习中的数学之拉格朗日乘子法  求偏导,然后另其为0(凸优化问题) 。但是机器学习中的数学之拉格朗日乘子法这个也有约束条件啊,能直接求偏导吗?

不管了直接求导 。得到 机器学习中的数学之拉格朗日乘子法    我们发现第3,4个等式怎么有点眼熟。这不就是约束条件吗。说明在极值点处任然满足约束条件。

所以   机器学习中的数学之拉格朗日乘子法   与    机器学习中的数学之拉格朗日乘子法等价。而机器学习中的数学之拉格朗日乘子法与没有任何约束条件的拉格朗日函数  机器学习中的数学之拉格朗日乘子法 求机器学习中的数学之拉格朗日乘子法等价。

最后我们就把带有约束条件的优化问题,转化为了没有约束条件的优化问题,这样就可以直接求偏导求解。

下面看看带有不等式约束的最优化问题

给出目标函数   机器学习中的数学之拉格朗日乘子法 。 (其中x为向量,约束条件也可以有多个) 。 然后构造拉格朗日函数 机器学习中的数学之拉格朗日乘子法 (其中机器学习中的数学之拉格朗日乘子法)。

可以知道 机器学习中的数学之拉格朗日乘子法    .我们把 机器学习中的数学之拉格朗日乘子法 中的x看作常数机器学习中的数学之拉格朗日乘子法是自变量。因为机器学习中的数学之拉格朗日乘子法  所以  机器学习中的数学之拉格朗日乘子法.  则 机器学习中的数学之拉格朗日乘子法

那么可以很容易得到   机器学习中的数学之拉格朗日乘子法    。

接下来我们再看另一个式子  机器学习中的数学之拉格朗日乘子法  (这是原问题的对偶问题)。下面我们开始对这个式子进行变型。

机器学习中的数学之拉格朗日乘子法

机器学习中的数学之拉格朗日乘子法   (这里的推导存疑)

 

结果我们得到了这样一个等式 机器学习中的数学之拉格朗日乘子法

接下来我们讨论一下 机器学习中的数学之拉格朗日乘子法 的值。首先把 机器学习中的数学之拉格朗日乘子法 看作常量,x看作自变量。可以得到 机器学习中的数学之拉格朗日乘子法

接下来把x看作常量,机器学习中的数学之拉格朗日乘子法作为变量。令 机器学习中的数学之拉格朗日乘子法。根据约束条件 机器学习中的数学之拉格朗日乘子法 可以得到 机器学习中的数学之拉格朗日乘子法 的值域 机器学习中的数学之拉格朗日乘子法   。

那么就能得到  机器学习中的数学之拉格朗日乘子法  。这个的等式成立的条件是 机器学习中的数学之拉格朗日乘子法 或者 机器学习中的数学之拉格朗日乘子法。最后我们得到机器学习中的数学之拉格朗日乘子法                                                

假设我们现在解出了一个最优解 机器学习中的数学之拉格朗日乘子法。显然得到机器学习中的数学之拉格朗日乘子法

那么我们把机器学习中的数学之拉格朗日乘子法带入最前面的等式 机器学习中的数学之拉格朗日乘子法  。联立前面的等式机器学习中的数学之拉格朗日乘子法

得到  机器学习中的数学之拉格朗日乘子法

最后可知 机器学习中的数学之拉格朗日乘子法  这个式子说明了什么? 说明了我们的目标极小值点是拉格朗日函数的极小值点。

最后总结一下思想

第一步我们把目标函数求解问题转换为,拉格朗日函数求极大极小问题 即 机器学习中的数学之拉格朗日乘子法

但是发现这样也不好直接求。于是我们试着去求拉格朗日函数的对偶问题。即机器学习中的数学之拉格朗日乘子法。然后开始对机器学习中的数学之拉格朗日乘子法 进行一系列的变形操作。既然我们要用对偶问题去求原问题。那么就要让对偶问题与原问题的最优值点相同。结果发现 机器学习中的数学之拉格朗日乘子法 时等价,并且最优值点也正好是拉格朗日函数关于变量x的极小值点。最后我们就可以根据这些特点,求出最优值点。联立以下式子求解即可  机器学习中的数学之拉格朗日乘子法

 

 

相关文章: