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

Posted 人工智能爱好者社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持向量机:图解KKT条件和拉格朗日乘子法相关的知识,希望对你有一定的参考价值。


作者简介


前文回顾:




前言

支持向量机求解最优化参数的过程中需要用到拉格朗日乘子法和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/


- END -


回复 免费                获取免费课程

回复 直播                获取系列直播课

回复 Python           1小时破冰入门Python

回复 人工智能         从零入门人工智能

回复 深度学习         手把手教你用Python深度学习

回复 机器学习         小白学数据挖掘与机器学习

回复 贝叶斯算法      贝叶斯与新闻分类实战

回复 数据分析师      数据分析师八大能力培养

回复 自然语言处理  自然语言处理之AI深度学习


以上是关于支持向量机:图解KKT条件和拉格朗日乘子法的主要内容,如果未能解决你的问题,请参考以下文章

SVM之KKT条件理解

机器学习笔记——拉格朗日乘子法和KKT条件

一文理解拉格朗日对偶和KKT条件

支持向量机:SMO算法剖析

最优化之凸集凸函数上确界Jensen不等式共轭函数Fenchel不等式拉格朗日乘子法KKT条件

最优化之凸集凸函数上确界Jensen不等式共轭函数Fenchel不等式拉格朗日乘子法KKT条件