• 【复习笔记】最优化方法


    第三章 无约束优化方法

    本文是本人研究生课程《最优化方法》的复习笔记,主要是总结课件和相关博客的主要内容用作复习。

    3.1 算法理论基础

    1. 无约束优化问题的最优性条件

    先是一元函数取得极值的条件,高中就学过的

    然后是拓展到多元函数后的理论

    image-20200902143546768

    这三条和前面一元函数的三条是一一对应的,半正定对应大于等于,正定对应严格大于。

    这里的最优性一直在说的都是局部最优性

    2. 无约束凸规划问题的最优性条件

    凸规划就有一个很好的特点,就是只要是局部最优解,那他就是全局最优解,也就是不存在鞍点了,再把前面的思路拓展就可以得到很好的结果了。

    3. 线搜索下降算法及其收敛性

    1. 算法
    2. 收敛性
    3. 收敛速度

    后面的几种方法总览

    参考:

    【1】知乎 : 最优化:线搜索中有最速下降法、牛顿法、拟牛顿法、共轭梯度法,那么他们分别时候用

    最速下降法利用目标函数一阶梯度进行下降求解,易产生锯齿现象,在快接近最小值时收敛速度慢。

    Newton法利用了二阶梯度,收敛速度快,但是目标函数的Hesse矩阵不一定正定。于是出现了修正的Newton法,主要是对不同情况进行了分情况讨论。Newton法的优缺点都很突出。优点:高收敛速度(二阶收敛);缺点:对初始点、目标函数要求高,计算量、存储量大(需要计算、存储Hesse矩阵及其逆)。

    共轭梯度法是介于最速下降法和牛顿法之间的一个方法,相比最速下降法收敛速度快,并且不需要像牛顿法一样计算Hesse矩阵,只需计算一阶导数(共轭梯度法是共轭方向法的一种,意思是搜索方向都互相共轭)。

    拟Newton法是模拟Newton法给出的一个保优去劣的算法。

    3.2 最速下降法

    最速下降方向:

    梯度的定义是:变化最快的方向,其实指向的就是上升最快的方向。

    下降最快的方向是梯度的反方向,即(-g_k)

    1. 算法框架

    2. 优缺点

    3. 精确一维线搜索 + 最速下降法:

    4. 例题

    3.3 牛顿法

    这里参考博客:

    【1】https://blog.csdn.net/itplus/article/details/21896453

    1. 牛顿法与阻尼牛顿法

    img

    img

    img

    2. 优缺点

    3. 例题

    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. 拟牛顿条件

    img

    img

    2. 【重点】DFP算法与推导

    DFP公式不用记

    img

    img

    这里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算法例题

    5. BFGS算法

    img

    无约束优化-本章小结

    1. 方法总结

    方法 搜索方向 步长 优点 缺点 性质总结
    最速下降法 (- abla 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)= egin{cases} -g_k& ext{k=0} \ -g_k+frac{g_kTg_k}{g_{k-1}Tg_{k-1}}d^{k-1}& ext{其他} end{cases}$$ 精确一维线搜索 1. 计算量小,适合大规模问题
    2. 具有全局收敛性
    收敛速度为线性 全局收敛性
    全局线性收敛性
    下降算法
    拟牛顿法 - DFP算法 $d_k = -D_kg_k D_k ext{在PPT里用的是}H_k egin{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. 在一定条件下采用精确一维线搜索算法是全局收敛

    注:

    关于收敛性参看第一章最后一节部分的内容

    二次终止性:当一个算法用于求解严格凸二次函数极小值问题时,如果从任意初始点出发,算法经过有限步迭代后可达到函数的极小值点,则称该算法具有二次终止性。

  • 相关阅读:
    Nancy学习
    微信公众号开发开发问题记-code been used
    C#——委托、Lambda表达式、闭包和内存泄漏
    【协作式原创】查漏补缺之Go的slice基础和几个难点
    【协作式原创】自己动手写docker之run代码解析
    【算法】剑指第二版3.数组中重复数字
    剑指offer第二版速查表
    【协作式原创】查漏补缺之乐观锁与悲观锁TODO
    【协作式原创】查漏补缺之Go并发问题(单核多核)
    【协作式原创】查漏补缺之Golang中mutex源码实现(预备知识)
  • 原文地址:https://www.cnblogs.com/molinchn/p/13641437.html
Copyright © 2020-2023  润新知