最优化学习笔记(四)——最速下降法
2016-05-29 10:19
3359 查看
一、最速下降法的理念
最速下降法是梯度方法的一种实现,它的理念是在每次的迭代过程中,选取一个合适的步长αk,使得目标函数的值能够最大程度的减小。αk可以认为是函数ϕk(α)=f(x(k)−α∇f(x(k)))的极小值点:αk=argminf(x(k)−α∇f(x(k))),α≥0
由梯度迭代公式可知:x(k+1)=x(k)−α∇f(x(k)), 上式的解释是找到最优的迭代点x(k+1), 使得函数f(x)取得极小值时,求出步长αk。
概述最速下降法的过程:在每一步的迭代中,从点x(k)出发,沿着梯度的负方向(求极小值点)展开一维搜索,直到找到步长最优值,确定新的迭代点x(k+1)。最速下降法的相邻搜索方向都是正交的。
二、最速下降法的两个命题和停止条件
2.1 最速下降法的两个命题
命题1 利用最速下降法搜索函数f:R2→R的极小值点,迭代过程产生的序列为{x(k)}∞k=0, 那么,x(k+1)−x(k) 与 x(k+2)−x(k+1)正交对所有k≥0都成立。命题2 利用最速下降法搜索函数f:Rn→R的极小值点,迭代过程产生的序列为{x(k)}∞k=0, 如果 ∇f(x(k))≠0, 那么f(x(k+1))<f(x(k))。
命题1说明在迭代过程中,没产生一个新点,对应的目标函数值都会下降。命题2说明了最速下降法的下降特性:只要∇f(x(k))≠0, 就有f(x(k+1))<f(x(k))。对于某个k, 如果∇f(x(k))=0,说明x(k)满足局部极小点的一阶必要条件,此时x(k+1)=x(k),这可以作为停止规则的基础。
2.2 几种停止规则
在实际中,采用数值计算的方法很难恰好得到梯度为0的结果,因此以梯度为0作为停止规则很不恰当。以下, ϵ>01.|f(x(k+1))−f(x(k))|<ϵ
2.||x(k+1)−x(k)||<ϵ
3.|f(x(k+1))−f(x(k))||f(x(k))|<ϵ
4.||x(k+1)−x(k)||||x(k)||<ϵ
5.|f(x(k+1))−f(x(k))|max{1,|f(x(k))|}<ϵ
6.||x(k+1)−x(k)||max{1,||x(k)||}<ϵ
上边的3,4式为1,2式的相对值,而5,6式是为了避免3,4式中的分母过小进行的修改。
三、二次型中最速下降法的应用
首先,二次型的目标函数为f(x)=12xTQx−bTx
其中,Q为对称正定矩阵(假设),b∈Rn,x∈Rn,故有:
∇f(x)=Qx−b
令:
g(k)=∇f(x(k))=Qx(k)−b
则,最速下降法的迭代公式:
x(k+1)=x(k)−αkg(k)
其中,
αk=argminα≥0f(x(k)−αg(k))ϕk(α)=f(x(k)−αg(k))
当目标函数是二次型函数时,可以确定x(k)处的步长αk的解析式。当g(k)=0时,迭代停止,当g(k)≠0时,利用局部极小点的一阶必要条件可得:
ϕ′k(α)=(x(k)−αg(k))TQ(−g(k))−bT(−g(k))
ϕ′k(α)=0时, αg(k)TQg(k)=(x(k)TQ−bT)g(k),因为Q对称,Q=QT,得:
x(k)TQ−bT=g(k)T
所以:
αk=g(k)Tg(k)g(k)TQg(k)
所以,目标函数为二次型函数时,最速下降法的迭代公式为:
x(k+1)=x(k)−g(k)Tg(k)g(k)TQg(k)g(k)
其中,
g(k)=∇f(x(k))=Qx(k)−b
相关文章推荐
- MySQL 优化
- Google排名优化的几个影响因素
- DB2优化(简易版)
- Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架
- C#中尾递归的使用、优化及编译器优化
- 对优化Ruby on Rails性能的一些办法的探究
- 优化Ruby脚本效率实例分享
- Asp编码优化技巧
- 如何监测和优化OLAP数据库
- mysql -参数thread_cache_size优化方法 小结
- 深入学习SQL Server聚合函数算法优化技巧
- MySQL常见的底层优化操作教程及相关建议
- 详解mysql的limit经典用法及优化实例
- 数据库学习建议之提高数据库速度的十条建议
- oracle数据库sql的优化总结
- SQL语句性能优化(续)
- SQL语句优化提高数据库性能
- SQL优化经验总结
- SQL优化技巧指南
- SQL Server优化50法汇总