梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法

Python_共轭梯度法与最速下降法之间的比较 Python实现共轭梯度法与最速下降法的比较 阅读详情

优化对象:凸函数

梯度下降法

顾名思义,就是沿着与梯度相反的方向迭代。(梯度方向是增长最快的方向,所以负梯度方向是下降最快的方向)。

最速下降法

最速下降法是梯度方向法的一种,与上面的梯度下降法不同的是:梯度下降法是固定的学习率,最速下降法是变化的学习率(具体见下面的介绍)。

特点:每一次迭代时的梯度方向与上一次迭代时的梯度方向正交

牛顿法

在某一个特定点处将函数泰勒展开(仅保留至二次项),用泰勒展开的二次函数代替原函数求最小点。求解最小点的方法就是:令二次函数对变量x的一阶导数等于0,求解对应的x点。

在泰勒展开时,因为保留到二次项,因此存在对原函数求二阶导数的运算,即需要用到原函数的Hessian矩阵。因为在将函数进行泰勒展开为二次函数时,可能得到的函数对原函数的拟合并不准确,所以仅仅一步迭代得到的不是真正的最小值,所以,有时候需要多迭代几次。

特点:

           1. 需要用到原函数的二阶导(Hessian矩阵),因此需要原函数二阶可导。。

           2. 要用到矩阵求逆,(Hessian 矩阵求逆)。矩阵求逆有时并不是很方便,因此会带来一定的计算量。

           3. 牛顿法要在某个特定点处展开,如果初始点距离真正的极值点较远,算法可能不收敛。

           4. 牛顿方向(见下文介绍),是“除以二阶导的负梯度方向”或"负的一阶导与二阶导的比值"d^{(k)} =-{G(x^{(k)})}^{-1}\nabla f(x^{(k)}) = -\frac{\nabla f(x^{(k)})}{G(x^{(k)})},其中\nabla f(x^{(k)})是一阶导数,G(x^{(k)})是二阶导数,Hessian矩阵

 

更正上图中的公式(3.2.3),增加一个学习率参数\alpha_k ,更新后的(3.2.3)为:

x^{(k+1)} = x^{(k)} - \alpha_kG(x^{(k)})^{-1}\nabla f(x^{(k)})      

可见,与梯度下降法与最速下降法相比,牛顿法就是加了一个Hessian矩阵(即原函数的二阶导数)。

所以,与梯度下降法与最速下降法类比,牛顿法也可以通过变化的学习率改进成“最速牛顿法”(这个词是我杜撰的,不存在这种说法,希望不会引起误导)。真正的学术名字叫“阻尼牛顿法”(参考《最优化方法(赖炎连 贺国平 清华大学出版社)》3.2节)。

Levenberg-Marquardt 修正

牛顿法存在的一个缺点是,二阶导数(Hessian矩阵)不一定正定,有可能会使上面的牛顿方向变成上升方向。针对这一缺点,Levenberg-Marquardt 提出了改进方案:对Hessian矩阵增加一个正定矩阵D, 强迫新的”Hessian矩阵“(已经不是原来的Hessian矩阵了,或者已经不能用Hessian矩阵命名了,这里为了方便描述这么称呼)为正定,即,使:

G(x^{(k)}) = G(x^{(k)})+D

D是人为定义的一个正定矩阵,常取D=I_n为n阶单位矩阵。

拟牛顿法

根据以上分析,牛顿法需要用到矩阵求逆,这有时很困难。拟牛顿法就是为了解决这一个问题:用一个新的矩阵H_k来代替Hessian矩阵的逆G_k^{-1}。具体如下:

共轭方向发,共轭梯度法

可参考共轭方向法,共轭方向法

 

参考:【机器学习之数学】02 梯度下降法、最速下降法、牛顿法、共轭方向法、拟牛顿法

             《最优化方法(赖炎连 贺国平 清华大学出版社)》3.2节,3.3节

 

 

【下降算法】最速下降法、Newton法、共轭梯度法 文章目录1. 一维搜索2. 最速下降法最速下降法特征最速下降法的优缺点3. Newton法算法基本思想牛顿法和梯度下降法的效率对比 1. 一维搜索 最优化问题一般选择某一组变量,然后在满足一定的限制条件下,求出使目标值达到最优(最大或最小)的变量值。大部分时候,最优化问题都采用迭代计算的方式来求解。而大多数迭代下降算法都具有的共同点是在得到某次迭代点xkx^kxk后,需要按照一定规则来确定一个方向dkd^kdk,沿着该方向在直线上求函数的极小点得到下一个迭代点xxxk+1 。 这样不断在一维的目标函数上,求 阅读详情

