vlambda博客
学习文章列表

支持向量机:图解KKT条件和拉格朗日乘子法


前言

支持向量机求解最优化参数的过程中需要用到拉格朗日乘子法和KKT条件,本文用清晰易懂的图解法说明拉格朗日乘子法和KKT条件的含义,希望能够帮助你理解这种最优化思想。



最优化问题




本文讨论各种约束条件下的f(x,y)的最小值。


函数等高线和梯度




支持向量机:图解KKT条件和拉格朗日乘子法


等高线如下图,同心圆为等高线,圆的半径越大,等高线也越大,即f(x,y)值越大。

支持向量机:图解KKT条件和拉格朗日乘子法

梯度方向是函数增加最快的方向,即等高线的法向量方向,图示的绿色箭头为梯度方向。


无约束条件下的最小值




支持向量机:图解KKT条件和拉格朗日乘子法


单一约束条件下的最小值




(1)

支持向量机:图解KKT条件和拉格朗日乘子法

解法:

支持向量机:图解KKT条件和拉格朗日乘子法

约束区域为绿色虚线区域,因此,目标函数最小值为0。


(2)修改约束条件:


支持向量机:图解KKT条件和拉格朗日乘子法

图解法:

支持向量机:图解KKT条件和拉格朗日乘子法


上图,当f(x,y)的等高线与约束条件的边界直线相切时,f(x,y)有最小值。


拉格朗日乘子法:


支持向量机:图解KKT条件和拉格朗日乘子法


结合图解法理解拉格朗日乘子法的含义:


支持向量机:图解KKT条件和拉格朗日乘子法

由(4.6)式的梯度关系,表示在图形的含义如下图:

支持向量机:图解KKT条件和拉格朗日乘子法

如上图,拉格朗日乘子α的含义是约束条件边界直线的法向量与目标函数等高线的法向量是共线向量,结合约束边界直线在C点的定义(g(x,y)=0),即KKT条件,表示为:


支持向量机:图解KKT条件和拉格朗日乘子法


讨论




本节简单讨论上面为未提及的两种情况:

(1)增加约束条件h(x,y)=0

写成拉格朗日函数:

支持向量机:图解KKT条件和拉格朗日乘子法

图形表示如下:

支持向量机:图解KKT条件和拉格朗日乘子法

目标函数的梯度可以表示为约束条件的梯度展开的向量空间,系数为拉格朗日乘子α和β。若再增加限制条件,结论是一致的。


(2)拉格朗日乘子α的取值情况

当目标函数的最优解在约束条件的区域内时,拉格朗日乘子α=0;如下图:

支持向量机:图解KKT条件和拉格朗日乘子法

最优解是对应的红色实心圆,α=0。


当目标函数的最优解在约束条件的边界直线内时,拉格朗日乘子α>0,如下图:

最优解是对应的黑色实心圆,拉格朗日乘子α>0。


参考

https://www.matongxue.com/madocs/987/