【机器学习之数学】03 有约束的非线性优化问题——拉格朗日乘子法、KKT条件、投影法

目录

  • 将有约束问题转化为无约束问题

    • 拉格朗日法

      • KKT条件
      • 拉格朗日法更新方程
      • 凸优化问题下的拉格朗日法
    • 罚函数法
  • 对梯度算法进行修改,使其运用在有约束条件下
    • 投影法

      • 梯度下降法 to 投影梯度法
      • 正交投影算子
  • References
  • 相关博客

梯度下降法、最速下降法、牛顿法等迭代求解方法,都是在无约束的条件下使用的,而在有约束的问题中,直接使用这些梯度方法会有问题,如更新后的值不满足约束条件。

那么问题来了,如何处理有约束的优化问题?大致可以分为以下两种方式:

  1. 将有约束的问题转化为无约束的问题,如拉格朗日乘子法和KKT条件;
  2. 对无约束问题下的求解算法进行修改,使其能够运用在有约束的问题中,如对梯度下降法进行投影,使得更新后的值都满足约束条件。

将有约束问题转化为无约束问题

拉格朗日法

仅含等式约束的优化问题
\[
\begin{array}{cl}{\text { minimize }} & {f(\boldsymbol{x})} \\ {\text { subject to }} & {\boldsymbol{h}(\boldsymbol{x})=\mathbf{0}}\end{array}
\]

其中,\(x \in \mathbb{R}^n\),\(f : \mathbb{R}^{n} \rightarrow \mathbb{R}\),\(\boldsymbol{h} : \mathbb{R}^{n} \rightarrow \mathbb{R}^{m}, \boldsymbol{h}=\left[h_{1}, \ldots, h_{m}\right]^{\top}, \text { and } m \leq n\)。

该问题的拉格朗日函数为:
\[
l(\boldsymbol{x}, \boldsymbol{\lambda})=f(\boldsymbol{x})+\boldsymbol{\lambda}^{\top} \boldsymbol{h}(\boldsymbol{x})
\]

FONC:对拉格朗日函数 \(l(\boldsymbol{x}, \boldsymbol{\lambda})\) 求偏导数,令偏导数都等于 0,求得的解必然满足原问题的等式约束,可以从这些解里面寻找是否有局部最优解。这是求得局部最优解的一阶必要条件。

拉格朗日条件:(分别对 \(\bm x\) 和 \(\bm \lambda\) 求偏导)
\[
\begin{array}{l}{D_{x} l\left(\boldsymbol{x}^{*}, \boldsymbol{\lambda}^{*}\right)=\mathbf{0}^{\top}} \\ {D_{\lambda} l\left(\boldsymbol{x}^{*}, \boldsymbol{\lambda}^{*}\right)=\mathbf{0}^{\top}}\end{array}
\]

上式中,对 \(\lambda\) 求偏导数得到的就是等式约束。

拉格朗日条件是必要而非充分条件,即满足上述方程的点 \(\boldsymbol x^{*}\) 不一定是极值点。

KKT条件

既含等式约束又含不等式约束的优化问题:
\[
\begin{array}{rl}{\operatorname{minimize}} & {f(\boldsymbol{x})} \\ {\text { subject to }} & {\boldsymbol{h}(\boldsymbol{x})=\mathbf{0}} \\ {} & {\boldsymbol{g}(\boldsymbol{x}) \leq \mathbf{0}}\end{array}
\]

其中,\(f : \mathbb{R}^{n} \rightarrow \mathbb{R}\),\(\boldsymbol{h} : \mathbb{R}^{n} \rightarrow \mathbb{R}^{m}, m \leq n\),并且 \(\boldsymbol{g} : \mathbb{R}^{n} \rightarrow \mathbb{R}^{p}\)。

将该问题转化为拉格朗日形式:
\[
l(\boldsymbol{x}, \boldsymbol{\lambda})=f(\boldsymbol{x})+\boldsymbol{\lambda}^{\top} \boldsymbol{h}(\boldsymbol{x}) +\boldsymbol{\mu}^{\top} \boldsymbol{g}(\boldsymbol{x})
\]

设 \(\bm x^{*}\) 是原问题的一个局部极小点,则必然存在 \(\bm{\lambda}^{* \top} \in \mathbb{R}^m\),\(\bm{\mu}^{* \top} \in \mathbb{R}^p\),使得下列KKT条件成立:

  1. \(\bm {\mu}^{*} \geq 0\)
  2. \(D f\left(\boldsymbol{x}^{*}\right)+\boldsymbol{\lambda}^{* \top} D \boldsymbol{h}\left(\boldsymbol{x}^{*}\right)+\boldsymbol{\mu}^{* \top} D \boldsymbol{g}\left(\boldsymbol{x}^{*}\right)=\mathbf{0}^{\top}\)
  3. \(\boldsymbol{\mu}^{* \top} \boldsymbol{g}\left(\boldsymbol{x}^{*}\right)=0\)
  4. \({\boldsymbol{h}(\boldsymbol{x}^*)=\mathbf{0}}\)
  5. \({\boldsymbol{g}(\boldsymbol{x}^*) \leq \mathbf{0}}\)