相关推荐

共轭梯度法(Conjugate Gradient)

共轭梯度法(Conjugate Gradient)是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一。 以上参考百度百科的共轭梯度法,但是一开始没看明白,结合《数值分析》中的一些解释,结合自己的理解,算是...

maum61的专栏 9766

最优化方法总结——梯度下降法、最速下降法、牛顿法、高斯牛顿法、LM法、拟牛顿法

最优化方法总结——梯度下降法、最速下降法、牛顿法、高斯牛顿法、LM法、拟牛顿法。总结了算法的迭代公式以及改进的点和解决的问题

Dfreedom.的博客 2万+

机器学习中的非梯度下降方法

对比梯度下降方法之外的拟牛顿法、共轭梯度法、弹性梯度法、坐标下降法等

scott198512的博客 1256

最优化方法——Newton方法

1. 问题介绍:在最优化方法中,Newton方法是一个比较经典的方法,它常用来求解无约束的优化问题或含有等式约束的优化问题。准确的说,Newton方法一般分为纯Newton方法和拟Newton方法。今天我们考虑的是无约束优化问题的纯Newton方法,其他衍生方法后续再讲解。 求解的问题是:min⁡f(x)\min {\kern 1pt} f(x)minf(x) 2. Newton方向的解释与推导 ...

wang136958280的博客 5429

【信息科学与工程学】【数据科学】第十八篇 数值分析 系列二 数值算法设计01

编号类型领域问题问题的数学分析及数值分析算法逐步推理思考的数学表达式参数列表及参数的边界范围及条件及常数关联知识1数值积分数值逼近计算定积分 I=∫ab​f(x)dx的近似值。数学分析:将积分区间等分,利用插值多项式近似被积函数,构造机械求积公式。数值分析:Newton-Cotes公式是等距节点的插值型求积公式。高阶公式(n≥8)因Cotes系数有正负,数值不稳定。偶阶公式(如Simpson)具有n+1次代数精度。为提高精度,常采用复化求积法(将区间细分后应用低阶公式)。

weixin_49199313的博客 157

【信息科学与工程学】计算机科学与自动化——第十篇 芯片设计30 芯片中的数学1

所有涉及货币流动的岗位都受到严格的法律法规和行业准则约束,包括中国人民银行的各项货币政策工具管理规定、银行间市场交易规则、支付清算系统管理办法以及企业司库管理的相关指导意见。:在货币流动链条中,距离资金源头(央行投放)或关键流转节点越近的岗位,对资金的控制力、经手规模和影响力越大。处于资金流转的“管道”中,虽不直接决定资金量,但负责海量资金交易的安全、准确、高效清算,是货币流通的“基础设施”维护者。《关于规范金融机构资产管理业务的指导意见》(资管新规),要求信托业务打破刚性兑付,向净值化、标准化转型。

weixin_49199313的博客 410

梯度下降法和最速下降法区别

1. 前言: 细微之处,彰显本质;不求甚解,难以理解。 一直以来,我都认为,梯度下降法就是最速下降法,反之亦然,老师是这么叫的,百度百科上是这么写的,wiki百科也是这么说的,这么说,必然会导致大家认为,梯度的反方向就是下降最快的方向,然而最近在读Stephen Boyd 的凸优化的书,才发现事实并非如此,梯度下降和最速下降并不相同,梯度方向也不一定总是下降最快的方向。 2. 梯度下降法 ...

万物并作,吾以观复 3万+

非线性优化算法全解析:无导数、拟牛顿与信赖域实践指南

优化算法是工程问题从数学建模走向落地求解的关键环节。当目标函数无法给出闭式解或梯度信息昂贵时,无导数优化方法如Nelder-Mead与Powell凭借简单可靠的特性成为首选;而面对光滑可微的目标函数,BFGS及其低内存变体L-BFGS以超线性收敛速度和较低开销在工业界广泛应用。信赖域与Levenberg-Marquardt算法则专精于非线性最小二乘问题,通过动态调整步长和阻尼因子平衡收敛速度与稳定性。约束优化场景下,SLSQP与增强拉格朗日法提供了灵活处理复杂边界的途径。实际工程中,算法选型、参数整定与收敛

weixin_34082854的博客 308

