支持向量机:图解KKT条件和拉格朗日乘子法
前言
支持向量机求解最优化参数的过程中需要用到拉格朗日乘子法和KKT条件,本文用清晰易懂的图解法说明拉格朗日乘子法和KKT条件的含义,希望能够帮助你理解这种最优化思想。
最优化问题
本文讨论各种约束条件下的f(x,y)的最小值。
函数等高线和梯度
等高线如下图,同心圆为等高线,圆的半径越大,等高线也越大,即f(x,y)值越大。
梯度方向是函数增加最快的方向,即等高线的法向量方向,图示的绿色箭头为梯度方向。
无约束条件下的最小值
单一约束条件下的最小值
(1)
解法:
约束区域为绿色虚线区域,因此,目标函数最小值为0。
(2)修改约束条件:
图解法:
上图,当f(x,y)的等高线与约束条件的边界直线相切时,f(x,y)有最小值。
拉格朗日乘子法:
结合图解法理解拉格朗日乘子法的含义:
由(4.6)式的梯度关系,表示在图形的含义如下图:
如上图,拉格朗日乘子α的含义是约束条件边界直线的法向量与目标函数等高线的法向量是共线向量,结合约束边界直线在C点的定义(g(x,y)=0),即KKT条件,表示为:
讨论
本节简单讨论上面为未提及的两种情况:
(1)增加约束条件h(x,y)=0
写成拉格朗日函数:
图形表示如下:
目标函数的梯度可以表示为约束条件的梯度展开的向量空间,系数为拉格朗日乘子α和β。若再增加限制条件,结论是一致的。
(2)拉格朗日乘子α的取值情况
当目标函数的最优解在约束条件的区域内时,拉格朗日乘子α=0;如下图:
最优解是对应的红色实心圆,α=0。
当目标函数的最优解在约束条件的边界直线内时,拉格朗日乘子α>0,如下图:
最优解是对应的黑色实心圆,拉格朗日乘子α>0。
参考
https://www.matongxue.com/madocs/987/