最优化学习 拟牛顿法(Quasi-Newton Method)

article/2025/8/26 17:55:10

拟牛顿法(Quasi-Newton Method)

全部笔记的汇总贴:最优化学习目录


拟牛顿法(Quasi-Newton Method)

Quasi−NewtenMethod  d k = − B − 1 ∇ f ( x k ) \text{Quasi−NewtenMethod } d^{k}=-B^{-1} \nabla f\left(x^{k}\right) Quasi−NewtenMethod dk=B1f(xk)
在这里插入图片描述

得到矩阵 B k + 1 B_{k+1} Bk+1

拟牛顿方程 : \text{拟牛顿方程 :} 拟牛顿方程 : ∇ f ( x k + 1 ) − ∇ f ( x k ) = B k + 1 ( x k + 1 − x k ) \nabla f\left(x^{k+1}\right)-\nabla f\left(x^{k}\right)=B_{k+1}\left(x^{k+1}-x^{k}\right) f(xk+1)f(xk)=Bk+1(xk+1xk) y k = ∇ f ( x k + 1 ) − ∇ f ( x n ) y_{k}=\nabla f\left(x^{k+1}\right)-\nabla f\left(x^{n}\right) yk=f(xk+1)f(xn) s k = x k + 1 − x k s_{k}=x^{k+1}-x^{k} sk=xk+1xk
这样我们就可以得到 y k = B k + 1 s k y_{k}=B_{k+1}s_{k} yk=Bk+1sk,记 H k + 1 = ( B k + 1 ) − 1 H_{k+1}=(B_{k+1})^{-1} Hk+1=(Bk+1)1
在这里插入图片描述

获取 B k + 1 B_{k+1} Bk+1 H k + 1 H_{k+1} Hk+1

  • 第一类方法:选择满足拟牛顿方程且与 B k B_{k} Bk近似的矩阵
  • 第二类方法:对 B k B_{k} Bk H k H_{k} Hk进行校正,如 B k + 1 = B k + Δ B B_{k+1} = B_{k} + \Delta B Bk+1=Bk+ΔB
    • rank-2 校正 Δ B \Delta B ΔB秩为2 DFP方法,BFGS方法
    • rank-1 校正 Δ B \Delta B ΔB秩为1 SR-1方法

在这里插入图片描述

DFP方法(Davidon-Fletche Powell)

可以看作是rank-2校正
( D F P ) H k + 1 = H k − H k y k y k T H k y k ⊤ H k y k + s k s k ⊤ y k ⊤ s k (D F P) H_{k+1}=H_{k}-\frac{H_{k} y_{k} y_{k}^{T}H_{k}}{y_{k}^{\top} H_{k} y_{k}}+\frac{s_{k} s_{k}^{\top}}{y_{k}^{\top} s_{k}} (DFP)Hk+1=HkykHkykHkykykTHk+yksksksk
在这里插入图片描述

BFGS方法(Broyden-Fletcher-Goldfarb-Shannon)

可以看作是rank-2校正
( B F G S ) B k + 1 = B k − B k s k s k ⊤ B k s k ⊤ B k s k + y k y k ⊤ y k ⊤ s k (B F G S) B_{k+1}=B_{k}-\frac{B_{k} s_{k} s_{k}^{\top} B_{k}}{s_{k}^{\top} B_{k} s_{k}}+\frac{y_{k} y_{k}^{\top}}{y_{k}^{\top} s_{k}} (BFGS)Bk+1=BkskBkskBkskskBk+ykskykyk

在这里插入图片描述

Broyden类算法和Sherman-Morrison公式

Sherman-Morrison公式:
假设 A A A n n n阶可逆矩阵, u , v u,v u,v n n n维向量,且 ( A + u v T ) \left(A+u v^{T}\right) (A+uvT)也是可逆矩阵,则
( A + u v T ) − 1 = A − 1 − A − 1 u v T A − 1 1 + v T A − 1 u \left(A+u v^{T}\right)^{-1}=A^{-1}-\frac{A^{-1} u v^{T} A^{-1}}{1+v^{T} A^{-1} u} (A+uvT)1=A11+vTA1uA1uvTA1