【机器学习之数学】02 梯度下降法、最速下降法、牛顿法、共轭方向法、拟牛顿法...

目录 梯度下降法 机器学习中的梯度下降法 最速下降法 二次型目标函数 牛顿法 Levenberg-Marquardt 修正 梯度下降法和牛顿法谁快? 共轭方向法 什...

weixin_30693683的博客 455

告别手动操作!用Python脚本批量处理Siemens NX零件文件(导入/导出/移除参数)

本文详细介绍了如何利用Python脚本实现Siemens NX零件文件的批量处理,包括导入、导出和移除参数等操作。通过NX Open API和Python UF接口,工业设计师可以大幅提升工作效率,告别繁琐的手动操作。文章提供了完整的实战指南,涵盖环境配置、核心功能实现以及性能优化技巧,特别适合需要进行Siemens-NXUG二次开发的工程师参考。

weixin_28222493的博客 259

腾讯云运维工程师认证TCA--真题(最新2022.11)

解析:云原生应用的12要素,1.基准代码:一份基准代码,多份部署;解析:腾讯云主账号具备对其名下资源(包括存储桶)的最大权限,您虽然可以在存储桶策略中限制几乎所有操作,但主账号始终具备 PUT Bucket Policy 操作的权限,主账号调用该操作不检查存储桶策略。解析:瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。解答:云原生五大关键技术:微服务、容器化、DevOps、持续交付。

e1210101的博客 9915

newff

创建 net = newff(P,T,S) % 这两种定义都可以 net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF) 参数 P:输入参数矩阵。(RxQ1),其中Q1代表R元的输入向量。其数据意义是矩阵P有Q1列,每一列都是一个样本,而每个样本有R个属性(特征)。一般矩阵P需要归一化,即P的每一行都归一化到[0 1]或者[-1 1]。 T:目标参数矩阵。(SNxQ2),Q2代表SN元的目标向量。 S:N.

liangjiayy的博客 7340

手把手教你排查libstdc++.so.6版本问题:从GLIBCXX缺失到完美解决

本文深入解析Linux系统中常见的GLIBCXX版本缺失问题,以`ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version 'GLIBCXX_3.4.29' not found`为例,从动态链接原理入手,提供使用`strings`和`find`命令的诊断方法,并详细对比了四种解决方案的优缺点。文章重点推荐通过设置`LD_LIBRARY_PATH`或更新系统库的安全策略,并最终建议使用Docker容器化技术实现环境依赖的根治与统一管理。

j7k8l的博客 300

湘潭大学-优化理论-复习3

湘潭大学-优化理论-复习3

oymaster's blogs 483

同步调相机启动与并网控制技术方案

同步调相机起动与并网控制技术方案采用背靠背变流器系统,通过静止变频器(SFC)策略实现无原动机驱动的同步电机从静止到同步转速的平稳起动。方案详细阐述了硬件自检、模块初始化、转子位置检测等关键环节,重点解决启动转矩为零、冲击电流大等挑战。系统基于STM32或C2000系列控制器,包含网侧/机侧变流器、检测保护单元及通信接口,通过励磁脉冲和电压响应分析实现高精度转子初始定位,为后续并网提供必要条件。代码级实现涵盖了ADC自检、数字IO验证及通信端口测试等核心功能。

huanghm88的专栏 306

医学图像处理实战:利用OpenSlide解析病理SVS切片的完整解决方案

本文介绍了使用openslide处理病理SVS切片的完整流程,从基础安装到科研应用。主要内容包括:1)SVS切片特点及openslide工具简介;2)环境配置与软件安装;3)基础操作:读取切片、查看信息、可视化不同层级图像;4)进阶操作:坐标裁剪与批量处理;5)科研方向拓展:结合AI模型进行病理分割分类、量化分析及可视化报告。教程提供了完整的代码示例,帮助毕业设计学生快速掌握病理图像分析的核心技能。

m0_71589036的博客 309

从梯度下降到牛顿法:二阶优化原理与BFGS/L-BFGS实战解析

在机器学习和科学计算领域,优化算法是寻找模型最优参数的核心工具。梯度下降法作为基础的一阶优化方法,通过目标函数的梯度信息确定下降方向,但其仅利用一阶导数,在病态条件问题上收敛缓慢且易震荡。为了提升效率,二阶优化方法应运而生,其核心原理是利用海森矩阵(Hessian Matrix)提供的曲率信息,构建局部二次模型,从而实现更精确的迭代方向预测和更快的收敛速度。牛顿法作为经典二阶方法,通过直接计算并利用海森矩阵及其逆,理论上能达到局部二次收敛,但面临计算成本高、存储需求大及矩阵正定性要求等工程挑战。为此,拟牛顿

