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

article/2025/8/26 17:58:32

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

  • 1. Introduction
  • 2. 牛顿法
    • 2.1 不能保证收敛
    • 2.2 Hessian计算复杂
  • 3. 共轭方向法
    • 3.1 共轭方向
    • 3.2 共轭方向上可以收敛到极小
    • 3.3 共轭梯度法得到的是Q上的共轭方向
    • 3.4 算法效果
  • 4. 拟牛顿法
    • 4.1 拟牛顿法构造的是Q的共轭方向
    • 4.2 确定Hk - 秩1修正公式
    • 4.2 确定Hk - DFP
    • 4.3 确定Hk - BFGS
    • 4.4 BFGS ceres

1. Introduction

拟牛顿法可以理解为使用迭代的方法近似Hessian矩阵,但是拟牛顿法本质上其实是共轭方向法,所以用共轭方向法来理解拟牛顿法更加贴切。

本文的主要内容来自于《最优化导论》(《An introduction to optimization》)

2. 牛顿法

牛顿法在很多地方都有详细的说明,就不在这里赘述了。

2.1 不能保证收敛

一般的非线性函数,牛顿法不能保证从任意起始点都可以收敛到极小值点。结果可能会随着迭代在极小值附件震荡,甚至越走越远。这就要求我们设置合理的步长。

2.2 Hessian计算复杂

另外牛顿法中Hessian矩阵计算十分复杂,于是就引入了拟牛顿法,可以设计近似矩阵来代替复杂的Hessian矩阵。

3. 共轭方向法

共轭方向法的求解的主要是n维的二次型函数:
Alt
通过找到关于Q的一系列共轭方向d,然后分别从每个共轭方向上优化,最终可以在n步之内得到结果。
在这里插入图片描述
同时为了更方便的找到共轭方向,引入使用迭代求出共轭方向的方法,如下的共轭梯度法:
在这里插入图片描述
为了说明清楚,我们需要:

  • 定义共轭方向
  • 通过朝共轭方向更新x,可以收敛到极小值
  • 共轭梯度法构造得到的是共轭方向

3.1 共轭方向

共轭方向的定义如下,Q是上面所述的二次型函数中的表达。
在这里插入图片描述
关于共轭方向还有一个重要引理:


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

相关文章

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,不要像图中那样选择第三个,因为第一…

vivado 2017.4安装步骤

目录:windows安装vivado2017.4;虚拟机ubuntu安装vivado 2017.4;ios安装vivado。 一,windows安装vivado2017.4 xilinx官网下载地址为:https://www.xilinx.com/support/download.html 下载完解压后,如图所示…

vivado2019.2安装+license添加教程

vivado2019.2安装license添加教程 注意: 1.电脑的账户名字一定是英文; 2.压缩文件夹有30个G,安装后会更大,需要预留足够的空间。 1.资源链接 百度网盘: https://pan.baidu.com/s/1xEuB-vzoXWpj40fd1wAEFg 密码:tkk1…

[Software]Vivado 2018.2 安装及激活教程

一、安装 1、 解压文件 注:要将压缩文件解压至无中文的路径中。 2、 双击“xsetup.exe”文件,开始安装 3、 不选择新版本,选择继续安装此版本 4、 点击“Next”出现协议,在“I Agree”前都打勾 5、 版本选择,用户可以…