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

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

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

f(x,y)=x^2+y^2

s.t:\: xy=3      (这是约束条件)

求 f(x,y)  的极小值.

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

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

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

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

现在我们从相切这一个条件可以推出。f(x,y)=x^2+y^2   与  g(x,y) = xy-3  在B点的法向量平行(在各个方向上的偏导成比例)。\bigtriangledown f(x,y) = \lambda \bigtriangledown g(x,y)  (表示梯度成比例) 即  \frac{\partial f(x,y)}{\partial x} = \lambda \frac{\partial g(x,y)}{\partial x}    ;    \frac{\partial f(x,y)}{\partial y} = \lambda \frac{\partial g(x,y)}{\partial y}     加上  xy=3    一共有了三个等式。

整理一下为    2x=\lambda y;\: \: 2y=\lambda x;\: \: \: xy=3

在本例子中我们试着求解  发现能得到  \lambda =2;x=y=+-\sqrt{3}     这刚好是极小值点。那么我们能不能把这三个等式综合到一个式子里面呢?

我们尝试这样写    F(x,y,\lambda )=x^2+y^2-\omega (xy-3)   。然后对 x,y,\lambda 分别求偏导。然后令其为0。可以得到三个等式

2x=\omega y;\: \: \: 2y=\omega x;\: \: xy=3       这不就是上面的三个等式,完全一样。所以两种求法是等价的。这就是带有等式约束条件的拉格朗日乘子法。

下面给出更一般的情况。那就是有多个等式约束条件的情况。其实上面是一个特例。f(x,y) = x^2+y^2 \: \: \: g(x,y) = xy^2-3\: \: \: h(x,y) = x-y-3  (在知乎上扣了一张等高线图)

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

即 \bigtriangledown f(x,y) = u\bigtriangledown g(x,y)+\lambda \bigtriangledown h(x,y)  。

我们试着从代数的角度看待拉格朗日乘子法 。对于  f(x,y) = x^2+y^2 \: \: \: g(x,y) = xy^2-3\: \: \: h(x,y) = x-y-3

求极小值。

\left\{\begin{matrix} min\: f(x,y)=x^2+y^2\\ xy^2=3\\ x-y=3 \end{matrix}\right.    这是我们的目标函数。求在约束条件下的  min\: f(x,y)

我们建立拉格朗日函数  F(x,y,\lambda, \eta ) = x^2+y^2+\lambda (xy^2-3)+\eta (x-y-3)。如果我们求在约束条件下拉格朗日函数 的极小值那么可以得到如下联立关系。

\left\{\begin{matrix} min \: F(x,y,\lambda, \eta )\\ F(x,y,\lambda, \eta )=x^2+y2+\lambda (xy^2-3)+\eta (x-y-3) \\ xy^2-3=0 \\x-y-3=0 \end{matrix}\right.         

显然在约束条件下  min\: F(x,y,\lambda ,\eta )=min\: f(x,y)     那么我们就试着求  min\: F(x,y,\lambda ,\eta )  我们直接对  F(x,y,\lambda ,\eta )  求偏导,然后另其为0(凸优化问题) 。但是min\: F(x,y,\lambda ,\eta )这个也有约束条件啊,能直接求偏导吗?

不管了直接求导 。得到 \left\{\begin{matrix} \frac{\partial F}{\partial x}=2x+\lambda y^2+\eta=0 \\ \frac{\partial F }{\partial y}=(2+2\lambda x+\eta )y=0 \\ \frac{\partial }{\partial \lambda }=xy^3-3=0 \\ \frac{\partial }{\partial \eta }=x-y-3=0 \end{matrix}\right.    我们发现第3,4个等式怎么有点眼熟。这不就是约束条件吗。说明在极值点处任然满足约束条件。

所以   \left\{\begin{matrix} min\: f(x,y)=x^2+y^2\\ xy^2=3\\ x-y=3 \end{matrix}\right.   与    \left\{\begin{matrix} min \: F(x,y,\lambda, \eta ) \\ xy^2-3=0 \\x-y-3=0 \end{matrix}\right.等价。而\left\{\begin{matrix} min \: F(x,y,\lambda, \eta ) \\ xy^2-3=0 \\x-y-3=0 \end{matrix}\right.与没有任何约束条件的拉格朗日函数  F(x,y,\lambda ,\eta ) 求min\: F(x,y,\lambda ,\eta )等价。

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

猜你喜欢

转载自blog.csdn.net/qq_38120760/article/details/82154000