最优化笔记
[toc]
凸性
集合
凸集
【定义】集合
其中,「
对于一些凸集
【交】
是凸集。即:任意个凸集的交集是凸集。这里的「任意个」可以是不可数无穷个。【直积】
是 上的凸集。【加权和】如果
都是 上的凸集, ,那么 是凸集。【仿射】如果
是 上的凸集, ,则 是凸集。其实,所谓仿射,也就是线性变换再加上一个平移。
有一些比较常见的凸集,需要知道他们的表示方法:
【超平面】
,其中 。称 为超平面的法向量。【半空间】
,也就是一个超平面把空间分成两个半空间(以及超平面自身)【多面体】
,也就是有限多个半空间的交集。【子空间】
.这个和高代里面的子空间是一个意思,也就是元素的线性组合仍在子空间中。【仿射集/线性流形/仿射子空间】对于子空间
,存在 , ,则 是仿射集。称 的线性维数为 的仿射维数,记作 。其实就是说,子空间不是必须要通过 点吗,那么把子空间平移了以后,它不通过 点了,虽然不再是子空间了,但是仍然是线性的,也是凸集。例如:
为 的任意一个特解。 。所以说,一般来说可以用一个非齐次线性方程组 的解集来表示仿射集。【球体】
,其中 是范数, .【椭球体】
,其中 是对称正定矩阵, 。例如:
令
则 是对称正定矩阵,且 ,故 是凸集。【凸函数的下水平集】
,其中 是凸函数, 是凸集,
还有一类特殊的集合,叫做「锥」。
【定义】称
常见的锥有:
- 【第一卦限】
- 【二阶锥】
- 【对称矩阵、半正定矩阵、正定矩阵】
集合的内部和闭包
集合的闭包记作
例如:对于集合
,点列 ,其极限为 ,所以 在集合 的闭包中。
闭包是包含
集合的内部记作
例如:对于集合
,对于点 ,无论半径 取何值,球体中的一点 总是大于 ,从而不在集合中,所以 不在 的内部。
内部是包含在
但是有时候,对于一个凸集,其内部是空集。比如在
对于集合
组合和包
点
如果集合
点
对于仿射包的定义和生成,也和凸包类似。仿射包记作
通过仿射包,可以定义任意集合的维数。对于任意非空集合
点
对于锥包的定义和生成,也和凸包类似。锥包记作
可以总结一下:
组合类型 | 系数限制 | 集合名称 | 样例 |
---|---|---|---|
线性组合 | 无限制 | 向量子空间 | |
仿射组合 | 仿射集/线性流形/仿射子空间 | 仿射超平面 | |
锥组合 | 锥 | 第一卦限 | |
凸组合 | 凸集 | 单纯形 |
凸函数
梯度和海森矩阵
这俩东西后面有用。
梯度:
常见函数的梯度:
凸函数
对于凸集
凸函数的性质有:
函数
在凸集 上是凸函数,等价于其上镜图是凸集。函数
在凸集 上是凸函数,则有Jensen不等式: 其中 。证明:令
因为 是凸函数,所以其上镜图是凸集,所以其上镜图上的点的凸组合是在上镜图里,有:函数
在 上凸,当且仅当, 关于 在 上凸。函数
在凸集 上是凸函数,则其在 的相对内部上连续。如果有界闭集 ,那么 在 上Lipschitz连续(比一致连续更强的连续)。函数
一阶偏导连续,那么它在凸集 上是凸函数,当且仅当函数
二阶偏导连续,那么它在内部非空的凸集 上是凸函数,当且仅当 半正定。函数
在凸集 上是凸函数,有: 是凸集。即:使得 小于一个定值的 的取值范围是凸集,这个范围叫做下水平集。函数
在凸集 上是凸函数,则 的所有局部极小点都是全局极小点,而且局部极小点组成的集合是凸集。如果 是严格凸的,那么最多有一个极小点。
和凸集一样,有时候直接确定函数是不是凸函数比较难,因此可以利用保凸运算:
- 【锥组合】凸函数的锥组合是凸函数。即:对于
上的凸函数 , , 是凸函数。 - 【仿射替换】对于
上的凸函数 , 是 的仿射,则 是 上的凸函数。 - 【上确界】对于
上的凸函数 , 是凸函数。 - 【单调复合】
在 上凸, 在 上凸且单增,则 在 上凸。
解和算法的基本性质
本节主要讨论无约束最优化问题
可行方向和一阶条件
优化的基本思想是目标函数沿着某个方向可以看作一元函数,于是就可以利用一元函数的微积分。对于向量
特别的,如果
对于一元函数来说,它就是「一阶导数为零」。
将满足这种条件的点称为「驻点」。

