当前位置: 首页 > news >正文

优化方法介绍(二)——BFGS 方法介绍

优化方法介绍(二)

本博客是一个系列博客,主要是介绍各种优化方法,使用 matlab 实现,包括方法介绍,公式推导和优化过程可视化

1 BFGS 方法介绍

BFGS 的其实就是一种改良后的牛顿法,因为计算二阶导数 Hessian 矩阵所需的计算资源是比较大的,复杂度为 O ( 2 ⋅ n 2 ) \mathcal{O}(2 \cdot n^2) O(2n2) , 其中 n n n 为函数中的变量数量,当 n n n 比较大时,计算量就相当大了。BFGS 的思路就是,既然更新公式中需要的是 Hessian 矩阵的逆,那我们通过某种方法来拟合它不就好了

p k = − G k − 1 ⋅ g k p_k = -G_k^{-1} \cdot g_k pk=Gk1gk

经过数学家们的推导,Hessian 矩阵的逆 G k − 1 G_k^{-1} Gk1 可以近似为

D k + 1 = ( I − s k ⋅ y k T y k T ⋅ s k ) D k ( I − y k ⋅ s k T y k T ⋅ s k ) + s k ⋅ s k T y k T ⋅ s k D_{k+1} = (I - \frac{\mathbf{s}_k \cdot \mathbf{y}_k^{\mathrm{T}}}{\mathbf{y}_k^{\mathrm{T}} \cdot \mathbf{s}_k}) D_k (I - \frac{\mathbf{y}_k \cdot \mathbf{s}_k^{\mathrm{T}}}{\mathbf{y}_k^{\mathrm{T}} \cdot \mathbf{s}_k}) + \frac{\mathbf{s}_k \cdot \mathbf{s}_k^{\mathrm{T}}}{\mathbf{y}_k^{\mathrm{T}} \cdot \mathbf{s}_k} Dk+1=(IykTskskykT)Dk(IykTskykskT)+ykTskskskT

其中, s k = x k − x k − 1 \mathbf{s}_k = \mathbf{x}_k - \mathbf{x}_{k-1}


http://www.mrgr.cn/news/98809.html

相关文章:

  • 信息科技伦理与道德0:课程安排
  • rk算力集群usb做网卡
  • jenkins凭据管理(配置github密钥)
  • 十三种物联网/通信模块综合对比——《数据手册--物联网/通信模块》
  • openGauss使用指南与SQL转换注意事项
  • 虚幻基础:ue引擎的碰撞
  • Freertos----信号量
  • 【DVWA 靶场通关】 File Inclusion(文件包含漏洞)
  • Orin NX开发板的烧录脚本注解
  • C++11智能指针深度解析:在Visual Studio中高效管理内存
  • Linux网络编程实战:从字节序到UDP协议栈的深度解析与开发指南
  • 【ROS】DWA 规划器
  • Day2-UFS协议栈
  • 基础智能体的进展与挑战——从类脑智能到进化、协作和安全系统(译文)
  • 【c语言】深入理解指针2
  • 1.凸包、极点、极边基础概念
  • Linux 常用命令总结
  • 手动安装 VMware Tools 并设置虚拟机共享 Windows 文件夹
  • 老小区门禁安居宝AJB-FJ10FB数据传输格式
  • 【Docker】运行错误提示 unknown shorthand flag: ‘d‘ in -d ----详细解决方法