【复习笔记】最优化方法 - 3. 无约束优化方法
第三章 无约束优化方法
本文是本人研究生课程《最优化方法》的复习笔记,主要是总结课件和相关博客的主要内容用作复习。
3.1 算法理论基础
1. 无约束优化问题的最优性条件
先是一元函数取得极值的条件,高中就学过的
然后是拓展到多元函数后的理论
这三条和前面一元函数的三条是一一对应的,半正定对应大于等于,正定对应严格大于。
这里的最优性一直在说的都是局部最优性。
2. 无约束凸规划问题的最优性条件
凸规划就有一个很好的特点,就是只要是局部最优解,那他就是全局最优解,也就是不存在鞍点了,再把前面的思路拓展就可以得到很好的结果了。
3. 线搜索下降算法及其收敛性
- 算法
- 收敛性
- 收敛速度
后面的几种方法总览
参考:
【1】知乎 : 最优化:线搜索中有最速下降法、牛顿法、拟牛顿法、共轭梯度法,那么他们分别时候用
最速下降法利用目标函数一阶梯度进行下降求解,易产生锯齿现象,在快接近最小值时收敛速度慢。
Newton法利用了二阶梯度,收敛速度快,但是目标函数的Hesse
矩阵不一定正定。于是出现了修正的Newton
法,主要是对不同情况进行了分情况讨论。Newton法的优缺点都很突出。优点:高收敛速度(二阶收敛);缺点:对初始点、目标函数要求高,计算量、存储量大(需要计算、存储Hesse矩阵及其逆)。
共轭梯度法是介于最速下降法和牛顿法之间的一个方法,相比最速下降法收敛速度快,并且不需要像牛顿法一样计算Hesse矩阵,只需计算一阶导数(共轭梯度法是共轭方向法的一种,意思是搜索方向都互相共轭)。
拟Newton法是模拟Newton法给出的一个保优去劣的算法。
3.2 最速下降法
最速下降方向:
梯度的定义是:变化最快的方向,其实指向的就是上升最快的方向。
下降最快的方向是梯度的反方向,即\(-g_k\)。
1. 算法框架
![](https://gitee.com/molinchn/BlogImage/raw/master/img/20200827155916.png)
2. 优缺点
![](https://gitee.com/molinchn/BlogImage/raw/master/img/20200827160106.png)
3. 精确一维线搜索 + 最速下降法:
4. 例题
![](https://gitee.com/molinchn/BlogImage/raw/master/img/20200827160133.png)
![](https://gitee.com/molinchn/BlogImage/raw/master/img/20200827160150.png)
3.3 牛顿法
这里参考博客:
【1】https://blog.csdn.net/itplus/article/details/21896453
1. 牛顿法与阻尼牛顿法
2. 优缺点
3. 例题
![](https://gitee.com/molinchn/BlogImage/raw/master/img/20200827161048.png)
3.4 共轭梯度法
共轭方向法是介于最速下降法和Newton法之间的一种方法。克服了最速下降法的锯齿现象,从而提高了收敛速度;同时,共轭方向法的迭代公式比较简单,不必求目标函数的Hesse矩阵,比Newton法减少了计算量和存储量。是一种比较实用而且有效的方法。
1. 共轭向量及其性质
关于共轭向量的定义:
满足上述条件后,称\(d^0,d^1,…,d^{k-1}\)是G的共轭方向。
当\(Q=I\)时可以发现,\(d^0,d^1,…,d^{k-1}\)相互正交。也就是说:正交是共轭的一种特殊情况,共轭是正交的推广。
2. 共轭方向法的理论基础
用一句话概括那就是:
在精确一维线搜索的情况下,当前迭代点的梯度g与之前所有的搜索方向d正交。
3. 共轭方向法的基本算法框架
4. 如何构造共轭方向:Gram-Schmidt方法
5. 二次函数极小化的共轭梯度法
前面是对共轭方向法+一维线搜索的整理,接下来对二次函数总结成共轭梯度法的理论。
3.【考】 一般函数极小化的共轭梯度法
这部分可能是考试重点
例题比较简单
3.5 拟牛顿法
这里参考博客:
【1】https://blog.csdn.net/songbinxu/article/details/79677948,
【2】https://blog.csdn.net/itplus/article/details/21896453
牛顿法中的Hesse矩阵HH在稠密时求逆计算量大,也有可能没有逆(Hesse矩阵非正定)。拟牛顿法提出,用不含二阶导数的矩阵 \(U_t\) 替代牛顿法中的 \(H^{−1}_t\),然后沿搜索方向 \(−U_tg_t\) 做一维搜索。根据不同的 \(U_t\) 构造方法有不同的拟牛顿法。
注意拟牛顿法的 关键词:
- 不用算二阶导数
- 不用求逆
1. 拟牛顿条件
2. 【重点】DFP算法与推导
DFP公式不用记
这里PPT里的结论是:
\(H_{k+1} = H_{k} - \frac{H_ky_ky_k^TH_k}{y_k^TH_ky_k} + \frac{s_ks_k^T}{y_k^Ts_k}\)
其实这里最后面那个公式下面的\(y_k^Ts_k和前面的\)\(s_k^Ty_k\)的结果是相同的,因此记哪个都可以。
4. DFP算法例题
![](https://gitee.com/molinchn/BlogImage/raw/master/img/20200828165643.png)
5. BFGS算法
无约束优化-本章小结
1. 方法总结
方法 | 搜索方向 | 步长 | 优点 | 缺点 | 性质总结 |
---|---|---|---|---|---|
最速下降法 | \(-\nabla f(x^k) = -g_k\) | 精确一维线搜索 | 1. 程序简单 2.计算工作量小,存储量小 3. 对初始点无要求 4. 具有全局收敛性 |
1. 收敛速度慢 2. 收敛速度为线性 |
全局收敛性 |
牛顿法 - 经典牛顿法 | \(-H_k^{-1}g_k\) | 1 | 1. 收敛速度快 2.具有二次终止性 |
1. 要求二阶连续可微 2. 工作量大 3.仅局部收敛 4. 收敛于鞍点或极大值点可能性并不小 |
二次终止性 局部收敛性 局部二阶收敛性 非下降算法:初始解远离最优解时,\(G_k\)不一定正定,牛顿方向不一定是下降方向,经典牛顿法不一定收敛 |
牛顿法 - 阻尼牛顿法 | \(-H_k^{-1}g_k\) | 精确一维线搜索 | 1. 具有二次终止性 2. 具有全局收敛性 3. 具有局部二阶收敛性 |
1. 要求二阶连续可微 2. 工作量大 |
二次终止性 全局收敛性 局部二阶收敛性 |
共轭梯度法 - 二次函数极小化的FR共轭梯度法 | $$f(x)= \begin{cases} -g_k& \text{k=0} \\ -g_k+\frac{g_kTg_k}{g_{k-1}Tg_{k-1}}d^{k-1}& \text{其他} \end{cases}$$ | 精确一维线搜索 | 1. 计算量小,适合大规模问题 2. 具有全局收敛性 |
收敛速度为线性 | 全局收敛性 全局线性收敛性 下降算法 |
拟牛顿法 - DFP算法 | $d_k = -D_kg_k \ D_k\text{在PPT里用的是}H_k\ \begin{cases} D_0 = I \ D_{k+1} = D_k + \frac{s_ks_kT}{s_{k}Ty_k}-\frac{D_ky_ky_kTD_k}{y_kTD_ky_k} \end{cases} \ 其中 s_k = x^{k+1} - x^{k}, y_k = g_{k+1}-g_k $ | 精确一维线搜索 | 1. 计算量小,适合大规模问题 2. 具有牛顿法类似的收敛速度,比牛顿法更有效 |
- | 求解正定二次函数极小化问题(采用精确一维线搜索): 1. 具有二次终止性:至多经过次迭代即终止 2. 具有遗传性质:即保持满足前面的拟牛顿方程 3. 当\(H_0=I_n\)时,产生的搜索方向是共轭方向 求解一般函数极小化问题: 1. 保持\(H_k\)的正定性,从而保证是下降算法 2. DFP算法具有局部超线性收敛速度 3. 在一定条件下采用精确一维线搜索算法是全局收敛的 |
注:
关于收敛性参看第一章最后一节部分的内容
二次终止性:当一个算法用于求解严格凸二次函数极小值问题时,如果从任意初始点出发,算法经过有限步迭代后可达到函数的极小值点,则称该算法具有二次终止性。