数值优化(Numerical Optimization)学习系列-大规模无约束最优化(Large-Scale Unconstrained Optimization)

概述

当最优化问题参数个数增加,求解问题所需要的时间和空间复杂度会增加。计算时间和空间是一个权衡,只需要存储一阶梯度时,时间复杂度可能为超线性;如果利用Hessian矩阵可以达到二次收敛,但是需要 o(n2) 的空间复杂度。
另外对于拟牛顿算法所得到的Hessian矩阵式稠密的,不能利用到稀疏矩阵的一些性质。针对以上问题本小节给出求解大规模无约束最优化问题的一些思路,主要内容包括

  1. 非精确牛顿方法
  2. 基于有限内存的拟牛顿方法
  3. 稀疏拟牛顿方法
  4. 其他

非精确牛顿方法(Inexact Newton Methods)

在牛顿算法中,根据牛顿方程 2fkpNk=fk ,在Hessian矩阵存在并且可逆的情况下,可以得到搜索方向,并且收敛速度为二次收敛。但是一般情况下Hessian逆矩阵求解复杂度较高,对于稀疏的Hessian可以通过稀疏消元法或者矩阵分解得到。
非精确牛顿方法,可以快速得到搜索方向,一般通过共轭梯度(CG)或者Lanczos方法。通过这些方法可以不用显式存储Hessian矩阵,但是效率没有牛顿方法快。

局部收敛性

非精确牛顿方法需要保证残差满足一定规则保证收敛,对于非精确的搜索方向 pk ,满足 rk=2fkpk+fk ,并且 ||rk||ηk||fk|| ,其中 ηk 的序列称之为forcing sequence,决定了收敛速度。

定理:如果 2fk 存在并且连续,存在最优解x*。对于非精确牛顿方法,如果初始点 x0 在最优解附近,则有 xkx ,并且 ||2f(x)(xk+1x)||η^||2f(x)(xk+1x)||

定理:在上述定理基础上如果每一步的 ηk0 则收敛速度为超线性;进一步,如果 2fk Lipschitz连续并且 ηk=o(|fk|) 则收敛速度为二次收敛。

注:当 ηk=min(0.5,||fk||) 时,方法能得到超线性收敛速度;当 ηk=min(0.5,||fk||) 时,达到二次收敛速度。

Line Search Newton-CG方法

通过CG方法计算得到搜索方向,也称之为Truncated Newton 方法。由于CG算法需要保证Hessian正定,如果Hessian存在非正的特征值,则需要在找到某个下降方向则立即返回,算法如下:
这里写图片描述
算法中关键点是CG算法,该方法能够适用于大规模问题,但是存在一个缺点是当实际中Hessian接近奇异时,该方向不是一个好的选择。

通过上述算法我们可以在不知道Hessian矩阵的前提下计算得到Hessian矩阵和向量的乘积即 2fkd ,d可以为任何向量。另外通过自动微分的方法也可以得到类似解,思路为 2fkd=f(xk+hd)f(xk)h ,其中需要核实的选择向量h。

Trust Region Newton-CG方法

在基础Cauchy Point算法的基础上,优化搜索方向。TR算法的建模方法为

mk(p)
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值