问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

无约束非线性优化——最速下降法、牛顿法、共轭梯度法

创作时间:
作者:
@小白创作中心

无约束非线性优化——最速下降法、牛顿法、共轭梯度法

引用
CSDN
1.
https://blog.csdn.net/qq_58675332/article/details/143744377

无约束非线性优化是优化理论中的一个重要分支,广泛应用于机器学习、深度学习等领域。本文将介绍三种基本的无约束优化方法:最速下降法、牛顿法和共轭梯度法。这些方法从不同的角度出发,通过迭代的方式寻找目标函数的极小值点。

本章对应的相关例题可见《无约束非线性优化算法例题-CSDN博客》

目录
1 非线性优化问题的相关概念
1.1 迭代格与要求
1.2 线性搜索
2 最速下降法
2.1最速下降法计算步骤
2.2 最速下降法的总体收敛性
3 牛顿法
3.1 牛顿法计算步骤
3.2 阻尼牛顿法计算步骤
4 共轭梯度法
4.1 轭梯度法求解线性方程
4.2 FR共轭梯度法计算步骤

1 非线性优化问题的相关概念

1.1 迭代问题的结构与格式要求

首先,介绍迭代问题的一般性结构。设非线性规划问题
其中


  • ,即没有约束条件,在函数的整个定义域内寻找最优解,则问题为无约束优化问题

  • ,即表示为约束条件为:
    ,的有约束优化问题


为迭代算法的第k次迭代点,则第k+1次的迭代点表示为:
同时要求保证
且迭代点保持可行,这就是求解得非线性最优化问题的基本迭代格式和要求。

搜索方向
步长因子

1.2 线性搜索

选取步长因子α的问题称为线性搜索问题,它是一个一维搜索问题,其基本要求在于从
出发沿给定的搜索方向
确定
使得
对于这样的问题,有两种解决途径:
(1)精确线搜索。选取
使得

所得的
称为精确步长因子。一般可通过直接搜索或插值法来数值来求解,如0.618法、Fibonacci法、割线法、三点二次插值法等。但是这种 方法往往计算量很大,特别当迭代点远离最优解时,效率较低。

(2)不精确线搜索。
只要求选取
满足使得目标函数(1)每迭代一步都有充分下降即可,这样可以节省工作量。常用的方法有后退法、Armijo-Goldstein法及 Wolfe-Powell法。

定理1
是下降方向,
是精确线搜索的步长因子。若存在常数
使得所有

,则
其中


之间的夹角。

不同的搜索方向将形成不同的最优化方法

2 最速下降法

最速下降法是无约束最优化最简单的方法,由法国科学家Cauchy于1847年提 出,继而由Curry等人进一步研究得到的方法。

设目标函数

附近连续可微,令
。将

处Taylor展 开


,有


,则
为下降方向。且由Cauchy-Schwartz不等式

有当且仅当
时,
最大。因而以为下 降方向的方法称为最速下降法。其迭代格式为

其中
由精确线搜索策略选取。

2.1最速下降法计算步骤

  1. 给定初点
    ,允许误差
    ,置k=1

  2. 计算搜索方向
    ,如果
    停止计算

  3. 由精确线搜索计算步长
    ,使得



  4. ,转步骤2

2.2 最速下降法的总体收敛性

定理2 设函数f(x)二次连续可微,且
,其中
为一常 数。则对任何给定的初始点
,由最速下降算法产生的序列
满足对某 个k有
,或
,或

最速下降法具有计算工作量小,存储量小等优点。但是,最速下降方向仅是函数 的局部性质,对整体求解过程而言,这个方法下降非常缓慢。其原因是精确线性搜索 使得
,即最速下降法中前后两次迭代的搜索方向是正交的。 所 以在靠近极小点附近时的路径呈现锯齿形,如下图下降十分缓慢。

定理3 设函数f(x)二次连续可微,由最速下降算法产生的序列
,收敛于最优 解
。如果存在m,M >0使得对任意属于
领域的x有
则有
线性收敛于

3 牛顿法

为加快收敛速度,我们考虑利用目标函数f(x)在迭代点
处的二阶Taylor展开 式作为逼近函数,并用这个二次函数的极小点序列去逼近目标函数的极小值点。这 就是牛顿法的基本思想。

设目标函数f(x)二次连续可微,将f(x)在当前迭代点
处作Taylor展开,并取二阶近似得

极小化上式右端有

若Hesse矩阵
正定,则得到右端二次函数的极小点,并以它作为无约 束问题最优值点的第k+1次近似,即

这就是牛顿法迭代公式,其中

3.1 牛顿法计算步骤

  1. 给定初点
    ,允许误差
    ,置k=1

  2. 计算
    ,如果
    ,停止计算

  3. 构造牛顿方向



  4. ,转步骤2

定理4 设f(x)二阶连续可微,
为无约束问题的局部较小点,
正 定。如果Hesse矩阵
满足Lipschitz条件,即存在
使得

当初始点
充分靠近
,由牛顿法得到的
收敛到
,且具有二阶收敛速度。

3.2 阻尼牛顿法计算步骤

  1. 给定初点
    ,允许误差
    ,置k=1

  2. 计算
    ,如果
    停止计算

  3. 构造牛顿方向
    ,由精确线搜索计算步长
    使得



  4. ,转步骤2

定理5 设f(x)二阶连续可微,对任意初始点
,存在常数m>0使得f(x)在水平集
上有
则在精确线搜索下,阻尼牛顿法产生的序列
满足:


  1. 为有限序列时,其最后一个点为唯一极小点


  2. 为无限序列时,其收敛到唯一极小点

4 共轭梯度法

4.1 轭梯度法求解线性方程

给出共轭梯度法求解线性方程的步骤:


,A对称正定,求解:

给定初始近似向量
,取

对于
计算

计算过程中,若
,则
为方程
的解,停止计算。

4.2 FR共轭梯度法计算步骤

注意到二次函数的Hesse矩阵即为常数矩阵A,且Hesse矩阵A出现在计算

的公式中。而对一般非线性函数而言,每次迭代都需重新计算当前点的Hesse矩阵
计算量偏大。因此为方便将方法推广,我们需对

的计算做必要的修改。

  1. 对于非二次函数,精确步长因子无法获得显式公式表达,
    将由精确线搜索过 程确定,即计算一维优化问题

  2. 我们必须去除
    公式中的Hesse矩阵的计算。
    的计算可以只用目标函数值和梯度值完成公式修正,得到一般函数情形 下的Fletcher −Reeves公式:

FR共轭梯度法步骤

  1. 给定初点
    ,允许误差
    ,令
    ,置k=1

  2. 如果
    ,停止计算

  3. 由精确线搜索计算步长
    ,使得
    ,令

  1. 计算

  2. 令k =k+1, 转步骤2.

由于共轭梯度法中含有最速下降法步骤,因此在较弱的条件下可以保证方法的总体收敛性。

定理6 设f(x)在有界水平集
上连续可微且下有界,则由共轭梯度算法产生的序列
至少有一个聚点是驻点,即


  1. 是有穷点列时,其最后一个点是f(x)的驻点


  2. 是无穷点列时,其必有聚点且每个聚点都是f(x)的驻点

注:本篇内容均为对《高等工程数学》(朱元国 范金华 张军 编著,科学出版社)摘录与个人归纳总结,如需要更加详细了解,可阅读原书“第5章 最忧化方法”部分。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号