无约束最优化方法学习笔记
来源:互联网 发布:淘宝联盟淘客贷款 编辑:程序博客网 时间:2024/06/05 16:17
这一段时间学习优化理论中的一些经典方法,写下一些要点和体会,帮助自己和有需要的人理解最优化方法。本文介绍了如下优化方法的原理和计算步骤:
- 最速下降法。
- 牛顿法。
- 共轭梯度法。
- 变尺度法(变度量法)。
- 线性最小二乘法。
- 非线性最小二乘问题的高斯牛顿法和Levenberg-Marquardt法。
- 坐标轮换法。
1.基础知识
首先来看无约束最优化问题:
其中函数
所谓的最优条件法,是指当函数存在解析形式,能够通过最优性条件求解出显式最优解。对于无约束最优化问题,如果
我们常常就是通过这个必要条件去求取可能的极小值点,再验证这些点是否真的是极小值点。当上式方程可以求解的时候,无约束最优化问题基本就解决了。实际中,这个方程往往难以求解。这就引出了第二大类方法:迭代法。
迭代法,也称为“搜索”法,主要思想是通过简单的运算构造点列,逐渐逼近问题的最优解。这里说的“点”是多维空间中的点,也称为“向量”。还有少部分算法通过构造点的集合来逼近问题的最优解,如单纯形调优法。
用于求解无约束最优化问题的方法可以分为解析法和直接法两大类。解析法在构造迭代公式的过程中往往使用了泰勒展开来作近似或者推导,因此迭代步骤中含有梯度
2.解析法
求解无约束最优化问题的解析法主要有:最速下降法、牛顿法、共轭梯度法(DFP法)和变尺度法(变度量法)。对于特殊的最小二乘问题,有最小二乘法。这些方法各有千秋,除了最小二乘法,后面的方法都针对前面方法的某个问题做了改进。这些方法的核心就是研究如何确定每一步迭代的方向和步长。
2.1最速下降法
最速下降法(Gradient Descent Method)的基本思想是:因为连续函数沿着负梯度方向的下降速度是最快的(这一结论由梯度和方向导数的定义可以推出),所以每次迭代我们都从当前点出发,沿着负梯度方向前进一个最优步长,可以期望能较快逼近函数的极值。
最速下降法仅有三个步骤:
- 设置初始值。设置迭代起点
x0∈Rn ,允许误差ϵ>0 和迭代变量初值k←0 。 - 检查终止条件。如果
||∇f(xk)||<ϵ ,停止迭代输出xk 作为近似最优解;否则转步骤3。 - 迭代,也就是通过一维搜索求下一个迭代点。取搜索方向为负梯度方向
dk=−∇f(x) ,求λk 使得再令f(xk+λkdk)=minλ≥0f(xk+λdk) 转步骤2。xk+1=xk+λdk
步骤中隐含了条件:函数
我们写出它的最优性必要条件
当
在实际使用中,为了简便,也可以使用一个预定义的常数而不用一维搜索来确定步长
最速下降法是最基本的迭代优化方法。它最简单,最基础,通常是收敛的。可以证明,最速下降法是一阶收敛的,往往需要多次迭代才能接近问题最优解。这是它的不足。
2.2牛顿法
牛顿法是从函数的二阶泰勒展开式推导而来,其思想就是利用目标函数二阶近似的解去逼近目标函数的解。将函数
为了计算
有
从而推出
我们将这里的
牛顿法(Newton Method)利用了函数的二阶信息,即黑塞矩阵,来加速迭代收敛。具有二阶收敛速度是它的显著优势。牛顿法的步骤为:
- 设置初始值。给定迭代初值
x0∈Rn ,ϵ>0 ,令k←0 。 - 检查终止条件。如果
||∇f(x)||<ϵ ,迭代终止,xk 为近似最优解;否则,转步骤3。 - 迭代计算。取迭代方向令
dk=−[∇2f(xk)]−1∇f(xk) 转步骤2。xk+1=xk+dkk←k+1
牛顿法要求初始点在最优点附近(泰勒展开的前提就是在邻域内),否则可能不收敛。为了使得牛顿法能够全局收敛,提出了阻尼牛顿法(Damped Newton Method)。阻尼牛顿法的改进在于每次的搜索步长不固定为1,而是通过一维搜索来确定步长。其步骤如下:
1. 设置初始值。给定迭代初值
2. 检查终止条件。如果
3. 取迭代方向
4. 进行一维搜索确定步长
可以证明,当
2.3共轭梯度法
最速下降法收敛速度慢,牛顿法虽然收敛速度快但是需要计算黑塞矩阵的逆矩阵,计算复杂度比较高。有的时候我们希望有一种收敛快且不用计算二阶导数的方法,共轭梯度法(Conjugate Gradient Method)应运而生了。当然,计算量减小的代价是理论推导更加繁琐。
要了解共轭梯度法,首先要了解共轭的概念。设有两个
则称向量
我们用正定二次函数
我们从
它的最优性条件是对
即
新的迭代方向
而作为最优点,
两边左乘
上式表明,搜索方向
可以证明,如果能构造出与
下面推导如何利用梯度构造与
新的搜索方向由负梯度方向和上一次搜索方向的线型组合产生,即
其中
从而解得
总结一下,我们得到了n个搜索方向的递推公式如下:
可以证明,上式得到的
将此公式向一般无约束最优化问题推广,必须消去
(1)FR公式(Fletcher-Reeves)
(2)DM公式(Dixon-Myers)
(3)PRP公式(Polak-Ribiere-Polyak)
当问题为正定二次函数优化问题时,这三个公式是等价的。对非二次函数最优化问题,它们将产生不同的搜索方向。
共轭梯度法的步骤总结如下:
- 设置初始值。迭代初始点
x0 和允许误差ϵ 。 - 检查终止条件。如果
||∇f(x0)||<ϵ ,迭代终止并输出x0 ;否则转步骤3。 - 构造初始搜索方向。并令
d0=−∇f(x0) k=0 - 进行一维搜索。求
λk 使得并令f(xk+λkdk)=minλ≥0f(xk+λdk) xk+1=xk+λkdk - 检查终止条件。如果
||∇f(xk+1)||<ϵ ,迭代终止并输出xk+1 ;否则转步骤6。 - 检查迭代次数。如果
k+1=n ,令转步骤3;否则转步骤7。x0=xn - 构造共轭方向。令
dk+1αk=−∇f(xk+1)+αkdk=||∇f(xk+1)||2||∇f(xk)||2
这里αk 的计算取了FR公式,也可以选取另外两个公式。再令k=k+1 ,转步骤4。
共轭梯度法在
共轭梯度法的Matlab实现请参考我的另一篇文章:Matlab实现FR共轭梯度法。
2.4变尺度法
最速下降法和阻尼牛顿法的迭代公式可以写成
当
我们同样利用二阶泰勒展开来考虑如何近似。将
对上式两边求梯度,有
令
可得如下近似关系
我们可以令
从而近似阻尼牛顿法。为了简化后续推导,记
则上式可以改写为
为了求出
其中
与前面推导的近似式子对比,则
考虑到
解得
回代可得
上述公式由Davidon提出,被Fletcher和Powell改进得到,称为DFP公式。应用DFP公式的拟牛顿法称为DFP法或者变尺度法(变度量法)。
最后总结一下变尺度法的步骤:
- 选取初始值。初始点
x0∈Rn ,允许误差ϵ>0 和G0=In 为单位阵。 - 检查终止条件。如果
||∇f(x0)||<ϵ ,终止迭代并输出x0 ;否则转步骤6。 - 构造初始DFP方向。取
d0=−∇f(x0) ,令k=0 - 一维搜索确定步长
λk ,使得并令f(xk+λkdk)=minλ≥0f(xk+λdk) xk+1=xk+λkdk - 检查终止条件。如果
||∇f(xk+1)||<ϵ ,终止迭代并输出xk+1 ;否则转步骤6。 - 检查迭代次数。如果
k+1=n ,令x0←xn 并转步骤(3);否则转步骤7。 - 构造DFP方向。令令
Gk+1dk+1=Gk+ΔxkΔxTkΔxTkΔgk−GkΔgkΔgTkGkΔgTkGkΔgk=−Gk+1∇f(xk) k←k+1 ,转步骤4。
这里每
共轭梯度法与牛顿法类似,具有二阶收敛速度。
2.5最小二乘法
若干的目标函数的平方和作为目标函数的优化问题就称为最小二乘问题。这是一类特殊的无约束最优化问题,如下式:
其中
首先考虑线性最小二乘问题。当
其中
注意到当
这就是线性最小二乘问题的最优解。其中
接下来考虑非线性最小二乘问题
解决问题的思想与牛顿法相似,就是用目标函数的泰勒展开的最优解去逼近目标函数的最优解。由此产生了下面要介绍的高斯-牛顿法。将
则
这是一个线性最小二乘问题。令
如果
如果记函数的向量
则
则上面推导的公式变为
将
上述公式称为高斯-牛顿迭代公式。可以证明,当迭代初始点接近最优点时,高斯-牛顿法是二阶收敛的。为了解决收敛性问题,模仿阻尼牛顿法,我们可以用以为搜索来确定迭代的步长,从而得到阻尼高斯-牛顿法。它的步骤总结如下:
- 选取初始数据。
x0 ,允许误差ϵ>0 ,令k=0 - 检查终止条件。如果
||∇f(xk)Tf(xk)||<ϵ ,迭代终止并输出xk ;否则转步骤3。 - 计算高斯-牛顿方向
dk=−(∇f(xk)T∇f(xk))−1∇f(xk)Tf(xk) - 进行一维搜索求
λk ,使得并令s(xk+λkdk)=minλ≥0s(xk+λdk) 转步骤2。xk+1=xk+λkdkk←k+1
不要忘记高斯-牛顿法的推导过程中要求雅克比矩阵
其中
3.直接法
直接法是一类不需要函数导数信息的方法,通过试算来寻找优化方向。它的优势在于对函数没有可微假设。劣势是收敛速度往往很慢。
3.1坐标轮换法
坐标轮换法(univariate search technique)的思想极为朴素:从某个初始点
坐标轮换法的步骤描述如下:
- 选取初始点。设定
x0 ,初始误差ϵ>0 ,令k←0 。 - 进行一维搜索。从
xk−1 出发,沿坐标轴方向ek 进行一维搜索,求λk−1 和xk 使得f(xk−1+λk−1ek)xk=minλf(xk−1+λek)=xk−1+λk−1ek - 检查迭代次数。若
k=n ,转步骤4;否则令k←k+1 ,返回步骤2。 - 检查终止准则。若
||xn−x0||<ϵ ,终止迭代输出xn ;否则令x0=xn,k←1 ,返回步骤2。
可以证明,如果每次一维搜索都有唯一最优解,则坐标轮换法是收敛的。
3.2 其他方法
直接法的其他方法还有:步长加速法(模式搜索法,pattern search method),Rosenbrock旋转方向法,Powell法,单纯形调优法等等,这里不介绍了。
4.结语
数学上有一个原则:把复杂问题转化为简单问题。例如:约束优化通过拉格朗日形式转化为无约束优化。将非线性问题通过近似和残差约束转化为线性问题。
无约束最优化问题是优化领域研究的基础性问题。基础性方法,如最速下降法、牛顿法、共轭梯度法,是其他复杂方法的基础。近年来学术和工业界更加常用的交替方向乘子法(ADMM)和原始对偶法(Primal Dual)也是在基础问题和方法上推演而来。因而掌握经典方法的思想对于理解新方法大有裨益。
- 无约束最优化方法学习笔记
- 无约束最优化方法
- 无约束最优化方法
- 无约束最优化方法
- 无约束最优化方法
- 无约束最优化方法
- 无约束最优化方法
- 无约束最优化方法
- 无约束问题的最优化方法
- 无约束最优化方法-牛顿法
- 无约束非线性优化经典算法学习笔记
- 无约束最优化
- 无约束最优化问题
- 无约束最优化一
- 无约束最优化二
- 无约束最优化三
- 无约束最优化四
- 无约束最优化五
- Triangle
- 查找数组中第二个最小元素
- ASP.NET MVC5(3)数据从控制器传递给视图
- java基础
- CSR 8670 开启 GAIA 编译 BLUELIB
- 无约束最优化方法学习笔记
- HDU4786 Fibonacci Tree(Kruskal)
- Chapaev and Potatoes (URAL 1809 暴力)
- POJ 1611 The Suspects(并查集)
- 基于SSH实现全选删除功能
- 回归测试和冒烟测试的区别
- HDU 5366 The mook jong (动态规划,详解)
- 20150809
- Windows下pip安装包报错:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat