KKT条件初步理解

 

       最近学习的时候用到了最优化理论,但是我没有多少这方面的理论基础。于是翻了很多大神的博客把容易理解的内容记载到这篇博客中。因此这是篇汇总博客,不算是全部原创,但是基础理论,应该也都差不多吧。因才疏学浅,有纰漏的地方恳请指出。

      KKT条件是解决最优化问题的时用到的一种方法。我们这里提到的最优化问题通常是指对于给定的某一函数,求其在指定作用域上的全局最小值。提到KKT条件一般会附带的提一下拉格朗日乘子。对学过高等数学的人来说比较拉格朗日乘子应该会有些印象。二者均是求解最优化问题的方法,不同之处在于应用的情形不同。

      一般情况下,最优化问题会碰到一下三种情况:

(1)无约束条件

    这是最简单的情况,解决方法通常是函数对变量求导,令求导函数等于0的点可能是极值点。将结果带回原函数进行验证即可。

(2)等式约束条件

     设目标函数为f(x),约束条件为hk(x),形如

     s.t. 表示subject to ,“受限于”的意思,l表示有l个约束条件。

     则解决方法是消元法或者拉格朗日法。消元法比较简单不在赘述,拉格朗日法这里在提一下,因为后面提到的KKT条件是对拉格朗日乘子法的一种泛化。

     定义拉格朗日函数F(x),

     其中λk是各个约束条件的待定系数。                                                           

 

     然后解变量的偏导方程:

      ......,

     如果有l个约束条件,就应该有l+1个方程。求出的方程组的解就可能是最优化值(高等数学中提到的极值),将结果带回原方程验证就可得到解。

     至于为什么这么做可以求解最优化?维基百科上给出了一个比较好的直观解释。

     举个二维最优化的例子:

     min f(x,y) 

     s.t. g(x,y) = c

     这里画出z=f(x,y)的等高线(函数的等高线定义:二元函数z = f(x,y)在空间表示的是一张曲面,这个曲面与平面z = c的交线在xoy面上的投影曲线f(x,y)=c称为函数z=f(x,y)的一条登高线。):

       绿线标出的是约束的点的轨迹。蓝线是的等高线。箭头表示斜率,和等高线的法线平行。从梯度的方向上来看,显然有。绿色的线是约束,也就是说,只要正好落在这条绿线上的点才可能是满足要求的点。如果没有这条约束,的最小值应该会落在最小那圈等高线内部的某一点上。而现在加上了约束,最小值点应该在哪里呢?显然应该是在的等高线正好和约束线相切的位置,因为如果只是相交意味着肯定还存在其它的等高线在该条等高线的内部或者外部,使得新的等高线与目标函数的交点的值更大或者更小,只有到等高线与目标函数的曲线相切的时候,可能取得最优值。

如果我们对约束也求梯度,则其梯度如图中绿色箭头所示。很容易看出来,要想让目标函数的等高线和约束相切,则他们切点的梯度一定在一条直线上。

即:∇f(x,y)=λ(∇g(x,y)-C) 
其中λ可以是任何非0实数。

       一旦求出λ的值,将其套入下式,易求在无约束极值和极值所对应的点。

       这就是拉格朗日函数的由来。

 

(3)不等式约束条件

       设目标函数f(x),不等式约束为g(x),有的教程还会添加上等式约束条件h(x)。此时的约束优化问题描述如下:

      则我们定义不等式约束下的拉格朗日函数L,则L表达式为:

      其中f(x)是原目标函数,hj(x)是第j个等式约束条件,λj是对应的约束系数,gk是不等式约束,uk是对应的约束系数。0

      此时若要求解上述优化问题,必须满足下述条件(也是我们的求解条件):

      这些求解条件就是KKT条件。(1)是对拉格朗日函数取极值时候带来的一个必要条件,(2)是拉格朗日系数约束(同等式情况),(3)是不等式约束情况,(4)是互补松弛条件,(5)、(6)是原约束条件。

      对于一般的任意问题而言,KKT条件是使一组解成为最优解的必要条件,当原问题是凸问题的时候,KKT条件也是充分条件。

       关于条件(3),后面一篇博客中给出的解释是:我们构造L(x,λ,u)函数,是希望L(x,λ,u)<=f(x)的(min表示求最小值)。在L(x,λ,u)表达式中第二项为0,若使得第三项小于等于0就必须使得系数u>=0,这也就是条件(3)。

       关于条件(4),直观的解释可以这么看:要求得L(x,λ,u)的最小值一定是三个公式项中取得最小值,此时第三项最小就是等于0值的时候。稍微正式一点的解释,是由松弛变量推导而来。