KKT条件中,\(\bm{\lambda}^{*}\) 是拉格朗日乘子向量,\(\bm{\mu}^{*}\) 是KKT乘子向量,\(\bm{\lambda}^{*}\) 和 \(\bm{\mu}^{*}\) 的元素分别称为拉格朗日乘子和KKT乘子。

拉格朗日法更新方程

将含约束的优化问题转化为拉格朗日形式后,我们可以用更新方程对该问题进行迭代求解。

这也是一种梯度算法,但拉格朗日乘子、KKT 乘子的更新和自变量 \(\bm x\) 的更新不同,自变量 \(\bm x\) 继续采用梯度下降法更新,而拉格朗日乘子、KKT 乘子的更新方程如下:
\[
\boldsymbol{\lambda}^{(k+1)}=\boldsymbol{\lambda}^{(k)}+\beta_{k} \boldsymbol{h}\left(\boldsymbol{x}^{(k)}\right), \\boldsymbol{\mu}^{(k+1)}=\left[\boldsymbol{\mu}^{(k)}+\beta_{k} \boldsymbol{g}\left(\boldsymbol{x}^{(k)}\right)\right]_{+}
\]

其中,\([\cdot]_{+}=\max \{\cdot, 0\}\)。

凸优化问题下的拉格朗日法

拉格朗日乘子法和KKT条件在一般的含约束条件的优化问题中,都只是一阶必要条件,而在凸优化问题中,则变成了充分条件。

凸优化问题指的是目标函数是凸函数,约束集是凸集的优化问题。线性规划、二次规划(目标函数为二次型函数、约束方程为线性方程)都可以归为凸优化问题。

凸优化问题中,局部极小点就是全局极小点。极小点的一阶必要条件就是凸优化问题的充分条件。

罚函数法

updating...

对梯度算法进行修改,使其运用在有约束条件下

投影法

梯度下降法、最速下降法、牛顿法等优化算法都有通用的迭代公式:
\[
\boldsymbol{x}^{(k+1)}=\boldsymbol{x}^{(k)}+\alpha_{k} \boldsymbol{d}^{(k)}
\]

其中,\(\boldsymbol{d}^{(k)}\) 是关于梯度 \(\nabla f(\bm x^{(k)})\) 的函数。

考虑优化问题:
\[
\begin{array}{cl}{\operatorname{minimize}} & {f(\boldsymbol{x})} \\ {\text { subject to }} & {\boldsymbol{x} \in \Omega}\end{array}
\]

在上述有约束的优化问题中,\(\boldsymbol{x}^{(k)}+\alpha_{k} \boldsymbol{d}^{(k)}\) 可能不在约束集 \(\Omega\) 内,这是梯度下降等方法无法使用的原因。

而投影法做的是,如果 \(\boldsymbol{x}^{(k)}+\alpha_{k} \boldsymbol{d}^{(k)}\) 跑到约束集 \(\Omega\) 外面去了,那么将它投影到约束集内离它最近的点;如果 \(\boldsymbol{x}^{(k)}+\alpha_{k} \boldsymbol{d}^{(k)} \in \Omega\),那么正常更新即可。

投影法的更新公式为:
\[
\boldsymbol{x}^{(k+1)}=\boldsymbol{\Pi}\left[\boldsymbol{x}^{(k)}+\alpha_{k} \boldsymbol{d}^{(k)}\right]
\]

其中 \(\bm \Pi\) 为投影算子,\(\bm \Pi[\bm x]\) 称为 \(\bm x\) 到 \(\Omega\) 上的投影。

梯度下降法 to 投影梯度法

梯度下降法的迭代公式为:
\[
\boldsymbol{x}^{(k+1)}=\boldsymbol{x}^{(k)}-\alpha_{k} \nabla f\left(\boldsymbol{x}^{(k)}\right)
\]

将投影算法引入梯度下降法,可得投影梯度法,迭代公式如下:
\[
\boldsymbol{x}^{(k+1)}=\boldsymbol{\Pi}\left[\boldsymbol{x}^{(k)}-\alpha_{k} \nabla f\left(\boldsymbol{x}^{(k)}\right)\right]
\]

正交投影算子

updating...

References

Edwin K. P. Chong, Stanislaw H. Zak-An Introduction to Optimization, 4th Edition

相关博客

【机器学习之数学】01 导数、偏导数、方向导数、梯度
【机器学习之数学】02 梯度下降法、最速下降法、牛顿法、共轭方向法、拟牛顿法
【机器学习之数学】03 有约束的非线性优化问题——拉格朗日乘子法、KKT条件、投影法

原文地址:https://www.cnblogs.com/wuliytTaotao/p/11077353.html

时间: 2024-10-10 03:15:50

【机器学习之数学】03 有约束的非线性优化问题——拉格朗日乘子法、KKT条件、投影法的相关文章

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

