通俗易懂 | 拉格朗日乘子法

在SVM中,将约束问题转化成非约束问题接纳到了拉格朗日乘子法。这个文章就讲一下拉格朗日乘子法与KKT约束是怎么回事。本人不是数学科班出身,然则也只能硬着头皮讲一讲了。

从零明白

现在我们要解决这样一个问题:
\(x^2y=3\)
这个函数距离原点最近的距离是多少。

先画出函数图像:
通俗易懂 | 拉格朗日乘子法

然后想求出最短距离:
通俗易懂 | 拉格朗日乘子法

这里的思绪就是,做一个以原点为中央的圆形:
通俗易懂 | 拉格朗日乘子法

不断扩大圆形的半径,直到圆与蓝色的曲线相切:
通俗易懂 | 拉格朗日乘子法

现在。第一次与\(x^2y=3\)相交的点就是距离原点最近的谁人点:
通俗易懂 | 拉格朗日乘子法

这个,圆形与曲线相切,且切线既是圆形的切线,也是曲线的相切。
通俗易懂 | 拉格朗日乘子法

这时刻,这个切线的垂线实在也就是我们所说的梯度,也叫做等高线的法线,看下面两个图可能会好明白一些:
通俗易懂 | 拉格朗日乘子法
通俗易懂 | 拉格朗日乘子法

那么这个梯度怎么盘算呢?先看圆形\(f(x,y)=x^2+y^2\)的梯度:
通俗易懂 | 拉格朗日乘子法

再看曲线的梯度盘算\(g(x,y)=x^2y\)的梯度:
通俗易懂 | 拉格朗日乘子法

在相切的时刻,两者的梯度偏向都在统一条直线上,可以称之为,成比例,这里用比例系数\(\lambda\)来示意:
通俗易懂 | 拉格朗日乘子法

以是我们汇总一下所有的已知信息,获得下面的方程组:
通俗易懂 | 拉格朗日乘子法

可以求解获得:
通俗易懂 | 拉格朗日乘子法

自动化不知如何参数化?xlrd来帮你解决

这个就是拉格朗日乘子法的直观明白。

抽象成数学的形式

我们要解决的问题:
\(\min {x^2+y^2}\)
\(s.t. x^2y=3\)

我们会将约束问题通过拉格朗日乘子法转换成非约束问题:
\(\min F(x,y)={x^2+y^2+\lambda(x^2y-3)}\)

【为什么可以这样呢?】
若是求极值,偏导数为0。先对上面的公式举行求偏导数:
\(\frac{\partial F(x,y)}{\partial x}=2x+\lambda 2xy=0\)
\(\frac{\partial F(x,y)}{\partial y}=2y+\lambda x^2=0\)

这两个等式与这个等价,唯一的差别就是\(\lambda\)一个是正数一个是负数:
通俗易懂 | 拉格朗日乘子法

固然,对于\(x^2y-3=0\)这个条件,我们也可以写成\(\frac{\partial F(x,y,\lambda)}{\partial \lambda}\),以是,可以获得这样的一个方程组:
通俗易懂 | 拉格朗日乘子法

KKT条件

  • KKT的英文全称:Karush-Kuhn-Tucker

之前的拉格朗日的约束条件是等值的,现在可以通过KKT条件推广到不等式。由于限制条件往往是不大于,小于这样的不等式,以是KKT才是拉格朗日化约束问题为非约束问题的要害。

对于不等式问题,就是有两种情形:

  • 可行解在g(x)<0;
  • 可行解在g(x)=0。

可行解在g(x)<0,就示意这个约束条件并没有起到约束效果,有根没有事一个效果(下图中的左图);可行解g(x)=0,就示意这个约束条件起到作用了,这就示意g(x)与f(x)相切,也就是下图中右边的图。

通俗易懂 | 拉格朗日乘子法

【g(x)<0的情形】
这种情形下,就是没有限制条件下的情形,实在就是没有约束条件的限制,也就是\(\lambda=0\)的情形,以是我们的等式就是直接求解:
\(\Delta f(x)=0\)

【g(x)=0的情形】
若是是g(x)=0的情形,那也就是约束条件起到作用了,也就意味着\(\lambda>0\)。在这种情形下,存在着:
\(\Delta f(x) = -\lambda \Delta g(x)\)
而且两个函数的扩张的偏向相反,以是解释两个g(x)和f(x)的梯度一个是正数,一个是负数。以是这个示意\(\lambda>0\)

以是综上所述,在这种情形下,我们所有的条件综合起来可以获得,其中\(x^\*\)就是最优解:

  • \(\lambda >=0\)
  • \(\lambda g(x^*)=0\)
  • $ g(x^*) <= 0$

这三个就是KKT条件。

通俗易懂 | 拉格朗日乘子法
通俗易懂 | 拉格朗日乘子法
通俗易懂 | 拉格朗日乘子法

原创文章,作者:28x29新闻网,如若转载,请注明出处:https://www.28x29.com/archives/24884.html