\(\frac{以梦为马}{晨凫追风}\)

最优化问题的最优性条件,最优化问题的解的必要条件和充分条件

无约束问题的解的必要条件
\(f(x)\)在\(x\)处的梯度向量是0

有约束问题的最优性条件

等式约束问题的必要条件:

一个条件,两变量

\(min f(x)=f([x]_1,[x]_2)\)
\(s.t. c(x)=c([x]_1,[x]_2)=0\)

则最优解的必要条件如下面式子所示:

\(\triangledown f(x^*)+\alpha^* \triangledown c(x^*)=0\)
\(c(x^*)=0\)

\(\alpha^*\)是常数,即存在一个常数使得约束条件和待优化问题的梯度之和为0
上面就把它当成一个结论吧,具体推导见《数据挖掘中的新方法——支持向量机》

这里的理解是:

在\(x满足c(x_1,x_2)=0\)的条件下去寻找一个\(\mathbf x\)来使得\(f(x)\)最小。其实这个点就是在满足约束条件\(c(x)=0\)的曲面上。
来这样理解一下:

\(c(x)\)是曲线,画出\(f(x)=k\)的等高线,当然了在\(x=4\)的位置两者相交,但是二者不是相切的,这样就还能移动x点去寻找更低的点来满足最小化,其实这里要找的点就是二者相切的点,这样就能保证最小值,相切的时候,目标函数的梯度肯定正交于约束曲面,此时就有了
\(\triangledown f(x^*)+\alpha^* \triangledown c(x^*)=0\)

上面的\(z\)是待优化的函数,\(c(x_1,x_2)\)是约束的等式条件,注意这里面的\(x_1,x_2\)是在平面上的(联想圆锥曲线)然后把z的等高线投影到\(x_1,x_2\)平面上,在该平面上的约束条件上面的点就是该x取值的可行域,在这些点里面选取的x使得目标函数最小。当等高线与\(c(x_1,x_2)\)相交时,在等高线内部肯定还有满足\(z\)更小的\(x_1,x_2\),只有当等高线与\(c(x_1,x_2)\)相切时,等高线内部就没有了点使得优化函数更小,于是就必须是等高线的梯度方向和约束曲线的方向相同或者一致,这样才能保证相切,于是就有了式子

\(\triangledown f(x^*)+\alpha^* \triangledown c(x^*)=0\)

引入拉格朗日函数

\(L(x,\alpha)=L([x]_1,[x]_2,\alpha)=f([x]_1,[x]_2)+\alpha c([x]_1,[x]_2)\)

上面的条件就变成:
\(\triangledown_x L(x^*,\alpha^*)=\triangledown f(x^*)+\alpha^* \triangledown c(x^*)=0\)
\(\triangledown_\alpha L(x^*,\alpha^*)=c(x^*)=0\)

推广到两个约束条件,三个变量的问题

\(min f(x)=f([x]_1,[x]_2,[x]_3)\)
\(s.t. c_i(x)=c_i([x]_1,[x]_2,[x]_3)=0\)

它的最优解的必要条件是:
\(\triangledown f(x^*)+\alpha^*_1 \triangledown c_1(x^*)+\alpha^*_2 \triangledown c_2(x^*)=0\)
\(c_1(x^*)=0\)
\(c_2(x^*)=0\)

引入拉格朗日函数

\(L(x,\alpha)=L([x]_1,[x]_2,[x]_3,\alpha_1,\alpha_2)=f([x]_1,[x]_2,[x]_3)+\alpha_1 c_1([x]_1,[x]_2,[x]_3)+\alpha_2 c_2([x]_1,[x]_2,[x]_3)\)

于是最优化条件变成:
\(\triangledown_x L(x^*,\alpha^*)=\triangledown f(x^*)+\alpha^*_1 \triangledown c_1(x^*)+\alpha^*_2 \triangledown c_2(x^*)=0\)
\(\triangledown_\alpha L(x^*,\alpha^*)=\mathbf c(x^*)=0\)

然后是多变量,多\(q\)条件约束:
引入拉格朗日函数
\(L(x,\alpha)=L([x]_1,[x]_2,\cdots,[x]_n,\alpha_1,\cdots,\alpha_q)=f([x]_1,[x]_2)+\sum\limits_{i=1}^q\alpha_i c_i([x]_1,[x]_2)=f(x)+\alpha^Tc(x)\)

当\(x^* = ([x]_1^*,[x]_2^*,\cdots,[x]_n^*)\)是该问题的局部最优解,且约束函数在\(x^*\)处的梯度向量\(\triangledown c_1(x^*),\cdots,\triangledown c_q(x^*)\)线性无关此时\(x^*\)则存在q维向量:\(\mathbf{\alpha}^*=(\alpha^*_1,\cdots,\alpha^*_q)\)满足下面条件

\(\triangledown_x L(x^*,\alpha^*)=\triangledown f(x^*)+\sum\limits_{i=1}^{q}\alpha^*_i \triangledown c_i(x^*)=\triangledown f(x^*)+\triangledown \mathbf{c}(x^*)\mathbf{\alpha}^*=0\)
\(\triangledown_\alpha L(x^*,\alpha^*)=\mathbf {c}(x^*)=0\)

