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

news2024/11/27 4:27:03

目录

1 最优化方法的结构

2 常用最优化方法对比分析

3 相关计算公式


1 最优化方法的结构

        最优化问题的一般形式为:

min f(x)
s.t. x\in X

其中x为决策变量,f(x)是目标函数,X为约束集或可行域。特别地,如果X=R^n,则最优化问题成为无约束最优化问题。

        最优化方法通常采用迭代法求它的最优解,其基本思想是:给定一个初始点x_0,按照某一迭代规则产品一个点列{x_n},使得当{x_n}是有穷点列时,其最后一个点是最优化模型问题的最优解。迭代规则由迭代公式决定,迭代公式的基本表示形式如下:

x_{k+1}=x_k+\alpha _kd_k

        式中,\alpha _k为步长因子,d_k为搜索方向。在最优化算法中,搜索方向d_kfx_k点处的下降方向,即:

f(x_k+\alpha _kd_k)<f(x_k)​​​​​​​

        最优化方法的基本结构如下:

  • 给定初始点x_0
  • 确定搜索方向d_k,即按照一定规则,构造 fx_k点处的下降方向作为搜索方向;
  • 确定步长因子\alpha _k,使目标函数有某种意义的下降;
  • 令 x_{k+1}=x_k+\alpha _kd_k,若x_{k+1}满足某种终止条件,则停止迭代,得到近似最优解x_{k+1}.否则,重复以上步骤。

2 常用最优化方法对比分析

        从迭代公式可知,最优化方法求解时的关键就是构造搜索方向d_k和步长因子\alpha _k。不同的搜索方向和不同的步长因子构成了不同的方法,常见的最优化方法有梯度下降法、最速下降法、牛顿法、高斯牛顿法、LM法、拟牛顿法,对应的迭代公式总结如下表:

迭代公式
梯度下降法x^{k+1}=x^k- \alpha \triangledown f(x^k)
最速下降法x^{k+1}=x^k- \alpha_k \triangledown f(x^k)
牛顿法x^{k+1}=x^k- \alpha_kH(x^k)^{-1} \triangledown f(x^k)
高斯牛顿法x^{k+1}=x^k- \alpha_kG(x^k)^{-1} \triangledown f(x^k)
LM法x^{k+1}=x^k- \alpha_kJ(x^k)^{-1} \triangledown f(x^k)
拟牛顿法x^{k+1}=x^k- \alpha_kB(x^k)^{-1} \triangledown f(x^k)

对比分析:

梯度下降法最速下降法牛顿法高斯牛顿法LM法拟牛顿法
步长因子\alpha\alpha _k\alpha _k\alpha _k

 \alpha _k

 \alpha _k

搜索方向-\triangledown f(x^k)-\triangledown f(x^k)-H(x^k)^{-1}\triangledown f(x^k)-G(x^k)^{-1}\triangledown f(x^k)-J(x^k)^{-1}\triangledown f(x^k)-B(x^k)^{-1}\triangledown f(x^k)
参数说明

 ① 步长因子\alpha为一个固定值,工程师预先设定;② 搜索方向为梯度方向 \triangledown f(x^k)的反方向

步长因子是一个变化的常数\alpha _k,每一次迭代需要重新计算。通过一位搜索算法得到H为二阶偏导矩阵,即海塞矩阵

G矩阵用来近似替代H矩阵,G=\triangledown f\triangledown f^T

J矩阵替代G矩阵,J=G+uI,u为常数,I为单位矩阵B矩阵用来近似替代H矩阵,B矩阵的形式有多种
目的求解最优化问题的基本方法梯度下降法的一种具体的实现方式提高收敛速度减小计算量解决G矩阵不正定的问题减小计算量以及H矩阵不正定的问题

 几种算法之间的关系总结如下:

  • 最速下降法是梯度下降法的一种具体实现方式。梯度下降法的步长因子是固定值,最速下降法的步长因子 是一个变化的常数\alpha _k ,即由一位搜索得到步长因子\alpha _k,使得

