最优化方法_Part2
5 无约束优化问题(壹)
5.1 无约束优化问题
5.1.1 无约束优化问题:
- 最小二乘问题:
; - 采用适当的方法可将约束优化问题转换为无约束优化问题;
- 最优解的定义:
- 局部最优解
: - 全局最优解
: - 严格局部/全局最优解:即将上面式子中的
- 局部最优解
5.1.2 无约束优化问题最优性条件
考虑无约束优化问题:
-
若
为凸函数,则 是最优解等价于 -
若
为一般函数(即不一定是凸函数):- 一阶必要条件
假设 在 处是可微的,如果 是局部最小值,那么 - 二阶必要条件
假设 在 处是二阶可微的,如果 是局部最小值,那么 和
泰勒展开形式 - 二阶充分条件
假设 在 处是二阶可微的,如果 和 ,那么 是局部最小值。
- 一阶必要条件
修改:判定(半)正定矩阵的特殊大于(等于)简写符号为:
,并不是
5.2 无约束优化算法概要
5.2.1 迭代下降算法
给定初始点
-
如何从当前点
得到下一个迭代点 ?-
策略1:线搜索方法
- 当前点
,从这个点出发,先找到某一个下降方向 (即沿着该方向函数值减小),然后需要设置在下降方向走多远(步长) ,最终,得到下一个点为:
- 当前点
-
策略2:信赖域方法
-
该方法有点和线搜索步骤反过来的意味,即先确定好需要前进的区域,然后选择前进的方向。
-
设前进区域设为
,给定其约束为 ,可以表述为 -
注意:在线搜索方法中,选择步长是一个一元/一维的问题;但信赖域方法是一个N维问题(
可能是一个比较复杂的函数),因此信赖域方法直接求解复杂度较大。所以信赖域方法在求解时并不是直接求解上述优化,而是需要先用一个简单的函数 对 在 点进行近似,比如用泰勒展开等方法。信赖域方法有几点需要考虑:
(1)
如何确定;(2) 如何选择,误差较大怎么办。
-
-
5.2.2 (基于线搜索)下降算法基本思路
- STEP1:给定初始点
- STEP2:判断
是否满足终止条件;是则终止 - STEP3:否则寻找
处的下降方向 - STEP4:设置步长
,使得 - STEP5:令
;令 ,转STEP1。
(一) 终止条件
常用的终止条件:
其中,
其他终止条件:
(二) 下降方向
常用的下降方向——负梯度方向
该方法又称最速下降法(Steepest descent)是梯度下降法的一种更具体实现形式。
其他下降方向选择:牛顿方向、共轭梯度方向等。
(三) 步长
令
在确定
(四) 点列收敛性/收敛速度
我们的算法会产生一个点列
5.2.3 求解步长——线搜索方法详解
求解一元问题:
其解记为
(一)
若
对于开口向上的二次函数,求最小,即导数为零即可。
(二)
若
-
基于搜索区间的直接搜索法
- 首先找到一个搜索区间,想办法缩小搜索区间(注意缩小时不用把
扔掉),缩小到一定程度时,则可将区间内的一点作为最优解的近似。 - 搜索区间
:需要包含 ;单谷(即在搜索区间内,函数只有一个下凸,且要注意以下推导都基于此前提) - 方法:选取
且满足- 若
,则得到新的搜索区间为 - 若
,则得到新的搜索区间为
- 若
- 常见的直接搜索法:
- 均匀搜索法:
- 令
- 比较相邻3个点对应的函数值,若对于某个
,有 ,则 ; - 得到新的搜索区间
- 令
- 黄金区间法(0.618法):
- 令
- 若
,则 ,即新的搜索区间;
- 令
- 基于导数信息的二分法
- 记区间中点
,计算该点的导数值 ; - 若
; - 若
; - 若
;
- 记区间中点
- 均匀搜索法:
- 首先找到一个搜索区间,想办法缩小搜索区间(注意缩小时不用把
-
非精确线搜索
实际下降算法中,步长的选取除了直接搜索法以外,还有其他一些方法,我们认为只要
满足一定的准则,此时即使 不是精确解也可以作为最终解的近似解。- Armijo条件:
- Armijo条件:

- Goldstein法则:除Armijo条件外还要去
满足:

5.2.4 补充:收敛性
基于线搜索的迭代下降算法
- 为保证全局收敛,步长
和下降方向 的选取均需满足定的条件:- 记当前点
处所选取下降方向 与负梯度方向 的夹角为 :
- 记当前点
Zoutendijk定理说明:
为了保证全局收敛,需要在选取步长和下降方向时候注意满足一定的条件
此外注意区分:全局收敛与收敛到全局最优解的区别
(1) 全局收敛是指在迭代下降算法初始点选取时,任意随机选取初始点都能保证所产生的点列满足收敛性;
(2) 收敛到全局最优解
-
在适当条件下,迭代点列
满足: ,点列收敛 -
当每次选取
时均保证 满足 ,则:通俗讲就是不要让下降方向
与负梯度方向 的夹角太接近 ,夹角尽量小。
Zoutendijk定理中的适当条件和证明:
假设函数
记迭代过程为
证明部分没有细看,太复杂了。。。!!!
此外,这里感觉很难理解,找了一些参考材料,有时间看看吧
漫步最优化二十一——全局收敛、约束优化方法_1_——Zoutendijk可行方向法、数值优化|笔记整理(2)——线搜索:步长选取条件的收敛性 - 学弱猹的文章 - 知乎
6 无约束优化问题(贰)

6.1 收敛速度
设序列
- 当
时,则称 为线性收敛; - 当
时,则称 为超线性收敛。
若存在某个
则称
评价一个算法除了收敛速度,还可以考虑把一个算法用于求解一个简单问题,如果该算法在求解简单问题时都会有较大的计算成本,那么说明该算法可能存在问题。一般用凸二次函数作为简单问题:
如果算法用于求解该凸二次函数能够在有限步内找到最优解,那么称该算法具有“二次终止性”。
6.2 坐标轴交替下降法
6.2.1 基本思想
给定初始点
6.2.2 算法框架/流程
-
STEP 1:给定初始点
; -
STEP 2:判断是否满足
,是,则终止算法; -
STEP 3:记
,令其中,
arg是argument(自变量、参数)的缩写,那么由此可知:
argmax F(x):使目标函数F(x)能够取到最大值时的变量x的值
argmin F(x):使目标函数F(x)能够取到最小值时的变量x的值
(只是用F(x)举个栗子,实际使用中的函数可能不止x这一个变量,不过意思还是这个意思~)
-
STEP 4:令
,转STEP 1。
6.2.3 优缺点
优点:不需要成本即可得到搜索方向。当变量之间的交叉程度较小时非常有效(极端情况——可分离函数);
缺点:对于一般问题所得到的点列未必收敛。
6.2.4 改进方法
比如:在交替下降过程中间每一步都加入一个线搜索。

6.3 梯度下降法(最速下降法)
6.3.1 基本思想
选择
6.3.2 优缺点
优点:简单直观;收敛;搜索方向计算简单(即只需计算梯度);
缺点:(1) 收敛速度慢(线性收敛);(2) Zigzag现象(“之”字形);(3) 不具备二次终止性(在有限步内求得凸二次函数的最优解)。
-
缺点一:收敛速度慢(线性收敛)
-
原因1:只利用了该点处的一阶导数,而没有利用二阶导数信息;
-
原因2:若迭代中步长
是 的精确最小点,则 ,即根据上式,可以看到前后两个点之间的梯度垂直,呈现“之”字形。示例如下图所示。
-

6.4 牛顿法
6.4.1 基本思想
当前点
令上式求导等于零,可以得到:
-
纯牛顿法:步长
因为
6.4.2 算法框架/流程
- STEP 1:给定初始点
; - STEP 2:判断是否满足
,是,则终止算法; - STEP 3:计算
- STEP 4:令
,转STEP 1。
6.4.3 优缺点
优点:牛顿法同时考虑了一阶导数信息和和二阶导数信息(黑塞矩阵);当初始点
缺点:计算量大(需计算Hesse矩阵);适用范围较窄。
此外,牛顿法还存在一个问题:二阶导数矩阵不一定是正定的,此时


6.5 修正牛顿法
-
修改点1:步长
- 对于步长
的修正:首先判断 是否让目标函数充分下降;否,则采用线搜索方法重新确定 ;
- 对于步长
-
修改点2:方向
- 对于方向(Hesse矩阵)的修正:选取
- 若
,则选取 - 否则,采取修正方法(多种):
,其中, 为适当正数保证 正定。- 考虑特征值分解:
,令 ,其中 为一适当正数。
- 若
- 对于方向(Hesse矩阵)的修正:选取
6.6 拟牛顿法
6.6.1 基本思想
当前点
利用
6.6.2 算法框架/流程
- STEP 1:给定初始点
; - STEP 2:判断是否满足
,是,则终止算法; - STEP 3:计算
; - STEP 4:使用线搜索法确定步长
; - STEP 5:令
,确定 ,转STEP 1。
6.6.3 矩阵的确定方法
(一) 拟牛顿方程(基本要求)
对上式的简单理解:
首先由中值定理可得:
对比发现:也就是我们希望
能够体现 的作用。 分析易知,
大小为 ,其中变量个数为 (对称阵),但是等式只有 个方程,因此 会有多个满足条件。
记
此外,若记
下面我们将对利用已有信息具体获得
(二) 第一类方法
选择满足拟牛顿方程且与
矩阵范数小知识:向量范数与矩阵范数
(三) 第二类方法
对
-
rank-1校正:要求
的秩为1;-
SR-1方法:可以看作是对
进行rank-1校正-
-
如何得到上式:
-
-
该方法相对rank-2方法迭代公式更简单,但是不能保证正定性;适当条件下能达到
步超线性收敛。 步超线性收敛:
-
-
-
rank-2校正:要求
的秩为2;- DFP方法:可以看作是对
进行rank-2校正- 如何得到上式:注意下面图中的证明用到了对称秩1矩阵
的性质: -
- BFGS方法:可以看作是对
进行rank-2校正- 如何得到上式:原理同上面DFP推导类似。
- 拟牛顿方向需要计算
,可以利用Sherman-Morrison公式显示写出; - BFGS方法是被认为最有效的拟牛顿法;(适当前提下可证明)超线性收敛。
- Broyden族:DFP与BFGS的线性组合!
- DFP方法:可以看作是对
7 无约束优化问题(叁)
7.1 共轭梯度法背景
1950年代,求解一类优化问题中:
该类问题可直接通过求梯度然后令梯度为零即可:
可知,需要求解线性方程组。当矩阵比较大时候,计算复杂,因此有人提出使用迭代法求解方程组,因此就有了"(线性)共轭梯度法"。
1960年代,该方法推广到求解一般性优化问题,此时该方法也被称为"(非线性)共轭梯度法"。
7.2 线性共轭梯度法
考虑以下优化问题:
- 当
特殊一点为对角矩阵时:

- 当
为一般情况(非对角矩阵)时:
拿到一个普通二次型,就要想办法将其转换为标准二次型,即就是只有平方项没有交叉项。常用的方法有线性替换,最常见的线性替换又是:对
其中,
将
此时就可以像对角矩阵情况类似,求解变得简单。求解得到
一定要记住,线性共轭梯度法被设计出来就是用来求解线性方程组。
7.2.1 共轭方向
考虑正定矩阵
则称
向量组
7.2.2 共轭 VS 正交
-
若向量组
关于 共轭,则向量组 是正交向量组; -
若向量组
关于正定矩阵 共轭,令 ,则有: 正交
涉及小知识点:
一个正定矩阵一定能分解为另一个正定矩阵的平方:
;共轭向量组线性无关。
7.2.3 共轭方向法
给定初始点
其中,

共轭方向法为一类方法,不同的选取共轭方向的方式就对应不同的共轭方向法,共轭梯度法是其中一种。

7.2.4 共轭方向法具备的特征
以下特征均是基于问题:
点列
- 特征1:
- 特征2:
- 其中,
- 其中,
证明:参考视频。
7.3 共轭梯度法具体
7.3.1 基本思想
在迭代下降过程中,借助当前点
7.3.2 算法框架/流程
- STEP 1:给定初始点
,记 - STEP 2:判断是否满足
,是,则终止算法; - STEP 3:计算
; - STEP 4:令
,计算方向 , 转STEP 1。- 其中,
, - 加上
是为了保证 与 共轭。
- 其中,
7.3.3 公式简化
简化的目的:将这些表达式与目标函数的梯度比较直观地表现出来。
共轭梯度法的步长公式:
可简化为:
共轭梯度法的步长公式中的系数:
可简化为:
进一步简化为:
注意:
和 相等只有在 为二次函数时候才相等。
7.4 非线性共轭梯度法
注意注意注意:上述推导全部是建立在线性共轭梯度法,基本函数是二次函数。
- STEP 1:给定初始点
,记 - STEP 2:判断是否满足
,是,则终止算法; - STEP 3:利用线性搜索计算
; - STEP 4:令
,计算方向 , 转STEP1。- PRP方法:
- FR方法:
- PRP方法:
7.5 一些说明
-
在实践中,为保证每次产生的方向为下降方向,可能会对
进行调整; -
具有二次终止性;
-
实现过程中常采用
步重启策略,可达到 步二阶收敛;n步二阶收敛:
- 原因1:较远的点对当前点贡献很小,可以忽略,因此重启;
- 原因2:可能会将非线性共轭转变为线性共轭梯度法;

8 约束优化理论(壹)—最优性条件
本讲要讨论的约束优化问题为:
记问题
本讲讨论问题的基本假设/前提:
-
问题
中函数 均为连续可微函数;注意,有几类特殊的非光滑函数存在不可微点,但是可以将其转化,例如:
,绘图易知该函数存在两个不可微的点,那么优化问题:可以转化为:令
:因为
最小时肯定是等于 的,所以上面两个问题是等价的。推广来看:
这一类函数可以进行转换。

8.1 最优解的一阶必要条件(KKT条件)
8.1.1 KKT条件的内容
假设
其中,以上5个条件就是著名的KKT条件。
针对非凸问题设计优化算法时,如果能证明算法收敛到一个KKT点,那么就说明算法达到了一个基本要求,KKT点相当于无约束优化问题中的梯度为零的作用。
8.1.2 证明KKT必要条件
(一) 几个概念
-
对于
,若点列 满足所有 ,则称为可行点列。 -
基本思路:若
是局部最优解,则沿着任意可行点列目标函数不会下降(即当 充分大时,有 )。 -
考虑
处集合 均为 是 处的下降方向。 -
考虑
处集合 ,该集合称为 处的切锥。切锥里面包含的方向可以告诉我们:从 点可以沿着哪一些方向/曲线可以移动,示意图如下:上图中,红色箭头夹住部分为切锥包含的可行方向。
(二) 最优解的必要条件
若
只要证明上述表达式中描述的两个集合交集为空,等价于:任取

8.1.3 与切锥关系紧密的两个集合
-
可行方向集合:
- 易知:
,即可行方向一定在切锥中。
-
集合2:记
处的有效指标集 ,定义下面集合- 易知:
- 证明:
-
-
综上:
8.1.4 适当条件:约束规范(constrain qualification)
上文KKT条件描述中提到的适当条件就是此处要讨论的约束规范。在适当条件(约束规范下):
- 常用的约束规范有:
- 函数 ——
均为线性函数; - 向量组 ——
线性无关(LICQ); - Slater Condition
- ……
- 函数 ——
若
即KKT条件的一种形式。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
若
因为:根据Farkas引理,
证明:观看视频,太难了。。。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
8.2 KKT条件的解释说明
8.2.1 KKT条件中各部分的名字
各部分组合的名字如下:
不知道前面有没有说互补松弛的作用:保证那些不起作用的不等式约束在第一行中对应的乘子为零;
等式约束由于不知道
的梯度方向,所以对它没有约束; 传统的互补问题就是:两个向量都是非负的,求内积等于0,其要求为对应分量相乘为0。
8.2.2 KKT条件中拉格朗日乘子意义
KKT条件中拉格朗日乘子可反映约束条件右端项发生扰动时最优目标函数值的变化情况。
设
8.2.3 KKT条件充分性
以上好像都是在讨论KKT条件的必要性,即已经知道
但我们也想知道什么时候会变成充分条件,即一个点满足KKT条件,则该点是问题(P)的最优解。
-
当问题(P)中满足:
- (1)
均为凸函数; - (2)
为线性函数;
- (1)
-
则满足条件的KKT点也是问题(P)(此两条条件限制下,问题P就是凸问题)的局部(全局)最优解。
注意2点:
一、凸问题局部最优解即为全局最优解;
二、可能在一些其他问题,不满足上述两条条件(即问题P非凸),KKT点也有可能是局部最优解,但判断方法需要借助黑塞矩阵,下面会讲到。
9 约束优化理论(贰)—最优性条件—二阶充分条件
9.1 本讲基础
由第八讲(三)KKT条件充分性部分内容可知:
当问题(P)中满足:
-
(1)
均为凸函数; -
(2)
为线性函数;
则满足条件的KKT点也是问题(P)(此两条条件限制下,问题P就是凸问题)的局部(全局)最优解。
本将要解决的问题是,若通过验证,发现上面的条件(1)或者(2)不满足,那么还有没有什么其他条件说明当
假设
令:
简单分析
- (1) 梯度为0:
- (2) :
- (3) :
由上面(2)、(3)可知:若
若
是 的局部最优解,则 是问题(P)的局部最优解; 若
是 的全局最优解,则 是问题(P)的全局最优解。 小证明:
局部最优解情况:
全局最优解情况:
假设
-
(1):若
,则 在集合 上是凸函数,则 是问题(P)的全局最优解; -
(2):若
,则 在上 某一邻域是凸函数,则 是问题(P)的局部最优解; -
(3):若
,则 是问题(P)的严格局部最优解。
视频课程中这里有一部分分析推导,有时间记录
9.2 二阶充分条件
上一节学习了约束优化的一阶必要条件,即KKT条件,并通过Farkas引理证明了KKT条件以及在什么条件下KKT点即是最优解。这一节将学习约束优化的二阶充分条件
9.2.1 内容回顾
上一节最后提到若问题
-
(1)
均为凸函数 -
(2)
线性函数 -
(3)
是KKT点,即满足五条性质
则
那么本节将要研究 —— 当上述条件中(1)或(2)中有一个条件不满足时,
9.2.2 问题分析
假设

记一个新函数:
其中,
-
【1】 由KKT条件中的
式可得: -
【2】 由KKT条件中的
可得: -
【3】
-
【4】 由【2】、【3】可知,若
是 的最优解,则 是问题 的最优解,并且这个最优解可以是局部最优解,也可以是全局最优解。
(一) 结论【3】的证明
因为
又因为
所以可得【3】中结论:
(二) 结论【4】的证明
假设
因此
9.2.3 几个推论
假设
-
【1】 若
,则 在集合 上是凸函数,则 是问题(P)的全局最优解; -
【2】 若
,则 在上 某一邻域是凸函数,则 是问题(P)的局部最优解; -
【3】 若
,则 是问题(P)的严格局部最优解。
其中【1】【2】是根据凸函数的性质得到的,而【3】是无约束优化问题的充分条件,由【3】可知:
但在约束优化中,并不要求对所有的
其中,集合
当
由上一节Lagrange乘子的意义可以得到目标函数
记
则
同时可以得到
9.2.4 二阶充分条件定义
假设
则
9.2. 证明
反证:假设
记
-
因为
,因此 -
是有界的,因此必然存在收敛子列,设最终
则有:
剩余的证明内容请参考:数值优化| 约束优化二阶充分条件 - 知乎;最优化理论与方法-第九讲-约束优化(二):二阶充分条件 - Bilibili
参考资料:最优性理论 - BiCMR - 北京大学
笔记参考资料:
【1】数值优化| 共轭梯度法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」