其中\(\triangledown \mathbf{c}(x^*)\)是以\(\triangledown c_1(x^*),\cdots,\triangledown c_q(x^*)\)为列的矩阵,注意这里的\(\mathbf{c}(x^*),\mathbf{\alpha}^*\)是向量形式

不等式约束时候的条件

最简单的不等式约束问题

\(min f(x)=f([x]_1,[x]_2,[x]_3)\)
\(s.t. c_i(x)=c_i([x]_1,[x]_2,[x]_3)\leq0\)

此时的问题类比于上面的等式约束,并引入拉格朗日函数\(L(x,\alpha)=f(x)+\alpha c(x)\)

此时的条件要满足的是:

\(\triangledown_x L(x^*,\alpha^*)=\triangledown f(x^*)+\alpha^* \triangledown c(x^*)=0\)
\(c(x^*)\leq0\)
\(\alpha^*\geq0\)
\(\alpha^*c(x^*)=0\)

这里最后一个条件是\(\alpha^*c(x^*)=0\),包含是\(\alpha^* = 0\)或者\(c(x^*)=0\)
此时的两种情况是:当\(x^*\)在约束条件内部的时候,该问题变成了\(f(x)\)的无约束最值问题,此时有

\(\triangledown f(x^*) = 0,\qquad c(x^*) < 0\)

当在约束条件边缘取值的时候,该问题变成等式的约束问题
\(\triangledown f(x^*)+\triangledown \mathbf{c}(x^*)\mathbf{\alpha}^*=0\)
\(\mathbf {c}(x^*)=0\)
\(\alpha^*\geq 0\)

一般不等式约束问题

引入Lagrange函数
\(L(x,\alpha)=f(x)+\sum\limits_{i=1}^p \alpha_i c_i(x)=f(x)+\mathbf {\alpha}^T\mathbf{c}(x)\)

该约束问题最优解的必要条件就是

\(\triangledown_x L(x^*,\alpha^*)=\triangledown f(x^*)+ \sum\limits_{i=1}^{p} \alpha^*_i\triangledown c_i(x^*)=\triangledown f(x^*)+ \triangledown c(x^*)\mathbf{\alpha}^*=0\)
\(c_i(x^*)\leq0\) \(i=1,\cdots ,p\)
\(\alpha^*_i\geq0\) \(i=1,\cdots ,p\)
\(\alpha_i^*c_i(x^*)=0\) \(i=1,\cdots ,p\)

其中\(\triangledown \mathbf{c}(x^*)\)是一个以\(\triangledown c_1(x^*),\triangledown c_2(x^*),\cdots,\triangledown c_p(x^*)\)列矩阵

综合上面的结论就导出了下面的KKT条件
KKT条件一般约束问题的必要条件

考虑一般问题:
\(min f(x)\)
\(s.t.c_i(x)\leq0\) \(i=1,\cdots ,p\)
\(c_i(x)=0\) \(i=p+1,\cdots ,p+q\)

优化问题\(f(x),c(x),i=1,\cdots ,p+q\)具有连续一阶偏导,\(x^*\)为问题的局部解。若在\(x^*\)处的有效约束梯度\(\triangledown c_i(x^*)\)线性无关,或者所有的约束函数都是线性函数,则存在\(p+q\)维向量\(\alpha^*=(\alpha^*_1,\alpha^*_2,\cdots,\alpha^*_{p+q})\)使得:

\(\triangledown_x L(x^*,\alpha^*)=\triangledown f(x^*)+ \sum\limits_{i=1}^{p+q} \alpha^*_i\triangledown c_i(x^*)=\triangledown f(x^*)+ \triangledown c(x^*)\mathbf{\alpha}^*=0\)
\(c_i(x^*)\leq0\) \(i=1,\cdots ,p\)
\(c_i(x^*)=0\) \(i=p+1,\cdots ,p+q\)
\(\alpha^*_i\geq0\) \(i=1,\cdots ,p\)
\(\alpha_i^*c_i(x^*)=0\) \(i=1,\cdots ,p\)

这里\(\triangledown \mathbf{c}(x^*)\)是一个以\(\triangledown c_1(x^*),\triangledown c_2(x^*),\cdots,\triangledown c_{p+q}(x^*)\)列矩阵即:

\(\triangledown \mathbf{c}(x^*)=(\triangledown c_1(x^*),\triangledown c_2(x^*),\cdots,\triangledown c_{p+q}(x^*))\)

把\(p+q\)维向量\(\alpha^*\)称为KKT乘子向量或者lagerange乘子向量,其分量\(\alpha^*_1,\alpha^*_2,\cdots,\alpha^*_{p+q}\)称为KKT乘子或者lagrange乘子

当优化问题为凸约束问题的时候上述的KKT条件变为最优解的充要条件