拉格朗日乘子法是一种寻找多元函数在一组约束下的极值方法,通过引入拉格朗日乘子,可将有m个变量和n个约束条件的最优化问题转化为具有m+n个变量的无约束优化问题.在介绍拉格朗日乘子法之前,先简要的介绍一些前置知识,然后就拉格朗日乘子法谈一下自己的理解. 一 前置知识 1.梯度  梯度是一个与方向导数有关的概念,它是一个向量.在二元函数的情形,设函数f(x,y)在平面区域D内具有一阶连续偏导,则对于每一点P(x0,y0)∈D,都可以定义出一个向量:fx(x0,y0)i+fy(x0,y0)j ,称该向量

机器学习中的数学——拉格朗日乘子法

拉格朗日乘子法:应用在求有约束条件的函数的极值问题上. a. 对于没有约束的函数求极值,只要求导,令导函数等于零即可. b. 对于约束条件是等式的函数. 目标函数:f(x), 约束条件:g(x)=0 求解f(x)在此约束条件下的极值. 定义拉格朗日函数 : L(x,λ)=f(x)+ λg(x) 分别对参数求偏导数,置零.

B站 机器学习的数学

吴恩达机器学习:https://www.bilibili.com/video/av9912938/?p=43 有一个很好的文章:https://blog.csdn.net/qq_39422642/article/details/78725278 https://blog.csdn.net/LeviAckerman/article/details/80353135 视频来自:https://www.bilibili.com/video/av38272602/?p=10 SVM的核心是:最大间隔 S

机器学习之支持向量机(三):核函数和KKT条件的理解

注:关于支持向量机系列文章是借鉴大神的神作,加以自己的理解写成的:若对原作者有损请告知,我会及时处理.转载请标明来源. 序: 我在支持向量机系列中主要讲支持向量机的公式推导,第一部分讲到推出拉格朗日对偶函数的对偶因子α:第二部分是SMO算法对于对偶因子的求解:第三部分是核函数的原理与应用,讲核函数的推理及常用的核函数有哪些:第四部分是支持向量机的应用,按照机器学习实战的代码详细解读. 1 核函数 1.1 核函数的定义 设χ是输入空间(欧氏空间或离散集合),Η为特征空间(希尔伯特空间),如果存在一

关于KKT条件在约束边界的物理意义的思考

学习笔记性质的博文,随时发现错误和疏漏随时修改. 对于有不等式约束的拉格朗日对偶问题,KKT条件可以总结成:约束条件(原始约束和引入拉格朗日乘子后的约束).对x偏导为0.对偶互补条件 进一步可以理解为: ①对于无约束的变量偏导为0 ②对于有约束的变量,在约束边界偏导可以不为0,不在约束边界偏导必为0 其中,不在约束边界的情况提供了函数值的伸缩性,使其取值为一个空间而不是一个点. 对偶互补条件就是对②的数学描述: 其中是原始约束. 对偶互补条件的在约束边界的物理意义: 当不位于原始边界时,它在各个

机器学习之数学原理笔记(三)

正定矩阵 1.1   定义 广义:设M是n阶方阵,如果对任何非零向量z,都有zTMz> 0,其中zT 表示z的转置,就称M正定矩阵.[1] 狭义定义:一个n阶的实对称矩阵M是正定的的条件是当且仅当对于所有的非零实系数向量z,都有zTMz> 0.其中zT表示z的转置. 1.2   定理与性质 l  正定矩阵在合同变换下可化为标准型, 即对角矩阵. l  所有特征值大于零的对称矩阵(或厄米矩阵)也是正定矩阵. l  判定定理1:对称阵A为正定的充分必要条件是:A的特征值全为正. l  判定定理2:

[Z]牛人林达华推荐有关机器学习的数学书籍

1. 线性代数 (Linear Algebra): 我想国内的大学生都会学过这门课程,但是,未必每一位老师都能贯彻它的精要.这门学科对于Learning是必备的基础,对它的透彻掌握是必不可少的.我在科大一年级的时候就学习了这门课,后来到了香港后,又重新把线性代数读了一遍,所读的是 Introduction to Linear Algebra (3rd Ed.)  by Gilbert Strang. 这本书是MIT的线性代数课使用的教材,也是被很多其它大学选用的经典教材.它的难度适中,讲解清晰,

模式识别与机器学习中数学推导中用到的数学知识

每次手推公式就会遇见各种不会的,在网上搜了个总结的还不错的常用求导公式...继续更新中…… 以下原文地址:http://blog.163.com/live_freely/blog/static/151142060201023154057339/ 在网上看到有人贴了如下求导公式: Y = A * X --> DY/DX = A' Y = X * A --> DY/DX = A Y = A' * X * B --> DY/DX = A * B' Y = A' * X' * B -->

机器学习单词记录--03章线性代数回顾

Matrices.matrix 矩阵   vectors 向量 array  排列 Element 元素 A matrix  is a  rectangular array of numbers,written between square brackets 矩阵是由数字组成的矩形阵列,并写在方括号内 Square bracket 方括号 a bunch of  一堆 Row 行  column 列 Matrix is just another way for saying ,2D or two