概述
有时候,我们最大化或最小化一个函数 f ( x ) f(x) f(x) 不希望在 x \boldsymbol{x} x 的所有可能值下进行的,而是希望在 x \boldsymbol{x} x 的某些集合 S \mathbb{S} S 中。这被称为约束优化( constrained optimization)。在约束优化术语中,集合 S \mathbb{S} S 内的点 x \boldsymbol{x} x 被称为可行( feasible)点。
约束优化的特殊方法
约束优化的一个简单方法是将约束考虑在内后简单地对梯度下降进行修改。如果我们使用一个小的恒定步长 ϵ ϵ ϵ,我们可以先取梯度下降的单步结果,然后将结果投影回 S \mathbb{S} S。如果我们使用线搜索,我们只能在步长为 ϵ ϵ ϵ 范围内搜索可行的新 x \boldsymbol{x} x 点,或者我们可以将线上的每个点投影到约束区域。如果可能的话,在梯度下降或线搜索前将梯度投影到可行域的切空间会更高效。
一个更复杂的方法是设计一个不同的、无约束的优化问题,其解可以转化成原始约束优化问题的解。 例如,在 x ∈ R 2 \boldsymbol{x}\in \mathbb{R}^2 x∈R2 中最小化 f ( x ) f(\boldsymbol{x}) f(x),其中 x \boldsymbol{x} x 约束为具有单位 L 2 L^2 L2 范数。我们可以将原优化问题写为,关于 θ θ θ 最小化 g ( θ ) = f ( [ c o s θ ; s i n θ ] ⊤ ) g(θ) = f([cos θ; sin θ]^⊤) g(θ)=f([cosθ;sinθ]⊤),最后返回 [ c o s θ ; s i n θ ] [cos θ; sin θ] [cosθ;sinθ] 作为原问题的解。这种转换必须专门根据我们遇到的每一种情况进行设计。
约束优化的通用方法-KKT
Karush–Kuhn–Tucker( KKT)方法是针对约束优化非常通用的解决方案。我们先引入一个称为广义 Lagrangian( generalized Lagrangian)或广义 Lagrange 函数( generalized Lagrange function)的新函数。
通过 m m m 个函数 g ( i ) g^{(i)} g(i)(等式) 和 n n n 个函数 h ( j ) h^{(j)} h(j)(不等式) 描述 S \mathbb{S} S,那么 S = { x ∣ ∀ i , g ( i ) ( x ) = 0 a n d ∀ j , h ( j ) ( x ) ≤ 0 } \mathbb{S}=\{\boldsymbol{x}\,|\,\forall i,g^{(i)}(\boldsymbol{x})=0\, and\, \forall j,h^{(j)}(\boldsymbol{x})\leq0\} S={x∣∀i,g(i)(x)=0and∀j,h(j)(x)≤0} 。其中涉及 g ( i ) g^{(i)} g(i) 的等式称为等式约束( equality constraint),涉及 h ( j ) h^{(j)} h(j) 的不等式称为不等式约束( inequality constraint)。
我们为每个约束引入新的变量 λ i \lambda ^i λi 和 α j \alpha ^j αj,这些新变量被称为KKT 乘子。 广义Lagrangian 可以如下定义: L ( x , λ , α ) = f ( x ) + ∑ i λ i g ( i ) ( x ) + ∑ j α j h ( j ) ( x ) L(\boldsymbol{x,\lambda,\alpha})=f(\boldsymbol{x})+\boldsymbol{\displaystyle\sum_i}\lambda ^ig^{(i)}(\boldsymbol{x})+\boldsymbol{\displaystyle\sum_j}\alpha ^jh^{(j)}(\boldsymbol{x}) L(x,λ,α)=f(x)+i∑λig(i)(x)+j∑αjh(j)(x)现在,我们可以通过优化无约束的广义 Lagrangian 解决约束最小化问题。只要存在至少一个可行点且 f ( x ) f(\boldsymbol{x}) f(x) 不允许取 ∞ \infin ∞,那么 m i n x m a x λ m a x α , α ≥ 0 L ( x , λ , α ) \underset{\boldsymbol{x}}{min}\,\underset{\boldsymbol{\lambda}}{max}\,\underset{\boldsymbol{\alpha,\alpha\geq0}}{max}\,L(\boldsymbol{x,\lambda,\alpha}) xminλmaxα,α≥0maxL(x,λ,α)与如下函数有相同的最优目标函数值和最优点集 x \boldsymbol{x} x m i n x ∈ S f ( x ) \underset{\boldsymbol{x}\in \mathbb{S}}{min}\, f(\boldsymbol{x}) x∈Sminf(x)这是因为当约束满足时, m a x λ m a x α , α ≥ 0 L ( x , λ , α ) = f ( x ) \underset{\boldsymbol{\lambda}}{max}\,\underset{\boldsymbol{\alpha,\alpha\geq0}}{max}\,L(\boldsymbol{x,\lambda,\alpha})=f(\boldsymbol{x}) λmaxα,α≥0maxL(x,λ,α)=f(x)而违反任意约束时, m a x λ m a x α , α ≥ 0 L ( x , λ , α ) = ∞ \underset{\boldsymbol{\lambda}}{max}\,\underset{\boldsymbol{\alpha,\alpha\geq0}}{max}\,L(\boldsymbol{x,\lambda,\alpha})=\infin λmaxα,α≥0maxL(x,λ,α)=∞
因为当不满足约束时优化过程中约束项将无限制的增长。