\(\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. CPU测试--通过proc获取CPU信息

    adb shell cat /proc/stat | grep cpu > totalcpu0 此处第一行的数值表示的是CPU总的使用情况,所以我们只要用第一行的数字计算就可以了.下表解析第一行 ...

  2. Telnet 远程控制

    Telnet 远程控制 一.挂第3张盘,进入RPMS中: 挂盘:mount /dev/cdrom /mnt/cdrom 路径:cd /mnt/cdrom/RedHat/RPMS 二.将rpm文件复制到 ...

  3. liunx less 命令

    1.命令格式: less [参数]  文件 2.命令功能: less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会 ...

  4. Luogu4926 倍杀测量者(二分答案+差分约束)

    容易想到二分答案.问题变为判断是否所有条件都被满足,可以发现这是很多变量间的相对关系,取个log之后就是经典的差分约束模型了.特殊的地方在于某些人的分数已被给定,从每个人开始跑一遍最短路判断一下是否能 ...

  5. bzoj2213: [Poi2011]Difference(思维题)

       今天颓了一天T T 这题有两种写法... ①预处理出每种字符在原字符串中的位置,枚举两种字符作为最大值和最小值,把这两种字符的坐标归并排序,把最大值设为1,最小值设为-1,求最大子段和.注意因为 ...

  6. 【recording】gdoi2018

    怎么说..虽然感觉其实..不太想写游记.. 但是回来看着桌面上的课本还是忍不住了(想想班里进度就..qwq)还是写一下吧 Day x(x<0) 之前大家溜到首都开心集训了一波然后被虐的很开心.. ...

  7. 【字符串】KMP字符串匹配

    百度百科 Definition \(KMP\)算法是一个字符串匹配算法.他接收两个字符串\(A,B\),返回\(B\)在\(A\)中出现的所有位置. 以下称需要被匹配的串\(A\)为主串,可能在主串中 ...

  8. 相机标定 和 单应性矩阵H

    求解相机参数的过程就称之为相机标定. 1.相机模型中的四个平面坐标系: 1.1图像像素坐标系(u,v) 以像素为单位,是以图像的左上方为原点的图像坐标系: 1.2图像物理坐标系(也叫像平面坐标系)(x ...

  9. array_uintersect、array_uintersect_assoc、array_uintersect_uassoc 的使用方法

    和 array_intersect 类似,只不过 array_uintersect* 系列函数的值比较使用自定义函数: 键的比较,array_uintersect.array_uintersect_a ...

  10. Java中关于Arrays.asList方法的深入学习与理解

    Java的标准库中在java.util包下提供了很多实用的工具类,如:Arrays,Collections等工具类都提供了一些比较实用的方法.在实际的开发使用中,我们经常需要使用这样的需求:将一个数组 ...