448

微信小程序 - error_msg:net::ERR_CONNECTION_RESET“(“errno“:600001,“errMsg“:“uploadFile:fail errcode:-101)

"errno":600001,"errMsg":"uploadFile:fail errcode:-101 cronet_error_code:-101 error_msg:net::ERR_CONNECTION_RESET"微信小程序,微信小程序wx.uploadFile报错,uniapp微信小程序uni.uploadFile上传文件报错,微信小程序调用wx.uploadFile返回错误ERR_CONNECTION_RESET,如何解决这个问题,上传图片出现报错,小程序上传视频报错,上传文件出现报错,如何

🏆 前端领域优质创作者 5410

梯度下降法 与 最速下降法 的区别

最速下降法与梯度下降法基本上是相同的,就是选择该点梯度的反向方向进行搜索。 梯度下降法中并没有规定步长一定是多少,往往开始人为规定一个步长,然后根据实际情况逐渐缩小步长。 而最速下降法的步长则是在求出梯度方向后,把步长变量带入式中,通过求取函数f()的最小值以获取在该点步长的最佳值。 下面给出一个 最速下降法的一个例题: ...

macunshi的专栏 3515

【计算机视觉】语义分割实战:FCN、U-Net与DeepLab系列详解

语义分割实战:FCN、U-Net与DeepLab系列详解,人工智能、大模型、AI深度学习在计算机视觉领域取得了令人瞩目的进展,语义分割作为计算机视觉领域的关键任务,旨在将图像中的每个像素都分配到特定的类别中,实现对图像内容的精细理解。与目标检测关注物体的类别与位置不同,语义分割能够对场景中的所有元素进行像素级别的分类,这在自动驾驶、医学图像分析、遥感图像解译等众多领域都有着至关重要的应用。例如,在自动驾驶中,准确的语义分割可以帮助车辆识别道路、行人、交通标志等,为安全行驶提供决策依据;在医学图像分析中……

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 9万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Newton法(牛顿法 Newton Method)

1、牛顿法应用范围 牛顿法主要有两个应用方向:1、目标函数最优化求解。例:已知 f(x)的表达形式,,求 ,及g(x)取最小值时的 x ?,即 由于||f(x)||通常为误差的二范数,...

dok22260的博客 1084

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

最速下降法/steepest descent,牛顿法/newton,共轭方向法/conjugate direction,共轭梯度法/conjugate gradient 及其他

在最优化的领域中,这“法”那“法”无穷多,而且还“长得像”——名字相似的多,有时让人觉得很迷惑。 在自变量为一维的情况下,也就是自变量可以视为一个标量,此时,一个实数就可以代表它了,这个时候,如果要改变自变量的值,则其要么减小,要么增加,也就是“非左即右“,所以,说到“自变量在某个方向上移动”这个概念的时候,它并不是十分明显;而在自变量为n(n≥2)维的情况下,这个概念就有用了起来:假设自变

911的专栏 3323

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

共轭梯度法(Conjugate gradient)详解

1.什么是共轭向量 对于正定矩阵Q,如果有 xTQy=0x^TQy = 0xTQy=0 那么我们可以称x, y是关于Q-conjugate。 2.线性方程组求解与二次函数求极小值转化 最初,共轭梯度法是用来求解线性方程Ax=bAx = bAx=b的一种方法,特别是稀疏线性方程组迭代求解法里面最优秀的方法,其被称为线性共轭梯度法。后来,人们把这种方法慢慢推广到了非线性问题求解中,称为非线性共轭梯度法。 求解Ax=bAx = bAx=b时,最简单粗暴的方式为x=A−1bx = A^{-1}bx=A−1b。但是这

bitcarmanlee的博客 3万+

共轭梯度法解求解大规模稀疏矩阵,对比最速梯度法(C++)

共轭梯度法和最速下降法的比较和代码实现,没有调用矩阵库

weixin_45950984的博客 3593
上一篇: 共轭复数,共轭根式,共轭矩阵,共轭方向,共轭方向法,共轭梯度法,共轭分布,共轭函数,傅里叶变换的共轭对称
下一篇: 对 BatchNormalization 中 Internal Convariate Shift 的理解
wzg2016
博客等级 码龄10年 539粉丝 493原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值