拉格朗日乘数法是求变量在
一个或多个约束
下的极值问题
eg:已知双曲线 x y = 3 xy=3 xy=3,求曲线上距离原点最近的点。
由题我们可以得出如下式子:
m i n f ( x , y ) = x 2 + y 2 min f(x,y) =x^{2}+y^{2} minf(x,y)=x2+y2
\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad subject to constraint x y = 3 xy=3 xy=3 \quad → \to → \quad g ( x , y ) = 3 g(x,y)=3 g(x,y)=3
解:
求极值,意味着两条线在极值点处相切,即 Δ f = λ ∗ Δ g {\Delta f} = \lambda * \Delta g Δf=λ∗Δg
Δ f ( x , y ) Δ x = 2 x = λ ∗ Δ g ( x , y ) Δ x = λ ∗ y \frac{\Delta f\left ( x,y\right )}{\Delta x} = 2x = \lambda * \frac{\Delta g\left ( x,y\right )}{\Delta x} = \lambda * y ΔxΔf(x,y)=2x=λ∗ΔxΔg(x,y)=λ∗y
Δ f ( x , y ) Δ y = 2 y = λ ∗ Δ g ( x , y ) Δ y = λ ∗ x \frac{\Delta f\left ( x,y\right )}{\Delta y} = 2y = \lambda * \frac{\Delta g\left ( x,y\right )}{\Delta y} = \lambda * x ΔyΔf(x,y)=2y=λ∗ΔyΔg(x,y)=λ∗x
g ( x , y ) = 3 g(x,y) = 3 g(x,y)=3
2 x − λ y = 0 2x-\lambda y =0 2x−λy=0
λ x − 2 y = 0 \lambda x-2y=0 λx−2y=0
x y = 3 xy=3 xy=3
上述三个方程可以化解成矩阵进行求解:
[ 2 − λ λ − 2 ] ∗ [ x y ] = [ 0 0 ] \begin{bmatrix} 2 & -\lambda \\ \lambda & -2 \\ \end{bmatrix} * \begin{bmatrix} x \\ y \\ \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ \end{bmatrix} [2λ−λ−2]∗[xy]=[00]
只有在行列式值为0时,等式才成立并满足约束条件:
[ 2 − λ λ − 2 ] = − 4 + λ 2 = 0 ⇔ λ = ± 2 \begin{bmatrix} 2 & -\lambda \\ \lambda & -2 \\ \end{bmatrix} =-4+\lambda^2=0 \Leftrightarrow \lambda=\pm 2 [2λ−λ−2]=−4+λ2=0⇔λ=±2
最后可得 x = y = 3 或 者 x = y = − 3 x =y=\sqrt{3} 或者 x =y=-\sqrt{3} x=y=3或者x=y=−3,其中 λ \lambda λ就是拉格朗日乘子
。
广义拉格朗日函数
:拉格朗日乘子
(即上文中的参数 λ \lambda λ),特别要求
a i ⩾ 0 a_i\geqslant0 ai⩾0,我们用下标p表示原始问题,则原始问题可表示成: θ p ( x ) = { f ( x ) , x 满 足 约 束 关 系 + ∞ , x 不 满 足 约 束 关 系 \theta_p(x)=\left\{ \begin{aligned} f(x) \qquad ,x满足约束关系 \\ +\infty \qquad,x不满足约束关系 \end{aligned} \right. θp(x)={f(x),x满足约束关系+∞,x不满足约束关系
2. 对偶问题
θ D ( α , β ) = min x L ( x , α , β ) \theta_D(\alpha,\beta)=\min_xL(x,\alpha,\beta) θD(α,β)=xminL(x,α,β)
则最大化: max α i ⩾ 0 θ D ( x , α , β ) = max α i ⩾ 0 min x L ( x , α , β ) \max_{\alpha_i\geqslant0}\theta_D(x,\alpha,\beta) =\max_{\alpha_i\geqslant0}\min_xL(x,\alpha,\beta) maxαi⩾0θD(x,α,β)=maxαi⩾0minxL(x,α,β)称为广义拉格朗日函数的极大极小
问题。
将其转化为约束问题则为:
max θ D ( x , α , β ) = max min x L ( x , α , β ) \max\theta_D(x,\alpha,\beta)=\max\min_xL(x,\alpha,\beta) maxθD(x,α,β)=maxxminL(x,α,β)
s . t . a i ⩾ 0 \qquad \qquad\\s.t. \qquad a_i\geqslant0 s.t.ai⩾0
称为原始问题的对偶问题。
3. 原始问题和对偶问题的关系
定理,若原始问题和对偶问题都有
最优值
,则:
d ∗ = max α i ⩾ 0 min L ( x , α , β ) ⩽ min max α i ⩾ 0 L ( x , α , β ) = p ∗ d^*=\max_{\alpha_i\geqslant0}\min L(x,\alpha,\beta)\leqslant\min\max _{\alpha_i\geqslant0}L(x,\alpha,\beta)=p^* d∗=αi⩾0maxminL(x,α,β)⩽minαi⩾0maxL(x,α,β)=p∗
在某些条件
下 d ∗ d^* d∗= p ∗ p^* p∗,则可以用对偶问题代替原始问题
上文说了在某些条件下
,原始问题和对偶问题两者的极值相等,KKT约束主要就是在说这个某些条件具体指的是什么条件。
需满足 f ( x ) f(x) f(x)和 c i ( x ) c_i(x) ci(x)都是凸函数, h j ( x ) h_j(x) hj(x)为仿射函数( h j ( x ) = ω ∗ X + b h_j(x)=\omega*X+b hj(x)=ω∗X+b),并且不等式约束条件 c i ( x ) c_i(x) ci(x)一定要满足,即对偶的参数 x ∗ , α ∗ , β ∗ x^*,\alpha^*,\beta^* x∗,α∗,β∗要满足:
{ Δ x L ( x ∗ , α ∗ , β ∗ ) = 0 Δ ∗ α i c i ( x ∗ ) = 0 , i = 1 , 2..... k c i ( x ∗ ) ⩽ 0 a i ∗ ⩾ 0 h j ( x ∗ ) = 0 \left\{ \begin{aligned} \Delta_x L(x^*,\alpha^*,\beta^*) =0 \\ \Delta^*\alpha_ic_i(x^*)=0 ,i=1,2.....k\\ c_i(x^*)\leqslant0\\ a_i^*\geqslant0\\ h_j(x^*)=0 \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧ΔxL(x∗,α∗,β∗)=0Δ∗αici(x∗)=0,i=1,2.....kci(x∗)⩽0ai∗⩾0hj(x∗)=0
即这五个条件就被称为KKT约束。