二阶条件
【二阶必要条件】设
- 如果
,则
如果
半正定
如果
线搜索法
线搜索法指的是在当前迭代点处,根据收集到的信息选择一个有待进一步探测的方向,然后在这个方向上进行一维搜索得到合适的步长,进而得到下一个迭代点的过程。后续的梯度下降法、共轭梯度法、牛顿法、拟牛顿法都是线搜索法。
已知初始估计
- 根据某种近似函数确定设
处的搜索方向设 , - 线搜索: 求解关于
的一元函数极小化问题
得到步长
- 置
不同的线搜索法之所以不同,核心区别在于
所谓的精确线搜索,指的是精确求解

对于一元函数
左图中有
右图中有
假设
Armijo条件
定义一次函数

如果
Goldstein测验
「不太大」的条件不变,将「不太小」的条件改为:
Wolfe准则
如果
无约束优化方法
梯度下降法
梯度下降法的基本格式是:
梯度下降法是怎么想到的呢?其实有两种解释。
函数值在负梯度方向下降最快
极小化函数在
附近的二次泰勒展开
梯度下降法有全局收敛性:假设与初始点
是紧的(有界闭集), 并且
- 迭代轨迹不离开
- 除非得到驻点;否则
严格单调递减 - 轨迹有聚点, 并且每个聚点均是
的驻点.
接下来分析
- 任何具有Lipschitz(李普希茨)梯度的函数
- 任何具有李普希茨梯度的凸函数
- 任何具有李普希茨梯度的强凸函数
在此之前,需要定义「李普希茨梯度」和「强凸函数」。
【Lipschitz梯度】 设
称
Lipschitz梯度这个名字可能有点容易让人误解。它并不是一种特殊的梯度,而指的是函数的梯度满足某种条件。
如果函数的梯度满足
【强凸函数】设
从直观上来说,强凸性是凸性的加强版,它要求函数不仅仅是凸的,还得有一定的曲率(例如:
具有Lipschitz(李普希茨)梯度的函数
【二次上界】:设
对于常数步长
,梯度下降法是下降算法对于常数步长
,梯度下降法满足
为了证明这个结论,只需要让二次上界定理中的
由这两个结论,可以推出具有Lipschitz(李普希茨)梯度的函数上梯度下降法的复杂度:
设
将
具有李普希茨梯度的凸函数
设
具有李普希茨梯度的强凸函数
关于强凸函数有如下结论:
是 强凸的当且仅当 是凸的.- 设
. 则 在凸集 上是1强凸的当且仅当
- 设
. 则 在内部非空的凸集 上是 -强凸的当且仅当
设
其中
牛顿法
考虑二次连续可微的函数,对其进行泰勒展开:
那么
但是在使用上,基本牛顿法存在一些问题。
正定,但是牛顿增量很大,导致局部二次近似失效 不正定
在这两种情况下,基本牛顿法会失效,因此需要寻求将其修正的方法。常用方法是对于
共轭梯度法
【定义:
共轭方向法的提出是为了求解正定的非齐次线性方程组:
给定初始点
可逆(因为 是线性无关组) 是对角矩阵,对角线元素是 ,其余是零(因为 是共轭方向组) ,即 ,其中 是第 个分量为一,其余分量是零的单位坐标向量
设:
考虑迭代出的最终
,其中, 是共轭方向组的前 个向量张成的线性子空间,平移 后得到的仿射空间。
共轭方向法的问题是在求解前需要给出共轭方向组。共轭梯度法则是利用梯度构造共轭方向组。共轭梯度法的基本结构如下:
给定初始点
,记 ,开始迭代如果函数梯度已经足够小,即
,终止计算:
令
,计算 ,使得它和之前的所有方向都共轭。
现在的问题就是
分析分子
,因为 ,有: 代入: 因为 所以 因为 所以
时,
所以有:
这个简化的目的是排除原问题
共轭梯度法的过程如下:

次梯度
为了讨论次梯度和次微分,引入扩展实值函数:
设
是
简单来说,上镜图就是函数图像上面的部分,有效域就是函数的「定义域」。
如果凸函数满足有效域非空,且
设函数
【次梯度】称向量
其中
其中
对于凸函数
设
最后,
如果忘了,这里的
最优性条件:设
- 则
是 的极小点当且仅当 . - 设
是非空凸集,则 是 在 上的极小点的充分条件是:存在 使得 。如果ri 与 ri 相交, 或者当 是多面体时 ri( 与C相交, 该条件是必要的.
约束优化问题(KKT条件)
【特别注意】课件和PPT里的KKT条件和拉格朗日函数,
是乘以等式约束 的, 是乘以不等式约束 的,我这个笔记一开始写错了,后来将错就错,全部是相反的。
考虑有如下格式的优化问题:
把常用的不可微分函数转变为可微分函数的技巧:
且
且
假如

考虑如图所示的二维平面优化问题。红色的曲线是三个约束函数
KKT条件是「一阶必要条件」,即凡是局部最优解都满足KKT条件,但是满足KKT条件的不一定是局部最优解。
简单介绍一下证明KKT条件的思路:
如果
是局部最优解,那么 。其中, 都是一些方向的集合。
是使得目标函数下降的方向的集合,即和目标函数的梯度的内积小于零: 是「切向锥」,即从 开始,往哪些方向稍微挪动一点,不会离开可行域的范围: 因为
很难求,所以另外定义一个「看起来像可行的方向的集合」 构造它的方法是「排除显然不可能的方向」,例如,让 上升的方向( )以及让 变化的方向 在某些「适当的条件」下,有
。此时,有: 这其实是KKT条件的某种等价表述。
之前提到的那个「适当的条件」叫做「约束品性」,常见的约束品性有:
正则性(线性无关约束品性,LICQ):设点
满足 ,对于 处的所有 和积极约束 ,如果梯度向量 是线性无关的,称 是约束 的正则点。如果 是局部最优解而且是正则点,那么KKT条件成立。Slater条件。若Salter条件成立,原问题的最优解是KKT点,相应的乘子是对偶问题的最优解。
MFCQ:如果
是集合约束 的内点且是局部极小点、 都是一阶连续函数、如果梯度 线性无关,且存在向量 使得 则 满足MFCQ。线性CQ:如果
是集合约束 的内点且是局部极小点, 都是一阶连续函数,如果 是仿射函数、 都是凸函数,那么 满足KKT条件。
如果满足:
都是凸函数 是线性函数
那么,原问题是凸问题,而且KKT点就是全局最优点。
现在的问题是,这两个条件实在是太强了,有没有弱一点的条件,也能说明KKT点是最优点?
二阶必要条件
假设对于KKT点
。这就是KKT条件的第一条 。因为KKT条件的第五条,所以第二项是零;因为KKT条件的第四条,所以第三项是零。 ,其中 是原问题的可行解集。因为在可行解集里总有 。
由2和3知:如果
对于无约束问题
半正定,那么 是原问题的全局最优解 在 中的一个 的邻域里半正定,那么 是原问题的局部最优解 正定,那么 是原问题的严格局部最优解。
接下来重点考虑第三项。正定,也就是说有二次型:
假如
灵敏度分析
对于一般的约束问题
【例】问题
原问题的最优解显然是 ,此时等式约束对应的系数 新问题的最优解是 ,那么有 对C求导,有:
对偶问题
考虑一般的约束问题
如果
引入拉格朗日函数:
我们把这个问题叫做「对偶问题」,记作
【例】考虑线性规划问题:
有:
对偶问题为:
接下来,讨论一下对偶问题的几何解释。
如图所示是原问题的解。红色阴影区域即原问题的可行区域,绿色的点就是原问题的最优解。
那么已知
蓝色圆圈处的点就是已知
现在,我们要改变
图中,浅蓝色的直线表示了不同
那么这是巧合吗,是否永远有
如图所示是原问题的解。红色阴影区域即原问题的可行区域,绿色的点就是原问题的最优解。
接下来在这个附近变化
我们可以发现:
这个结论叫「弱对偶定理」。关于
- 原问题是凸问题:即
是凸函数、 是线性函数、 是凸集 - (Slater条件)在集合约束
的内部存在一点 ,使得 ,或: - (松弛Slater条件)在集合约束
的相对内部中存在一点 ,使得对所有非仿射的 有 ,对所有仿射的 有 ,且 .
为了理解这个条件,观察下面的两个图像:

(a)图中虽然满足第一个条件(问题是凸问题),但是不满足第二个条件,这样的话,其对偶问题无解。
(b)图中虽然不满足第一个条件(
罚函数法
对于只有等式约束的优化问题:
一个直观的想法是增加二次惩罚项,则问题变成:
记罚函数项目为
【例】利用罚函数法求解:
对应的无约束优化问题为: 求其一阶必要条件,即 ,有: 解得 经验证,其海森矩阵是正定矩阵。将 ,有:
可以看出,由罚函数法得到原问题的关键步骤就是
用计算机计算的算法一般如下:
取初始迭代点
,初始参数 ,终止条件 为一较小正数,迭代计数器 ,更新倍数以
为初始点,计算无约束优化问题: 得到解如果
,说明惩罚项已经足够小,算法终止。更新
,转第2步
假如步骤2每次都可以得到无约束优化问题的全局最优解,那么这个算法有以下的性质:
【性质1】对于迭代形成的点列
- 无约束优化问题目标函数序列
单调递增 - 罚函数序列
(在常用的二次罚函数情况下,也可以写成 )单调递减 - 约束优化问题目标函数序列
单调递增
【性质2】点列
【性质3】现在无需步骤2每次都可以得到无约束优化问题的全局最优解,只需要得到平稳点,即
对于一般的约束优化问题:
乘子法
在罚函数法的运算中,为了收敛,有时
考虑增广拉格朗日函数:
取初始迭代点
,初始参数 ,终止条件 为一较小正数,迭代计数器 ,更新倍数以
为初始点,计算无约束优化问题: 得到解如果
,说明惩罚项已经足够小,算法终止。更新
,转第2步.
算法的核心问题是如何更新
障碍法(内点法)
障碍法(也称内点法),用所谓的“障碍函数”代替不等式约束,并将它加到优化问题的目标函数中。如果一个集合存在内部,而且可以从内部逼近任何边界点,我们称这样的集合为「稳健的」。
假设约束优化问题的可行域
- 连续
- 随着
趋向于 的边界, 趋向于正无穷
称
约束
与之相关的一个概念叫解析中心,它是问题:
将约束优化问题改写为:
在

因此,构造一个越来越小,趋向于0的正数
本站的运行成本约为每个月5元人民币,如果您觉得本站有用,欢迎打赏: