约束优化方法之拉格朗日

这里的主题是约束优化方法,在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件去求取。当然,这两个方法求得的结果只是必要条件,只有当是凸函数的情况下,才能保证是充分必要条件。需要注意KKT条件是拉格朗日乘子法的泛化。

待解决问题:

\begin{aligned}
&\min_{x \in \mathbb{R}^n} \  f(x)  \notag \\
&s.t.  \ \ \ h_i(x) = 0 , i = 1,2,...,m \ \\
& \ \ \ \ \ \ \  g_j(x) \le 0,j = 1,2,...,n
\end{aligned}

对于不带任何约束的优化问题,直接找到使 $f(x)$ 的导数为 0 的 $x$ 即可,可以使用梯度下降牛顿等方法;

当加上等式约束 $h_i(x)$ 之后,通常使用的方法就是拉格朗日乘子法(Lagrange Multiplier) ,该方法首先引入拉格朗日乘子$\alpha \in \mathbb{R}^m$ ,构建拉格朗日函数:

\[L(x,\alpha) = f(x) + \sum_i \alpha_i h_i(x)\]

分别对 $x$ 、$\alpha$ 求导,令导数为 0 ,求得 $x$ 、$\alpha$  的值后带入 $L(x,\alpha)$ 即可得到最优解:

\[\frac{\partial L(x,\alpha)}{\partial x} = 0  \ \ \ \ \ \frac{\partial L(x,\alpha)}{\partial \alpha} = 0  \]

接下来讲解一下 Lagrange Multiplier 的推倒,先来看一个例子,对于二维情况下的目标函数是 $f(x, y)$,在平面中画出 $f(x, y)$ 的等高线,如下图的虚线所示, 约束等式 $h(x,y) = 0$ 如下图的绿线所示,目标函数 $f(x,y)$ 与约束 $g(x,y)¥ 只有三种情况,相交,相切或者没有交集,没交集肯定不是解,只有相交或者相切才会得到可行解,但相交得到的一定不是最优值,因为相交意味着肯定还存在其它的等高线在该条等高线的内部或者外部,使得新的等高线与目标函数的交点的值更大或者更小,这就意味着只有等高线与目标函数的曲线相切的时候,可能取得最优值.

经过上述示例便得到解困:拉格朗日乘子法取得极值的必要条件是目标函数与约束函数相切,这时两者的法向量是平行的,即

\[\Delta_xf(x) - \alpha \Delta_x h(x) = 0\]

上式正是对拉格朗日函数 $L(x,\alpha)$ 求导得到的结果。

当加上不等式约束之后,常常使用的方法就是KKT条件。同样地,我们把所有的等式、不等式约束与f(x)写为一个式子,也叫拉格朗日函数,分别引入拉格朗日乘子 \alpha 、\beta:

\[ L(x,\alpha,\beta) =f(x) + \sum_i \alpha h_i(x) + \sum_i\beta_ig_i(x) \]

通过一些条件,可以求出最优值的必要条件,这个条件称为KKT条件。
1. L(a, b, x)对x求导为零;

2. h(x) =0;

3. a*g(x) = 0;

求取这三个等式之后就能得到候选最优值。其中第三个式子非常有趣,因为g(x)<=0,如果要满足这个等式,必须a=0或者g(x)=0. 这是SVM的很多重要性质的来源,如支持向量的概念。

二. 为什么拉格朗日乘子法(Lagrange Multiplier) 和KKT条件能够得到最优值?

而KKT条件是满足强对偶条件的优化问题的必要条件,可以这样理解:我们要求min f(x), L(a, b, x) = f(x) + a*g(x) + b*h(x),a>=0,我们可以把f(x)写为:max_{a,b} L(a,b,x),为什么呢?因为h(x)=0, g(x)<=0,现在是取L(a,b,x)的最大值,a*g(x)是<=0,所以L(a,b,x)只有在a*g(x) = 0的情况下才能取得最大值,否则,就不满足约束条件,因此max_{a,b} L(a,b,x)在满足约束条件的情况下就是f(x),因此我们的目标函数可以写为 min_x max_{a,b} L(a,b,x)。如果用对偶表达式: max_{a,b} min_x  L(a,b,x),由于我们的优化是满足强对偶的(强对偶就是说对偶式子的最优值是等于原问题的最优值的),所以在取得最优值x0的条件下,它满足 f(x0) = max_{a,b} min_x  L(a,b,x) = min_x max_{a,b} L(a,b,x) =f(x0),我们来看看中间两个式子发生了什么事情:

f(x0) = max_{a,b} min_x  L(a,b,x) =  max_{a,b} min_x f(x) + a*g(x) + b*h(x) =  max_{a,b} f(x0)+a*g(x0)+b*h(x0) = f(x0)

可以看到上述加黑的地方本质上是说 min_x f(x) + a*g(x) + b*h(x) 在x0取得了最小值,用fermat定理,即是说对于函数 f(x) + a*g(x) + b*h(x),求取导数要等于零,即

f(x)的梯度+a*g(x)的梯度+ b*h(x)的梯度 = 0

这就是kkt条件中第一个条件:L(a, b, x)对x求导为零。

而之前说明过,a*g(x) = 0,这时kkt条件的第3个条件,当然已知的条件h(x)=0必须被满足,所有上述说明,满足强对偶条件的优化问题的最优值都必须满足KKT条件,即上述说明的三个条件。可以把KKT条件视为是拉格朗日乘子法的泛化。

对于无约束优化问题,可以采用各种梯度方法,不等式约束优化

拉格朗日乘子法

对偶方法

KKT条件

时间: 2024-10-14 09:19:40

约束优化方法之拉格朗日的相关文章

无约束优化方法

本文讲解的是无约束优化中几个常见的基于梯度的方法,主要有梯度下降与牛顿方法.BFGS 与 L-BFGS 算法,无约束优化的问题形式如下,对于 $x \in \mathbb{R}^n$ ,目标函数为: \[\min_xf(x)\] 泰勒级数 基于梯度的方法都会涉及泰勒级数问题,这里简单介绍一下,泰勒级数就是说函数 $f(x)$ 在点 $x_0$ 的邻域内具有 $n+1$ 阶导数,则该邻域内 $f(x)$ 可展开为 $n$ 阶泰勒级数为: \[f(x) = f(x_0) + \nabla f(x_0

高数之拉格朗日乘法---解决约束优化问题

作为一种优化算法,拉格朗日乘子法主要用于解决约束优化问题,它的基本思想就是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题.拉格朗日乘子背后的数学意义是其为约束方程梯度线性组合中每个向量的系数. 如何将一个含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题?拉格朗日乘数法从数学意义入手,通过引入拉格朗日乘子建立极值条件,对n个变量分别求偏导对应了n个方程,然后加上k个约束条件(对应k个拉格朗日乘子)一起构成

《University Calculus》-chaper12-多元函数-拉格朗日乘数法

求解条件极值的方法:拉格朗日乘数法 基于对多元函数极值方法的了解,再具体的问题中我们发现这样一个问题,在求解f(x,y,z)的极值的时候,我们需要极值点落在g(x,y,z)上这种对极值点有约束条件,通过直接代换消元的方法似乎会出现一些问题. 比如这个例题. 它面临的问题是,代换消元然后通过求偏导得来的驻点,我们无法控制其满足约束条件g(x,y,z),因此我们需要寻找新的方法来解决这种条件极值问题. 首先这里给出方向导数和梯度中给出的等式关系,这个具体的由来我们会在该小结中详细介绍. 对于可微函数

外点惩罚函数法&#183;约束优化问题

外点惩罚函数法·约束优化问题 外点法惩罚函数(r增加,SUMT.java)用于求解约束优化问题,解题步骤如下: Step1 输入目标函数与约束方程,构建外点惩罚函数法求解方程,求解初始化. Step2 对求解方程进行一次无约束优化方法求解(鲍威尔BWE),得到新解. Step3 新解与原解求误差,如误差满足精度要求,则输出解,否则增加因子r,执行Step 2. 鲍威尔法(BWE.java)是N维无约束求解方法,需要调用一维求解方法,一维求解方法采用黄金分割法(GSM.java). 在实现算法的代

深度学习数学《矩阵分析与应用第2版》资料+《最优化理论与算法第2版》电子书资料+《人工智能一种现代的方法第3版》资料学习

理性模型的建模和算法,经验模型的决策建模和算法,构成了目前人工智能的基础,基于学习反馈的模型构成了它的进化.学习人工智能,必须有较好的数学基础. <矩阵分析与应用第2版>电子书中总结了大量线性代数的知识,是一本很不错的书,数学专业可以跳过,主要是给工科生用的.归纳了不少论文中的解法,是做信号处理的一本很不错的工具书,建议认真学习,做电子笔记,对书的重点内容要好好研究. <矩阵分析与应用第2版>系统.全面地介绍矩阵分析的主要理论.具有代表性的方法及一些典型应用,包括矩阵代数基础.特殊

最优化理论基础

最优化的背景 古希腊的欧几里得时期就存在最优化的思想,当时提出了一个很著名的问题:在周长相同的一切矩形中,以正方形的面积为最大.接下来几个世纪,微积分的建立使得最优化理论可以用来解决无约束的极值问题,随后为了解决有约束条件的最优化问题,发展了变分法.上世纪40年代,由于军事上的需要产生了运筹学,并使优化技术首先应用于解决战争中的实际问题.第二次世界大战期间,一个新的数学分支数学规划方法发展起来,线性规划与非线性规划是其主要内容. 最优化问题按形式来划分主要分为: 无约束优化问题:最优化的目标函数

通用高校排课算法研究----前言

1   绪 论 1.1课题背景与研究意义 1.2课题的应用领域 1.3 课题的现状 1.4解决NP问题的几种算法及其比较 2   目前流行的几种排课算法的介绍 2.1. 自动排课算法 2.2 基于优先级的排课算法 3   基于时间片优先级排课算法描述与分析 3.1排课中的基本原则 3.2排课的基本要求 3.3基于时间片优先级排课算法描述 3.4算法分析 参 考 资 料 1   绪 论 1课题背景与研究意义 排课问题早在70年代就证明是一个NP完全问题,即算法的计算时间是呈指数增长的,这一论断确立

博客安排

博客安排 1.PCA原理及其应用(两篇) 2.线性规划问题 3.正则化方法 3.拉格朗日乘法算子 4.SVM 5.ICA原理 6.聚类分析 7.EM算法 8.推荐系统 9.SVD 10.高斯分布 博客安排,布布扣,bubuko.com

SVM算法推导

1,SVM算法的思考出发点 SVM算法是一种经典的分类方法.对于线性可分问题,找到那个分界面就万事大吉了.这个分界面可以有很多,怎么找呢?SVM是要找到最近点距离最远的那个分界面.有点绕,看下面的图就明白了 为了推导简单,我们先假设样本集是完全线性可分的,也就一个分界面能达到100%的正确率. 2,线性可分的情况 (1)优化目标的建立 最近点距离最远的分界面,这句话得用数学式子表示出来,这样才能用数学工具进行求解. 首先,假设分界面是y=wx+b,点\(x_i\)距离平面的距离用数学表达是\(\