为方便表示,举个简单的例子:

现有如下不等式约束优化问题:

此时引入松弛变量可以将不等式约束变成等式约束。设a1和b1为两个松弛变量,则上述的不等式约束可写为:

则该问题的拉格朗日函数为:

根据拉格朗日乘子法,求解方程组:

同样 u2b1=0,来分析g2(x)起作用和不起作用约束。

于是推出条件:

原文地址:https://blog.csdn.net/taotaofu/article/details/56843224 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NLP复习资料(3)-六~七章:马尔科夫模型与条件随机场、词法分析与词性标注

NLP复习资料1.第六章 马尔科夫模型与条件随机场2.第七章 词法分析与词性标注国科大&#xff0c;宗老师《自然语言处理》课程复习笔记&#xff0c;个人整理&#xff0c;仅供参考。1.第六章 马尔科夫模型与条件随机场 1.马尔科夫模型&#xff1a;P6系统每一时刻的状态只与前一个…

redis——实战点赞

点赞功能随处可见&#xff0c;我们都知道点赞是一个非常高频的操作&#xff0c;redis就非常适合做这种工作。 实现效果&#xff1a; 分析&#xff1a;三种类型&#xff1a;给帖子点赞&#xff0c;给评论点赞&#xff0c;给回复点赞 我们只实现查看点赞数量的话&#xff0c;只…

network

1.网络结构 在OSI参考模型中&#xff0c;物理层的作用是透明的传输比特流。对等实体在一次交互作用中传送的信息单位称为协议数据单元&#xff0c;它包括控制信息和用户数据两部分。上下层实体之间的接口称为服务访问点(SAP)&#xff0c;网络层的服务访问点也称为网络地址&…

NLP复习资料(4)-第八章 句法分析

NLP复习资料-第八章国科大&#xff0c;宗老师《自然语言处理》课程复习笔记&#xff0c;个人整理&#xff0c;仅供参考。第八章&#xff1a;语法理论&#xff08;第三章的后续&#xff09; 1.出发点chomsky的四类文法过于泛化&#xff0c;生成能力太强了&#xff0c;会生成没有…

大数据学习(10)--流计算

文章目录目录1.流计算的概述1.1 什么是流数据&#xff1f;1.2 批量计算和实时计算1.3 流计算的概念1.4 流计算和Hadoop1.5 流计算框架2.流计算的处理流程2.1 流计算处理基本概念2.2 数数据的实时获取2.3 数据的实时计算2.4 实时查询任务3.流计算的应用和开源框架Strom3.1 流计算…

network---written test

1、OSI&#xff08;Open System Interconnect&#xff09;&#xff1a;开放系统互联&#xff0c;是一个七层的计算机网络模型&#xff0c;分别为&#xff1a;物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 TCP/IP&#xff08;Transmission Control Protocol/…

redis——实战关注

效果&#xff1a; 思路&#xff1a;很好想&#xff0c;把自己的粉丝和自己关注的人都存起来&#xff08;set即可&#xff09;&#xff0c;做增删改查。 package com.now.community.community.service;import com.now.community.community.entity.User; import com.now.commun…

NLP复习资料(5)-第九章 句法分析

NLP复习资料-第九章1.短语结构分析2.短语结构分析方法的评估指标3依存句法分析器设计P134依存句法分析器性能评价5短语结构与依存结构能够相互转换6汉英句法结构对比7汉语长句的层次化句法分析国科大&#xff0c;宗老师《自然语言处理》课程复习笔记&#xff0c;个人整理&#…