上面的方法就是为了在寻找多元函数在一组约束下的极值优化的方法,通过引入拉格朗日乘子,可以将有d个变量与k个约束条件的最优化问题转化为具有\(d+k\)个变量的无约束的优化问题进行求解

更为感性的理解这个条件就是:
引入了拉格朗日乘子,描述了在可行域边上的时候是等式约束的条件这时候用的是拉格朗日乘子法. 在可行域的内部是无约束的条件,或者是不等式约束的条件下变换出了KKT条件。归根结底的说KKT条件是拉格朗日乘子法的一个泛化

KKT包含了等式边缘和内部的条件两种情况

KKT条件和拉格朗日乘子法详解的更多相关文章

  1. 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    [整理]   在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有 ...

  2. 关于拉格朗日乘子法与KKT条件

    关于拉格朗日乘子法与KKT条件 关于拉格朗日乘子法与KKT条件   目录 拉格朗日乘子法的数学基础 共轭函数 拉格朗日函数 拉格朗日对偶函数 目标函数最优值的下界 拉格朗日对偶函数与共轭函数的联系 拉 ...

  3. 拉格朗日乘子法 - KKT条件 - 对偶问题

    接下来准备写支持向量机,然而支持向量机和其他算法相比牵涉较多的数学知识,其中首当其冲的就是标题中的拉格朗日乘子法.KKT条件和对偶问题,所以本篇先作个铺垫. 大部分机器学习算法最后都可归结为最优化问题 ...

  4. 机器学习——支持向量机(SVM)之拉格朗日乘子法,KKT条件以及简化版SMO算法分析

    SVM有很多实现,现在只关注其中最流行的一种实现,即序列最小优化(Sequential Minimal Optimization,SMO)算法,然后介绍如何使用一种核函数(kernel)的方式将SVM ...

  5. 装载:深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...

  6. Machine Learning系列--深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...

  7. 【机器学习】深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...

  8. 约束优化方法之拉格朗日乘子法与KKT条件

    引言 本篇文章将详解带有约束条件的最优化问题,约束条件分为等式约束与不等式约束,对于等式约束的优化问题,可以直接应用拉格朗日乘子法去求取最优值:对于含有不等式约束的优化问题,可以转化为在满足 KKT ...

  9. 机器学习——最优化问题:拉格朗日乘子法、KKT条件以及对偶问题

    1 前言 拉格朗日乘子法(Lagrange Multiplier)  和 KKT(Karush-Kuhn-Tucker)  条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不等 ...

随机推荐

  1. LoadRunner脚本增强技巧之检查点

    检查点的设置理解起来非常简单,就是要在服务器返回的页面中检查是否存在关键信息.检查点函数的错误会导致整个脚本运行结果的失败,通过这个功能可以方便地定位脚本运行中的逻辑错误.检查点的设置通常分为两种,一 ...

  2. Vue 自定义指令练习

    Vue.directive(id,definition)注册一个全局自定义指令,接收两个参数,指令ID以及定义对象 取值: <div v-demo="{ color: 'white', ...

  3. 【数据库_Mysql】查询当前年份的sql

    1.本年份 SELECT DATE_FORMAT(NOW(), '%Y'); 2.本月份(显示数字) SELECT DATE_FORMAT(NOW(), '%m'); 3.本月份(显示英文) SELE ...

  4. Docker学习笔记三:Docker部署Java web系统

    Docker部署Java Web系统 1.在root目录下创建一个路径test/app mkdir test && cd test&& mkdir app && ...

  5. After ZJOI2017 day2

    4.28早上6点左右就起了床,怀着紧张的心情,候到了7:45进考场 看到题,先0.5h看了看题意,yy一下,至少10+20+10. 首先是觉得T3可以搞一搞,先想到SA,很快就X掉了,思索一会儿,感觉 ...

  6. 输入三个数a,b,n,输出a和b不大于n的公倍数的个数

    题:输入三个数a,b,n,输出a和b不大于n的公倍数的所有个数. 这题的思想是先求得a和b的最大公约数,然后用a和b的积除以最大公约数,得到最小公倍数,再持续加上最小公倍数,直到超过n,记下n的个数. ...

  7. oAuth2.0理解

    转自http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 理解OAuth 2.0 作者: 阮一峰 日期: 2014年5月12日 OAuth是一个关 ...

  8. 驱动之NandFlash的介绍与应用20170209

    本文主要介绍的是NAND FLASH的介绍与应用,直接看个人笔记即可:

  9. USB驱动之CDC类的介绍与应用20160905

    USB的协议其实是很复杂的,如果要深入学习估计要一两年才能熟悉透.本文主要是讲如何使用官方已经写好的库进行二次开发,以达到我们自己使用的目的.我们知道USB可以用来接U盘,声卡,读卡器,鼠标键盘等等, ...

  10. 简述this,call,apply,bind之间的关系

    一.什么是this? this是JavaScript语言的一个关键字,它是函数运行时在函数体内部自动生成的一个对象,只能在函数体内部使用.函数的不同使用场合,this的指向不同. 在ES5中,this ...