f(x_k+\alpha _kd_k)=minf(x_k+\beta d_k),\alpha >0

  • 牛顿法可以看成相对于梯度下降法的改进,提高了收敛速度。梯度下降法/最速下降法在确定搜索方向的时候,只用到了一阶导数,因此它的收敛速度是一阶收敛,收敛速度较慢。而牛顿法用到了二阶偏导,它的收敛速度是二阶收敛,收敛速度比梯度下降法快。
  • 高斯牛顿法是相对于牛顿法改进,简化了计算。牛顿法中的H矩阵需要计算目标函数的二阶偏导,计算量巨大,高斯牛顿法采用G矩阵替代H矩阵,大大减小了计算量。
  • LM法是相对于高斯牛顿法的改进,解决G矩阵正定问题。高斯-牛顿法的逼近步长由矩阵G的逆矩阵决定,如果矩阵G非正定,那么其逆矩阵不一定存在,即使存在逆矩阵,也会导致逼近方向出现偏差,严重影响优化方向。LM法正是为了解决矩阵G的正定问题而提出的,其将矩阵G加上单位矩阵I的倍数来解决正定问题。
  • LM法相当于最速下降法和高斯牛顿法的结合体。当u很小时,矩阵J接近矩阵G,其相当于高斯-牛顿法,此时迭代收敛速度快,当u很大时,其相当于梯度下降法,此时迭代收敛速度慢。因此LM算法即具有高斯-牛顿法收敛速度快、不容易陷入局部极值的优点,也具有梯度下降法稳定逼近最优解的特点。
  • 拟牛顿法是相对于牛顿法的改进。牛顿法虽然收敛速度快,但是需要计算海塞矩阵的逆矩阵 H^{-1} ,而且有时目标函数的海塞矩阵无法保持正定,从而使得牛顿法失效。为了克服这两个问题,人们提出了拟牛顿法。这个方法的基本思想是:不用二阶偏导数而构造出可以近似海塞矩阵(或海塞矩阵的逆)的正定对称阵。不同的构造方法就产生了不同的拟牛顿法,常用的拟牛顿算法有:DFP算法、BFGS算法、L-BFGS算法。严格意义上讲高斯牛顿法和LM法都属于拟牛顿法。

3 相关计算公式

参考链接:

最优化算法之牛顿法、高斯-牛顿法、LM算法_萌萌哒程序猴的博客-CSDN博客

梯度下降法和最速下降法的细微差别_TimingSpace的博客-CSDN博客_最速下降法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/27230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

目标检测DiffusionDet: Diffusion Model for Object Detection

先贴一张流程图&#xff1a; github:GitHub - ShoufaChen/DiffusionDet: PyTorch implementation of DiffusionDet (https://arxiv.org/abs/2211.09788) pdf: https://arxiv.org/abs/2211.09788 Abstract: 本文提出了一个新的框架DiffusionDet&#xff0c;将目标检测问题构建…

Lombok的@Data注解包含的方法(没有全参构造方法)

Lombok的Data注解包含的方法&#xff08;没有全参构造方法&#xff09; 目录Lombok的Data注解包含的方法&#xff08;没有全参构造方法&#xff09;结论&#xff1a;测试&#xff1a;1.Maven引入依赖2.安装lombok插件3.编写实体类4.编译5.查看target文件6.编译后的源代码结论&a…

实用的3款视频添加水印软件分享,简单易上手

如今刷短视频已经成为许多小伙伴饭后闲暇之余消遣的项目&#xff0c;也有不少人因此加入了创作短视频的队列。但是在分享前&#xff0c;最好是对自己的作品加上水印。为什么呢&#xff1f;第一是可以起到更好的宣传作用&#xff0c;第二是防止他人盗窃作品内容&#xff0c;毕竟…

卷积输入输出维度计算公式,Conv, Dilation Conv, Padding, Kernel_size, Output的维度计算关系

define i input o output p padding k kernel_size s stride d dilation 公式 o [i 2p - k - (k-1)(d-1)]/s 1 举例 当 padding “same” 时&#xff0c;输入尺度和输出尺度相同。 oi 则有&#xff1a; p[(i-1)s-i k(k-1)(d-1)]*0.5 假设 k5, s1, 那么 p[(i-1) …

深度学习入门---《白话机器学习的数学》笔记

文章目录一、基础&#xff1a;回归的实现1、训练数据click.csv2、参考公式&#xff1a;3、代码实现&#xff1a;4、运行结果&#xff1a;5、验证&#xff1a;二、多项式回归1、参考公式2、代码实现3、运行结果三、随机梯度下降法的实现1、参考公式小批量&#xff08;mini-batch…

F. Quests(二分)

Problem - F - Codeforces 有n个任务。如果你完成第i个任务&#xff0c;你将获得ai币。你每天最多只能完成一个任务。然而&#xff0c;一旦你完成了一个任务&#xff0c;在K天内你不能再做同样的任务。(例如&#xff0c;如果k2&#xff0c;你在第1天做了任务1&#xff0c;那么你…

radiantq:jQuery Gantt Package--好使的HTML5甘特图

Radiantq--jQuery Gantt Package是一个真正跨平台的、基于原生 HTML5/jQuery 的实现&#xff0c;带有 2 个不同的甘特图小部件。 部署在众多垂直领域 无论您的应用程序属于哪个领域&#xff0c;甘特图都是基于时间的信息的理想可视化工具&#xff0c;包括在软件开发、施工、钻井…

