凸优化、拉格朗日乘子、KKT条件

      在学校开的机器学习课上老师讲了拉格朗日乘子和KKT条件,当时百思不得其解啊,为什么约束区域如果不包括可行解(全局最优解),那么最优解一定在边界上?后来在网上查了凸优化的性质:Convex optimization is a subfield of optimization that studies the problem of minimizing convex functions over convex sets. The convexity makes optimization easier than the general case since local minimum must be a global minimum, and first-order conditions are sufficient conditions for optimality. (摘自维基百科Convex Optimization)

      What?? 所以凸优化问题中,局部最优解就是全局最优解,好吧,那么问题就显而易见了。(本人理解的显而易见,如果理解错误还望大神指出)以下把老师的讲解过程贴出,权当复习,数学味道比较淡,比较好直观理解。

1. 等式极值问题

      如下图,二维平面上,f(x,y)形成的一圈一圈的形状看成等高线(d1>d2),对应了不同的函数值,假设越往中间,函数值越小。

      约束条件为绿色的线,所有可能的取值必须满足绿色曲线的方程,也即必须在线上。有数学分析知识我们知道,曲线的梯度方向即曲线的法线方向,而且一个函数的负梯度方向就是函数的最快下降方向(详情可以看数学分析3)。当我们在绿色的曲线上不断滑动的时候,运动的方向是曲线的切线方向。稍加分析可以看出:

  •       如果在绿线的某一点处的切线与f(x,y)的负梯度方向夹角为锐角,那么沿着曲线继续朝相同方向运动,之后的点的函数值总会比之前的小;
  •       如果在绿线的某一点处的切线与f(x,y)的负梯度方向夹角为钝角,那么沿着曲线继续朝相同方向运动,之后的点的函数值总会比之前的大;

       也就是说,如果移动方向与负梯度方向锐角时候,总是朝极小值移动的,所以只有在两者垂直的时候,无论超哪个方向,都远离极值点。因此有拉格朗日条件极值方法的第一个条件。两者的梯度方向相同(梯度与切线方向垂直)



凸优化、拉格朗日乘子、KKT条件_第1张图片


2. 不等式极值问题:

对于不等式极值问题,首先把优化问题都转化为标准形式:

约束条件为ci(x)

分情况讨论:

1.约束区域包含最小值,对应于λi=0的情况,约束条件不起作用

2. 约束区域不包含最小值,即最小值在约束边界上,对应于λi0的情况,化为等式条件

所以KKT条件即:

凸优化、拉格朗日乘子、KKT条件_第2张图片

更图文并茂的讲解见:约束优化方法之拉格朗日乘子法与KKT条件

以上就是我对凸优化、KKT、拉格朗日的简单理解。

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