拉格朗日乘数法,拉格朗日对偶和KKT约束

拉格朗日乘数法

拉格朗日乘数法是求变量在一个或多个约束下的极值问题

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 λx2y=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 λ就是拉格朗日乘子

拉格朗日对偶
  1. 原始问题:
    m i n f ( x ) minf(x) minf(x)
    \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad s.t. c i ( x ) ⩽ 0 , i = 1 , 2...... k c_i(x)\leqslant0,i=1,2......k ci(x)0i=1,2......k
    \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad h j ( x ) = 0 , j = 1 , 2.... l h_j(x)=0,j=1,2....l hj(x)=0,j=1,2....l
    本来只是求函数 f ( x ) f(x) f(x)的最小值,可以通过求导最后得出极值,但是题中还有约束条件,我们希望尽量消掉约束条件,为此,我们先引入广义拉格朗日函数
    L ( x , α , β ) = f ( x ) + ∑ i = 1 k a i c i ( x ) + ∑ j = 1 l b j ∗ h j ( x ) L(x,\alpha,\beta)=f(x)+\sum _{i=1}^{k}a_ic_i(x)+\sum_{j=1}^{l}b_j*h_j(x) L(x,α,β)=f(x)+i=1kaici(x)+j=1lbjhj(x)
    其中 a j , b j a_j,b_j aj,bj都是前面说过的拉格朗日乘子(即上文中的参数 λ \lambda λ),特别要求 a i ⩾ 0 a_i\geqslant0 ai0,我们用下标p表示原始问题,则原始问题可表示成:
    θ p ( x ) = min ⁡ a i ⩾ 0 L ( x , α , β ) \theta_p(x)=\min_{a_i\geqslant0} L(x,\alpha,\beta) θp(x)=ai0minL(x,α,β)
    考虑,如果 x x x违反约束条件,即 c i ( x ) > 0 c_i(x)>0 ci(x)>0或者 h j ( x ) ≠ 0 {h_j(x)} \neq {0} hj(x)̸=0,只要出现其中的某一种情况,则一定会使得 θ p ( x ) \theta_p(x) θp(x)的最大值为正无穷,由此我们可得 θ p ( x ) = f ( x ) \theta_p(x)=f(x) θp(x)=f(x)

θ 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αi0θD(x,α,β)=maxαi0minxL(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.ai0
称为原始问题的对偶问题。
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=αi0maxminL(x,α,β)minαi0maxL(x,α,β)=p
某些条件 d ∗ d^* d= p ∗ p^* p,则可以用对偶问题代替原始问题

KKT约束

上文说了在某些条件下,原始问题和对偶问题两者的极值相等,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)0ai0hj(x)=0
即这五个条件就被称为KKT约束。

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