JNoteHelper 给你的java swing或桌面程序提供一双翅膀

JNoteHelper 使用swing构建的java程序, 主要基于miglayout,swingx,flatlatf, 本来打算作为个人笔记的助手, 但是事与愿违, 发现理想和现实很骨感. 项目基于windows测试及开发 ,所以运行效果图片都基于windows 截图 1. 项目地址 JNoteHelper github地址 gitee地址 gitcode地址…

玩法专利获批,发布4年《Beat Saber》为何持续火爆

从2018年首次上线以来&#xff0c;《Beat Saber》被大家爱了4年多&#xff0c;直到现在热度未减&#xff0c;依然是史上最赚钱的VR游戏之一。该作最开始的概念&#xff0c;就是用红、蓝两色的光剑&#xff0c;根据箭头方向和节奏去切方块&#xff0c;玩法简单爽快&#xff0c;受…

Qt QSS QSlider样式

本文章主要学习QSlider样式 准备下面几张背景图片&#xff1a; 调小图标 、调大图标 ​、QSlider位置图标 ​QSlider划过的背景图标 ​、QSlider未划过的背景图标 ​最终效果图 自己创建一个QSlider工程&#xff0c;此处省略…… CSDN QT大纲&#xff1a;Qt开发必备技术栈学…

[附源码]java毕业设计鞋店销售管理

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

DM-VERITY流程分析

DM-Verity分析报告 0.问题的表现形式 1.dm-verity的初始化及验证流程 1.1 dm-verity的初始化 初始化dm的log: [ 3.579718] md: Waiting for all devices to be available before autodetect [ 3.586549] md: If you dont use raid, use raidnoautodetect [ 3.594…

Allegro如何录制SCR快捷键操作指导

Allegro如何录制SCR快捷键操作指导 Allegro可以录制SCR快捷键,里面记录了一些操作,类似一个插件,使用的时候可以直接调用,节省时间。下面介绍如何录制 选择file-Script 会出现一个对话框,任意输入一个名字,比如666 然后点击record 比如录制一个打开层面的scr,操作如…

基于matlab的排队系统仿真

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 排队系统是基本的离散事件系统&#xff0c;了解掌握离散事件系统是研究排队系统仿真不可或缺的前提。离散事件系统是指其状态变量只在某些离散时…

SAP-FICO概览培训 的PPT 文档

目录 SAP ERP 系统功能模块概览 财务会计&#xff08;FI&#xff09;、管理会计&#xff08;CO&#xff09; 财务会计&#xff08;FI&#xff09;、管理会计&#xff08;CO&#xff09;需求出发点 FI 与CO灵活性对比 财务会计&#xff08;FI&#xff09; 财务业务一体化平台示…

JSP概述

JSP JSP是Sun为了解决动态生成HTML文档的技术&#xff0c;通过Servlet输出简单html页面信息都非常不方便。如果要输出一个复杂页面的时候&#xff0c;就更加的困难&#xff0c;而且不利于页面的维护和调试。所以sun公司推出一种叫做jsp的动态页面技术来实现对页面的输出繁锁工…

四维轻云地理空间数据协作管理平台的使用流程介绍

倾斜摄影模型和点云数据采集制作完成后&#xff0c;很多行业在进行数据查看管理和共享时具有很大的不便&#xff0c;通常需要依赖专业软件才能在电脑上进行浏览&#xff0c;倘若想将数据分享给他人查看&#xff0c;则需要进行大文件传输以及让对方安装专业软件。现如今&#xf…

年薪百万的程序员,上网都在看什么?

这个问题相信不少人都好奇&#xff0c;我揪出一位年薪百万的程序员老友&#xff0c;翻遍他的收藏夹&#xff0c;总结整理了6个网站&#xff0c;甩出来给大家。 有几个干货网站大家记得当场保存&#xff0c;要不然划过就忘了&#xff01;&#xff01; 国际各行业报告&#xff1…

python 异步线程 实现 异步生产 同步通信

🍿*★,*:.☆欢迎您/$:*.★* 🍿 目录 背景 正文 总结 背景描述

傅里叶变换的四种形式

此文转自知乎的jinjin 傅里叶变换的四种形式 - 知乎 傅里叶变换是信号的一种描述方式&#xff0c;通过增加频域的视角&#xff0c;将时域复杂波形表示为简单的频率函数&#xff0c;获得时域不易发现的与信号有关的其他特征。 根据时间域信号x自变量的不同&#xff0c;可以将信号…