最优化问题的三种情况
- 无约束条件:梯度下降法等(前面的文章已经有详细的描述)
- 等式约束条件:解决方法是消元法或者拉格朗日法。
- 不等式约束条件:一般用KKT(Karush Kuhn Tucker)条件对偶求解
等式约束条件下的优化算法
问题的数学描述: minxf(x),s.t.,hi(x)=0,i=1,2,..,I m i n x f ( x ) , s . t . , h i ( x ) = 0 , i = 1 , 2 , . . , I
消元法
根据约束条件消去一些未知数,使得问题变为无约束的优化问题,再用无约束条件的方法求解,但是有时候这样做很困难,甚至是做不到的。
拉格朗日法
拉格朗日函数为 F(x)=f(x)+∑iλihi(x) F ( x ) = f ( x ) + ∑ i λ i h i ( x ) ,对其求解偏导方程 ∂F∂x=0,∂F∂λi=0 ∂ F ∂ x = 0 , ∂ F ∂ λ i = 0 ,如果有 I I 个约束条件,就应该有 个方程。求出的方程组的解就可能是最优化值,将结果带回原方程验证,如果符合要求就可得到解。
拉格朗日乘子法的证明
从几何的角度看,如果找到了一个极值点,必然有极值点所在的等高面 f(x)=d f ( x ) = d 与约束曲面 hi(x)=0 h i ( x ) = 0 是相切的。否则,必然还可以沿着约束曲线继续走,找到一个更低的点,这意味着,在极值点:
∇f(x)=−λ∇h(x) ∇ f ( x ) = − λ ∇ h ( x )
因为约束曲面的交线的法线在各个约束曲面法线所组成的超平面上
∇f(x)=−sumiλi∇hi(x) ∇ f ( x ) = − s u m i λ i ∇ h i ( x )
因为拉格朗日函数为 F(x)=f(x)+∑iλihi(x) F ( x ) = f ( x ) + ∑ i λ i h i ( x ) ,那么有
∇xF(x)=∇xf(x)+sumiλi∇xhi(<