在这里插入图片描述

SR-1方法

( S R − 1 ) B k + 1 = B k + ( y k − B k k ) ( y k − B k s k ) T ( y h − B u s k ) ⊤ s k (SR-1)B_{k+1}=B_{k}+\frac{\left(y_{k}-B_{k_{k}}\right)\left(y_{k}-B_{k}s_{k}\right)^{T}}{\left(y_{h}-B_{u} s_{k}\right)^{\top} s_{k}} (SR1)Bk+1=Bk+(yhBusk)sk(ykBkk)(ykBksk)T
在这里插入图片描述


http://chatgpt.dhexx.cn/article/yyESx2Ax.shtml

相关文章

牛顿法与拟牛顿法(含代码实现)

1. 牛顿法 牛顿法(英语:Newton’s method)又称为牛顿-拉弗森方法(英语:Newton-Raphson method),它是一种在实数域和复数域上近似求解方程的方法。 牛顿法的基本思想是使用函数 f ( x ) {\dis…

拟牛顿法(DFP、BFGS、L-BFGS)

拟牛顿法 一、牛顿法 1.1 基本介绍 牛顿法属于利用一阶和二阶导数的无约束目标最优化方法。基本思想是,在每一次迭代中,以牛顿方向为搜索方向进行更新。牛顿法对目标的可导性更严格,要求二阶可导,有Hesse矩阵求逆的计算复杂的缺…

Quasi-Newton拟牛顿法(共轭方向法)

Quasi-Newton拟牛顿法(共轭方向法) 1. Introduction2. 牛顿法2.1 不能保证收敛2.2 Hessian计算复杂3. 共轭方向法3.1 共轭方向3.2 共轭方向上可以收敛到极小3.3 共轭梯度法得到的是Q上的共轭方向3.4 算法效果4. 拟牛顿法4.1 拟牛顿法构造的是Q的共轭方向4.2 确定Hk - 秩1修正…

BFGS算法

今天,我来讲一种在机器学习中常用到的优化算法,叫做BFGS算法。BFGS算法被认为是数值效果最好的拟牛顿 法,并且具有全局收敛性和超线性收敛速度。那么接下来将会详细讲解。 Contents 1. 什么是拟牛顿法 2. 拟牛顿法原理 3. DFP算法原理 4. BF…

拟牛顿法及其matlab实现

目录 一.前言 二.拟牛顿法的基本思想 三.秩1矫正Hk公式 四.算法步骤 五.代码实现 1.秩1矫正算法 2.目标函数 3.目标函数梯度 4.主函数 六.仿真结果与分析 一.前言 上上上篇文章介绍了牛顿法和修正牛顿法。想看的话可以往后翻。牛顿法有二阶的收敛速度,但He…

InnoDB数据库死锁

目录 场景描述问题分析解决方法延伸:数据库死锁数据库死锁例子 正文 回到顶部 场景描述 在update表的时候出现DeadlockLoserDataAccessException异常 (Deadlock found when trying to get lock; try restarting transaction...)。 回到顶部 问题分析 这个异常并不会…

mysql数据库死锁原因分析

一、死锁模拟复现 1、当前自己电脑的mysql版本8.0.22 2、数据库的隔离级别--可重复读(默认隔离级别) 3、自动提交关闭 4、表结构,age为非唯一索引,对下面整个案例非常重要 5、 1、事务A执行更新操作,更新成功 2、事务…

处理数据库死锁问题

在实际的项目环境中碰到了如下的问题 Microsoft.Data.SqlClient.SqlException (0x80131904): 事务(进程 ID 98)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。 怀疑是因为数据库查询和修改中产生的死锁问题,造成的上述原因…

数据库死锁:原因和解决办法

理解数据库中的死锁 在数据库的上下文中,死锁是指两个或多个事务无法进行的情况,因为每个事务都在等待另一个事务释放资源。这可以类比为事务的循环链,每个事务都在等待链中的下一个事务释放资源。以下是一个死锁场景的视觉表示:…

Java面试必问:死锁(多线程死锁+数据库死锁)

死锁 接下来从几个方面介绍: 多线程死锁多线程死锁解决办法数据库死锁数据库死锁解决办法 多线程死锁是怎么造成的? 多线程锁定同一资源会造成死锁线程池中的任务使用当前线程池也可能出现死锁 参考连接: https://blog.csdn.net/qq_3506…

MySQL数据库死锁了,该怎么办?一文全解最新教程

文章目录 正文死锁的发生为什么会产生死锁?Insert 语句是怎么加行级锁的?1、记录之间加有间隙锁2、遇到唯一键冲突 如何避免死锁? 之前分享过 MySQL 死锁的文章,然后很多读者对「插入意向锁」认识很迷糊。 大家误以为「插入意向锁…

5 分钟理解数据库死锁

图片来源:网络 文章目录 死锁是如何产生的?如何解决并避免死锁总结 🍺知人者智,自知者明。胜人者有力,胜己者强。知足者富,强行者有志。不失其所者久,死而不亡者寿。——老子 大家好&#xff01…

数据库死锁场景

场景一: 单一线程多次进入子事务发生死锁 问题: 线上问题发生了死锁,但通过死锁日志发现一直在等待查询结果。我们使用的数据库是PGsql,默认的隔离级别是“读已提交”,按理来说查询不会加锁,导致一度被带偏…

数据库常见死锁原因及处理

目录 前言什么是死锁死锁产生的四个必要条件 1. 表锁死锁死锁场景解决方案建议 2. 行锁死锁2.1 两个事务分别想拿到对方持有的锁,互相等待,于是产生死锁死锁场景解决方案 2.2 共享锁转换为排他锁死锁场景解决方案 3. INSERT ... ON DUPLICATE KEY UPDATE…

数据库死锁分析与解决

一、死锁的表现 1、错误信息是:事务(进程 ID)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。 2、错误信息是:事务(进程 ID )与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务。 二、…

数字 IC 技能拓展(1)Xilinx_Vivado_SDK_2019.1 安装详细教程

引言 工欲善其事必先利其器,而君之“器”尚无,就更别谈“事”了。赶紧!我们需要下载并安装一个 Xilinx Vivado 软件!!接下来就飞速地开始我们的 Xilinx_Vivado_SDK_2019.1 详细安装教程!!&#…

win10安装vivado + vitis 2019.2 教程

win10安装vivado vitis 2019.2 教程 安装包:链接:https://pan.baidu.com/s/1fPlNDzpC0EPXMhOloDyzfA 提取码:1234 网上其他博主的安装教程,比如:vivado2019.2的安装,最后是没有安装上vitis PS端开发软件…

vivado入门教程

vivado入门教程 基本步骤例程实现 第一次写博客,也是第一次使用vivado,自己也在学习之中,欢迎大家的评论啊! 基本步骤 一、新建工程 二、选择工程路径及命名 三、一路next到下图,确定芯片的型号 四、添加源文件 五…

手把手教你安装vivado2015.4开发环境

//vivado2015.4安装教程 //作者:紫菜蛋花汤 //时间:2018.7.8 //版本:V1 准备工作: 1.vivado2015.4安装包 官方下载压缩包文件名:Xilinx_Vivado_SDK_2015.4_1118_2.tar 个人百度云连接:https://pan.ba…

Vivado 2015.4 安装教程(含license)

首先先下载vivado2015.4的压缩文件,可以从网盘里下载: 百度网盘链接:点击链接 下载后解压: 点击xsetup.exe文件 点击Next 点击Next 一定要选择第一个Vivado HL WebPack,不要像图中那样选择第三个,因为第一…