带约束的最优化问题,拉格朗日乘数法

求解等式约束下的最优化问题

假设最优化问题如下
min ⁡ f ( x ) s . t h ( x ) = 0 \begin{array}{cl}{\min } & {f(x)} \\ s.t & h(x)=\mathbf{0}\end{array} mins.tf(x)h(x)=0即只含等式约束的最优化问题,其中 x ∈ R n , f : R n → R , h : R n → R m , m ≤ n , h ∈ C 1 x\in R^n,f:R^n\rightarrow R,h:R^n\rightarrow R^m,m\le n,h\in C^1 xRn,f:RnR,h:RnRm,mn,hC1即约束函数连续可微。令 D h ( x ∗ ) Dh(x^*) Dh(x)为向量 h h h x ∗ x^* x处的雅克比矩阵。当且仅当 r a n k D h ( x ∗ ) = m rankDh(x^*)=m rankDh(x)=m时, x ∗ x^* x正则点,即此点的梯度向量 ▽ h ( x ) \triangledown h(x) h(x)线性无关。
引入拉格朗日定理
x ∗ x^* x f : R n → R f:R^n\rightarrow R f:RnR的局部极小点(极大点),约束条件为 h ( x ) = 0 , h : R n → R m , m ≤ n h(x)=\mathbf{0},h:R^n\rightarrow R^m,m\le n h(x)=0,h:RnRm,mn,如果 x ∗ x^* x是正则点,那么存在 λ ∈ R m \lambda\in R^m λRm使得 D f ( x ∗ ) + λ ∗ T D h ( x ∗ ) = 0 T Df(x^*)+\lambda^{*T}Dh(x^*)=\mathbf{0}^T Df(x)+λTDh(x)=0T该定理表明了若 x ∗ x^* x是极值点且为正则点,那么该点的目标函数 f f f的梯度可以表示为约束函数 h h h梯度的线性组合。不难看出拉格朗日定理就是无约束优化问题的一阶必要条件。
引入拉格朗日函数 L : R n × R m → R L:R^n ×R^m\rightarrow R L:Rn×RmR
L ( x , λ ) = f ( x ) + λ T h ( x ) L(x,\lambda)=f(x)+\lambda^{T}h(x) L(x,λ)=f(x)+λTh(x)存在一个向量 λ ∗ \lambda^* λ满足 D L ( x ∗ , λ ∗ ) = 0 T DL(x^*,\lambda ^*)=\mathbf{0}^T DL(x,λ)=0T D D D求导运算指的是对关于变量 [ x T , λ T ] T [x^T,\lambda^T]^T [xT,λT]T的导数,那么由此可知带约束的拉格朗日定理必要条件等价于无约束的将拉格朗日方程视为无约束优化问题的一阶必要条件。需要注意的是
拉格朗日条件是必要而非充分条件,即满足上述条件的点不一定是极值点。

我们现在可以使用拉格朗日法来对带等式约束的最优化问题求解,但还有不等式约束。因此我们需要将拉格朗日方法进行推广。

求解不等式约束下的最优化问题(KKT)

假设最优化问题如下 min ⁡ f ( x ) s . t h ( x ) = 0 g ( x ) ≤ 0 \begin{array}{cl}{\min } & {f(x)} \\ s.t & h(x)=\mathbf{0}\\&g(x)\le \mathbf{0}\end{array} mins.tf(x)h(x)=0g(x)0其中 x ∈ R n , f : R n → R , h : R n → R m , m ≤ n , g : R n → R p x\in R^n,f:R^n\rightarrow R,h:R^n\rightarrow R^m,m\le n,g:R^n\rightarrow R^p xRn,f:RnR,h:RnRm,mn,g:RnRp引入定义如下
对于不等式约束 g j ( x ) ≤ 0 g_j(x)\le0 gj(x)0,如果在点 x ∗ x^* x g j ( x ) = 0 g_j(x)=0 gj(x)=0,则称该不等式约束为 x ∗ x^* x处起作用约束;如果在 x ∗ x^* x g j ( x ) < 0 g_j(x)<0 gj(x)<0,则称该约束为 x ∗ x^* x处的不起作用约束。
x ∗ x^* x满足 g ( x ) ≤ 0 g(x)\le0 g(x)0, h ( x ) = 0 h(x)=\mathbf{0} h(x)=0, J ( x ∗ ) J(x^*) J(x)为起作用不等式约束的下标集: J ( x ∗ ) = { j : g j ( x ∗ ) = 0 } J(x^*)=\{j:g_j(x^*)=0\} J(x)={j:gj(x)=0}如果向量 ▽ h i ( x ∗ ) , ▽ g j ( x ∗ ) , 1 ≤ i ≤ m , j ∈ J ( x ∗ ) \triangledown h_i(x^*),\triangledown g_j(x^*),1\le i\le m,j\in J(x^*) hi(x),gj(x),1im,jJ(x)是线性无关的,则称 x ∗ x^* x是一个正则点。

某个满足约束的点是目标函数局部极小点的一阶必要条件,也被称为KKT条件定义如下

f , h , g ∈ C 1 f,h,g\in C^1 f,h,gC1, x ∗ x^* x h ( x ) = 0 , g ( x ) ≤ 0 h(x)=0,g(x)\le 0 h(x)=0,g(x)0的一个正则点和目标函数的局部极小点,则必然存在 λ ∗ T ∈ R m \lambda^{*T}\in R^m λTRm μ ∗ ∈ R p \mu^*\in R^p μRp使得以下条件成立:

  1. μ ∗ ≥ 0 \mu^*\ge0 μ0;
  2. D f ( x ∗ ) + λ ∗ T D h ( x ∗ ) + μ ∗ T D g ( x ∗ ) = 0 T Df(x^*)+\lambda^{*T}Dh(x^*)+\mu^{*T}Dg(x^*)=0^T Df(x)+λTDh(x)+μTDg(x)=0T;
  3. μ ∗ T g ( x ∗ ) = 0 \mu^{*T}g(x^*)=0 μTg(x)=0;

根据条件1与 g j ( x ∗ ) ≤ 0 g_j(x^*)\le 0 gj(x)0可推出不起作用约束的KKT乘子等于0,起作用约束的KKT乘子是非负的,既可以为0也可以大于0。

你可能感兴趣的:(机器学习)