KKT (LICQ)
H. E. Krogstad, TMA 4180 Optimeringsteori KARUSH-KUHN-TUCKER THEOREM
KKT条件在处理有约束问题的时候很有用, 但是对KKT的适用性一直不是很理解, 看了这篇讲解整理一下.
基本内容
问题
\min_{x \in \Omega} f(x),
\]
在等式约束条件:
c_i(x) = 0, i \in \xi,
\]
及不等约束条件:
c_i(x) \ge 0, i \in \mathcal{I}.
\]
不妨就记
\]
在不等式约束中, 即只有当我们所寻的极值点\(x^*\)处, \(c_i(x^*)=0, i \in \mathcal{I}\)称之为激活不等式约束(active inequality constraints), 否则为不激活的, 我们记激活的不等式约束和等式约束为\(\mathcal{A}\).
注: 均连续可微.
对于任意一个可行点\(x_0\), 令\(x(t), t\ge 0\)为一连续路径, 满足\(t\rightarrow 0, x(t) \rightarrow x_0\),定义\(d\)为:
\]
有如下性质:
\nabla c_i(x) d = 0, i \in \xi \\
\nabla c_i(x) d \ge 0, i \in \mathcal{I \cap A},
\]
其中, 我们假设梯度向量为行向量.
证明:
\]
两边同除以\(\|x(t)-x_0\|\), 并令\(t \rightarrow 0\)即可得.
\]
与上面同样的操作即可得.
我们把这些由路径引导出来的可行方向\(d\)的集合记为
\mathcal{T}(x) = \{d: d \: feasible \: di rection \: out \: from \: x\}.
\]
而记满足\((8, 9)\)的一切\(d\)的集合记为\(\mathcal{F}(x)\), 显然\(\mathcal{T}(x) \subset \mathcal{F}(x)\), 且均为锥(即\(d\)属于此集合, 则\(\alpha d, \alpha > 0\)也属于此集合).
LICQ 假设
点\(x_0\)满足LICQ假设, 当
\{\nabla c_i(x_0)\}, i \in \mathcal{A},
\]
是线性独立的.
线性不独立: 当集合中存在一个向量能够由其他向量线性表出, 否则称此集合线性独立. 显然这是比线性无关更强的一个概念.
KKT 定理
假设\(x^*\)是问题(1)在等式约束(2)以及不等式约束(3)的限制下的局部最小值点, 且满足LICQ假设. 则存在\(\lambda_i^*\)满足:
\nabla f(x^*) = \sum_{i \in \xi \cup \mathcal{I}} \lambda_i^* \nabla c_i(x^*),
\]
且
\begin{array}{lc}
(i) & \lambda_i^* \cdot c_i(x^*) = 0, i \in \xi \cup \mathcal{I}, \\
(ii) & \lambda_i^* \ge 0, i \in \mathcal{I}.
\end{array}
\]
KKT定理的证明
记:
\left [
\begin{array}{c}
\nabla c_1(x) \\
\vdots \\
\nabla c_m(x)
\end{array}
\right ]
\]
属于\(\mathcal{A}\)的所有\(c_i\)的梯度的综合表示,
\]
引理A
引理A: 当\(x \in \R^n\)满足LICQ假设, 则\(\mathcal{T}(x) = \mathcal{F}(x)\).
证明:
既然\(\mathcal{T}(x) \subset \mathcal{F}(x)\), 我们只需要证明\(\mathcal{F}(x) \subset \mathcal{T}(x)\).
下面, \(\forall d \in \mathcal{F}(x)\), 我们将构造\(y(t), t \ge 0\), 为一连续的起点为\(y(0)=x\)的路径, 且在\(x\)的足够小的一个邻域内\(y(t)\)满足等式约束和不等式约束, 一旦找到这样的\(y(t)\), 证明也就完成了.
根据假设可知, dim(\(A\)) = \(m\), 则\(A\)的核的维数为\(dim(N(A))=n-m\), 我们从核空间中抽取一组基作为行向量构建\(Z'\), 则
\left [
\begin{array}{c}
A \\
Z'
\end{array}
\right ]
\]
是一个非奇异的\(n\times n\)的方阵.
考虑如下的非线性方程系统(显然有解\(t=0,y=x\))
R(y, t) = \left [
\begin{array}{c}
c(y) - tAd \\
Z'(y - x -td)
\end{array}
\right ] = 0.
\]
关于\(y\)的加科比行列式为
\frac{\partial R}{\partial y} |_{t=0} =
\left [
\begin{array}{c}
A \\
Z'
\end{array}
\right ],
\]
非奇异, 所以根据隐函数定理可知, 在\(t\)足够小的时候, 存在连续可微函数\(y(t)\), 且\(y(0)=x\).
既然
c(y)=c(x) + \nabla c(x)(y-x) + o(\|y-x\|) = A(y-x)+o(\|y-x\|),
\]
我们有
0=R(y(t),t) =
\left [
\begin{array}{c}
A \\
Z'
\end{array}
\right ] (y(t)-x-td) + o(\|y(t)-x\|).
\]
也就是说
y(t)-x=td+o(\|y(t)-x\|),
\]
俩边令\(t \rightarrow 0\), 可知\(y(t)\)为\(d\)的一个连续路径.
又结合(25)
c(y(t))-tAd=0,
\]
c_i(y(t))=t\nabla c_i(x)d =
\left \{
\begin{array}{ll}
0, & i \in \xi \\
\ge 0 , & i \in \mathcal{I \cap A} .
\end{array}
\right .
\]
所以对于任意的\(i \in \mathcal{A}\), \(y(t)\)是可行路径, 对于未激活的不等式约束, 既然\(y(t)\)是连续的, 当\(t\)足够效地时候容易得到\(c_i(y(t)) > 0, i \in \mathcal{I}, i \not \in \mathcal{A}\). 这样便证明了, \(\forall d \in \mathcal{F}(x)\), 均为可行方向, 故\(\mathcal{F}(x) =\mathcal{T}(x)\).
Farkas 引理
Farkas 引理: 令\(g\)和\(\{a_i\}_{i=1}^m\)为\(n\)维行向量且
\mathcal{S} = \{ d \in \mathbb{R}^n; gd<0 , a_id \ge 0, i=1, \ldots, m\},
\]
则\(\mathcal{S} = \empty\)当且仅当存在非负向量\(\lambda \in \mathbb{R}^m\) 使得
g = \sum_{i=1}^m \lambda_i a_i.
\]
证明:
\(\Leftarrow\)
\(\forall d \in \mathcal{S}\),
\]
故\(\mathcal{S} = \empty\).
\(\Rightarrow\)
若不存在这样的\(\lambda\), 即对于任意的\(\lambda\), \(g \not =\sum_{i=1}^m \lambda_i a_i\), 则\(g\)不能由\(\{a_i\}\)线性表出. 不妨假设\(\{a_i\}\)与\(g\)按序进行施密特正交化过程, 可得\(\{\hat{a}_i\}\)为\(\{a_i\}\)的一正交向量组, \(h\)为
\]
则
\langle h, g \rangle = l \not = 0.
\]
不妨设\(l<0\)(否则\(h=-h\)), 则\(h \in \mathcal{S}\), 这与\(\mathcal{S} = \empty\)矛盾.
证毕.
定义问题\(\mathcal{P}\):
gd < 0, \\
Ad \ge 0.
\]
定义问题\(\mathcal{D}\):
g = \lambda^T A, \lambda \ge 0.
\]
推论
推论: 要么问题\(\mathcal{P}\)存在解, 要么\(\mathcal{D}\)存在解, 二者不能同时成立.
KKT定理的证明
既然\(x^*\)是一局部极值点, 则
\nabla f(x^*) d \ge 0, \forall d \in \mathcal{T} (x^*) =\mathcal{F}(x^*),
\]
将\(\nabla f(x^*)\)视作Farkas引理中的\(g\), \(A\)即为我们最开始定义的\(A\), 则\(\forall Ad \ge 0\), \(d \in \mathcal{F}(x)\), 这是因为所有等式约束\(c_i(x)=0\), 都可以变成俩个不等式约束\(c_i(x)\ge0, -c_i(x) \ge 0\). 这也就是说, 问题\(\mathcal{P}\)无解, 则\(\mathcal{D}\)有解, 即存在\(\lambda^* \ge 0\):
\nabla f(x^*) = \sum \lambda_i^* \nabla c_i(x^*), \lambda_i^* \ge 0.
\]
对于任意的\(i \not \in \mathcal{A}\), 我们只需取\(\lambda_i^*=0\), (39)依然成立, 同时原定理(18)中的(i)(ii)也同样容易证明.
KKT (LICQ)的更多相关文章
- 真正理解拉格朗日乘子法和 KKT 条件
这篇博文中直观上讲解了拉格朗日乘子法和 KKT 条件,对偶问题等内容. 首先从无约束的优化问题讲起,一般就是要使一个表达式取到最小值: \[min \quad f(x)\] 如 ...
- 机器学习——支持向量机(SVM)之拉格朗日乘子法,KKT条件以及简化版SMO算法分析
SVM有很多实现,现在只关注其中最流行的一种实现,即序列最小优化(Sequential Minimal Optimization,SMO)算法,然后介绍如何使用一种核函数(kernel)的方式将SVM ...
- 【整理】深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...
- PRML读书会第七章 Sparse Kernel Machines(支持向量机, support vector machine ,KKT条件,RVM)
主讲人 网神 (新浪微博: @豆角茄子麻酱凉面) 网神(66707180) 18:59:22 大家好,今天一起交流下PRML第7章.第六章核函数里提到,有一类机器学习算法,不是对参数做点估计或求其分 ...
- 关于拉格朗日乘子法和KKT条件
解密SVM系列(一):关于拉格朗日乘子法和KKT条件 标签: svm算法支持向量机 2015-08-17 18:53 1214人阅读 评论(0) 收藏 举报 分类: 模式识别&机器学习(42 ...
- 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
[整理] 在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有 ...
- 拉格朗日乘子法和KKT条件
拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush-Kuhn-Tucker)条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件 ...
- 装载:关于拉格朗日乘子法与KKT条件
作者:@wzyer 拉格朗日乘子法无疑是最优化理论中最重要的一个方法.但是现在网上并没有很好的完整介绍整个方法的文章.我这里尝试详细介绍一下这方面的有关问题,插入自己的一些理解,希望能够对大家有帮助. ...
- 装载:深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...
随机推荐
- docker安装jumpserver
注意MySQL的密码设置要有复杂度,否则jumpserver用不了 #先准备一台服务器安装MySQL和redis(注意官网版本要求) root@ubuntu:~# docker pull mysql: ...
- Java虚拟机(JVM)以及跨平台原理
相信大家已经了解到Java具有跨平台的特性,可以"一次编译,到处运行",在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的. 那么,跨平台 ...
- Dubbo服务限流
为了防止某个消费者的QPS或是所有消费者的QPS总和突然飙升而导致的重要服务的失效,系统可以对访问流量进行控制,这种对集群的保护措施称为服务限流. Dubbo中能够实现服务限流的方式较多,可以划分为两 ...
- Spring AOP通过注解的方式设置切面和切入点
切面相当于一个功能的某一个类,切入点是这个类的某部分和需要额外执行的其他代码块,这两者是多对多的关系,在代码块处指定执行的条件. Aspect1.java package com.yh.aop.sch ...
- 【C/C++】拔河比赛/分组/招商银行
题目:小Z组织训练营同学进行一次拔河比赛,要从n(2≤n≤60,000)个同学中选出两组同学参加(两组人数可能不同).对每组同学而言,如果人数超过1人,那么要求该组内的任意两个同学的体重之差的绝对值不 ...
- 全面解析 | 钥匙环服务的应用场景&商业价值
在互联互通的场景驱动下,同一开发者旗下常常拥有多款应用或者多个应用形态,用户在同一设备的不同应用或端口登录时,即便使用同一帐号,仍需要重复输入密码进行验证,操作复杂,直接影响到用户的使用体验,而华为钥 ...
- 探究Go-YCSB做数据库基准测试
本篇文章开篇会介绍一下Go-YCSB是如何使用,然后按照惯例会分析一下它是如何做基准测试,看看它有什么优缺点. 转载请声明出处哦~,本篇文章发布于luozhiyun的博客: https://www.l ...
- Latex-安装_第一天
LaTex安装 Windows 小知识: \(Tex\)来源technology,希腊词根是\(tex\),Latex应该读成"拉泰赫". https://miktex.org/ ...
- maven 常用编译
mvn -B clean package -Dspecific -DskipTests -P test
- Spring学习(四)在Web项目中实例化IOC容器
1.前言 前面我们讲到Spring在普通JAVA项目中的一些使用.本文将介绍在普通的Web项目中如何实例化Spring IOC容器.按照一般的思路.如果在Web中实例化Ioc容器.这不得获取Conte ...