Press "Enter" to skip to content

约束优化和KKT条件

洞察拉格朗日函数

(Image by author)

优化在计算机科学、物理学、数学和经济学领域都是无处不在的。它是人工智能和机器学习(ML)专业人士的重要工具,适用于包括决策制定、路径规划和学习ML模型中的参数(如支持向量机(SVM)和神经网络)在内的各个领域。优化的最一般形式是找到函数相对于其独立变量的最小值/最大值,可以通过应用微分计算的基本概念实现。在数学上,这些最值处函数的斜率(一阶导数)为零,称为驻点。确定这样的点是最大值还是最小值是通过评估曲率(二阶导数)来完成的。

更进一步,我们可以向优化问题添加约束,以定义函数要优化的特定空间域。因此,不再是在整个实数(或复数)空间中确定函数的最大值和最小值,而是将优化限制在这个特定的域内。传统的计算驻点的方法不再适用,因为这些点可能落在由约束定义的边界之外。在接下来的部分中,我们将分析约束优化问题的复杂性,并探索解决策略。

等式约束

具有等式约束的优化问题的形式如下:

约束优化和KKT条件 四海 第2张

(Image by author)

这里,f(x)是我们希望最小化的函数,而约束g(x) = 0定义了最小化要进行的域。在这些情况下,最小化的焦点固有地局限于由约束定义的特定域内。尽管如前所述,传统的微分计算方法无法考虑约束,因此需要另一种方法。

拉格朗日函数

鉴于这是一个最小化问题,一种适应传统方法的方法是将函数在指定域之外的地方赋予无穷大的值。为了实现这一点,我们引入了一个新的函数f’(x),其特征表达式如下:

约束优化和KKT条件 四海 第4张

这样的修改消除了最小值发生在域外的可能性,确保最优点出现在域内。因此,我们现在可以将约束优化重新转化为无约束优化问题。

约束优化和KKT条件 四海 第5张

然而,这种方法也带来了一个挑战。使用微分学来优化上述问题是不可能的,因为函数f’(x)在域的边界处出现突然的不连续性。这就是拉格朗日函数的用途。我们不再像(2)中定义函数f’(x),而是将其制定为一个最大化问题。

约束优化和KKT条件 四海 第6张

RHS上的表达式被称为拉格朗日函数,新的变量𝞴是拉格朗日乘数。从(4)可以看出,在{g(x) < 0,g(x) > 0}的区域,𝞴可以取到{-∞,∞}的值,将表达式最大化到

因此,(3)中的优化可以采取以下形式。

约束优化和KKT条件 四海 第7张

值得注意的是,由于内部最大化导致相同的不连续函数,非可微性问题仍然存在。然而,通过使用拉格朗日表示,我们可以使用最大最小不等式将最大最小问题转化为最小最大问题,从而克服此问题。

约束优化和KKT条件 四海 第8张

在这里,我们首先相对于独立变量x进行优化,然后相对于拉格朗日乘数𝞴进行优化。

不等式约束

(图片由作者提供)

我们现在将分析约束不是等式而是不等式时的情况。这类优化问题的形式如下:

约束优化和KKT条件 四海 第10张

我们可以使用类似的方法来解决这个问题:我们在由约束条件定义的域内定义f’(x)f(x)相同,在其他地方为无穷大:

约束优化和KKT条件 四海 第11张

对应地,拉格朗日函数定义为:

约束优化和KKT条件 四海 第12张

与不等式约束相对应的拉格朗日乘数用𝝻表示。方程(9)不同之处在于它还对拉格朗日乘数施加了约束,这在(4)中是没有的。现在,(7)中的优化问题形式如下:

约束优化和KKT条件 四海 第13张

应用最小-最大不等式,

约束优化和KKT条件 四海 第14张

KKT(Karush-Kuhn-Tucker)条件

(10)中的优化称为原始版本,(11)是其对偶版本。根据最小-最大不等式,对偶版本下界原始版本,提示两个版本不一定相等。然而,存在条件使得原始版本和对偶版本相等,这被称为正则性条件。假设满足正则性条件,则对于(x*,𝝻*)作为解点,必须满足以下KKT条件

  1. 原始可行性

约束优化和KKT条件 四海 第15张

它来源于问题的定义。

2. 对偶可行性

约束优化和KKT条件 四海 第16张

双重可行性是由(9)推导得出的。

3. 稳定性

约束优化和KKT条件 四海 第17张

这是一个有趣的特性。由于𝞴*是零或正值,稳定性条件实质上意味着在最优点处,f(x)g(x)的梯度必须朝相反的方向定向。其背后的原理如下:如果f(x)g(x)的梯度在点x = x*处朝同一方向对齐,那么f(x)g(x)都将同时沿着与它们的梯度相反的方向减小。这种情况下,f(x)可以继续在值f(x*)之下减小,而不违反约束条件,这样x*就不再符合最优点的条件。因此,为了使一个点成为最优点,稳定性属性必须得到满足。

4. 互补松弛条件

约束优化和KKT条件 四海 第18张

这是另一个有趣的属性,它直接推导自等式(9)。当约束条件g(x*) < 0时,拉格朗日乘数𝝻*必须等于零。由于拉格朗日乘数还表示我们的解对相关约束的敏感程度,𝝻*的值为零表示相关约束对于确定解的影响不大。换句话说,无论我们是否考虑带有约束的解还是不带约束的解,结果都保持不变。一个直观的例子是当f(x)g(x) ≤ 0的区域具有全局最小值时。对于另一个例子,考虑将函数f(x)最小化,同时满足两个约束:g¹(x) < 5g²(x) < -1。在这种情况下,与约束相关的拉格朗日乘数𝝻²*为零,因为已经涵盖了的条件,使得作为约束变得无关紧要。

应用:支持向量机(Support Vector Machine, SVM)

机器学习中具有不等式约束的一种约束优化的例子是支持向量机(Support Vector Machine, SVM)。当给定一个数据点集{(x¹, y¹), (x², y²), …},其中y ∈ {-1, 1}表示两个类别时,目标是识别出最大化类别间间隔的分类器。具体来说,我们将SVM公式化为以下最小化问题:

约束优化和KKT条件 四海 第19张

(作者提供的图像)

方程中的项||w||表示间隔的倒数。很明显,存在许多不等式约束:实际上,我们有与每个数据点相关联的约束。然而,在实践中,解只由靠近分类器边界的少数数据点引导;这些点被称为支持向量。正如我们在互补松弛条件中讨论的,只有与支持向量相关的拉格朗日乘数具有非零值。对于其他所有数据点,它们相关的约束的拉格朗日乘数值为零,使它们在确定分类器边界时变得不重要。

结论

我们从对无约束优化问题的简要介绍开始,并逐渐扩展到包含等式和不等式约束的问题。此外,我们讨论了拉格朗日函数如何解决约束引入的挑战。深入研究拉格朗日乘子法的最优性,我们对KKT条件有了更多的了解。最后,我们简要介绍了SVM如何被公式化为约束优化问题,并对其解决方案进行了简要讨论。

Leave a Reply

Your email address will not be published. Required fields are marked *