神经网络中的优化算法总结

在调整模型更新权重和偏差参数的方式时&#xff0c;你是否考虑过哪种优化算法能使模型产生更好且更快的效果&#xff1f;应该用梯度下降&#xff0c;随机梯度下降&#xff0c;还是Adam方法&#xff1f; 这篇文章介绍了不同优化算法之间的主要区别&#xff0c;以及如何选择最佳的…

OS --written test1

241&#xff0e;在提供虚拟存储的系统中&#xff0c;用户的逻辑地址空间主要受( )的限制。A.内存空闲块的大小 B&#xff0e;外存的大小 C&#xff0e;计算机编址范围 D&#xff0e;页表大小答案&#xff1a;C242&#xff0e;在分时系统中&#xff0c;时间片一定&#xff0c;( …

Java开发需要知道的HTML知识

概述 HTML(HyperText Markup Language) 不是一门编程语言&#xff0c;而是一种用来告知浏览器如何组织页面的标记语言。 HTML 可复杂、可简单&#xff0c;一切取决于开发者。它由一系列的元素组成&#xff0c;这些元素可以用来包围不同部分的内容&#xff0c;使其以某种方式呈…

OS-written test2

操作系统各大公司笔试题汇总 1、在段页式存储管理中&#xff0c;其虚拟地址空间是&#xff08;&#xff09; A、一维 B、二维 C、三维 D、层次 答案&#xff1a;B 2、采用( )不会产…

Ubuntu18.04上安装RTX 2080Ti显卡驱动

文章目录1.安装Linux系统1.1下载Linux镜像文件1.2 制作系统盘1.3 安装Linux系统1.4 配置linux系统2.安装英伟达显卡驱动2.1 预备工作2.2 安装显卡驱动3.安装cuda4.安装cudnn1.安装Linux系统 1.1下载Linux镜像文件 根据电脑配置和自己的爱好&#xff0c;选择合适的Linux镜像文…

OS

操作系统笔试题及答案一 1&#xff0e;在下列系统中&#xff0c;( )是实时系统。 A.计算机激光照排系统 B.航空定票系统 C&#xff0e;办公自动化系统 D.计算机辅助设计系统 答案&#xff1a;B 2&#xff0e;操作系统是一种( )。 A.应用软件 B&#xff0e;系统软件 C&#xff…

NLP复习资料(6)-第十章 语义分析

NLP复习资料-第十章1语义理论简介2格语法4语义网络5词义消歧5语义角色标注6词向量表示7篇章分析国科大&#xff0c;宗老师《自然语言处理》课程复习笔记&#xff0c;个人整理&#xff0c;仅供参考。语义分析&#xff1a;P3解释句子或篇章的含义&#xff0c;主要困难&#xff08…

处理机调度与死锁

处理机调度与死锁 处理机调度的层次 高级调度 高级调度又称为作业调度或长程调度&#xff0c;其主要功能是根据某种算法&#xff0c;把外存上处于后备队列中的那些作业调入内存&#xff0c;也就是说&#xff0c;它的调度对象是作业。 1.作业和作业步 作业&#xff1a;一个比程…

各种卷积

从最开始的卷积层&#xff0c;发展至今&#xff0c;卷积已不再是当初的卷积&#xff0c;而是一个研究方向。在反卷积这篇博客中&#xff0c;介绍了一些常见的卷积的关系&#xff0c;本篇博客就是要梳理这些有趣的卷积结构。 阅读本篇博客之前&#xff0c;建议将这篇博客结合在一…

springboot——kaptcha

导入包&#xff1a; <dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version></dependency> 配置类&#xff1a; package com.now.community.community.config;import…

NLP复习资料(7)-机器翻译、文本分类、情感分析

NLP复习资料国科大&#xff0c;宗老师《自然语言处理》课程复习笔记&#xff0c;个人整理&#xff0c;仅供参考。此部分为手稿&#xff0c;高清图下载见链接&#xff1a;https://download.csdn.net/download/sinat_40624829/11662412

XMl文件解析读取

DOM方式&#xff1a; http://www.w3schools.com/dom/dom_parser.asp