梯度下降法和牛顿法

news2024/9/23 23:27:03

梯度下降法和牛顿法都是优化方法。

梯度下降法

梯度下降法和相关知识可以参考导数、偏导数、梯度、方向导数、梯度下降、二阶导数、二阶方向导数一文。梯度下降法是一种迭代地每次沿着与梯度相反方向前进的不断降低损失函数的优化方法。梯度下降只用到一阶导数的信息,没有参考二阶导数的信息。 

当自变量有多维时,如果某点二阶导数矩阵\boldsymbol{H}的最大特征值和最小特征值差别较大(二阶导数的信息),也就是说在一个自变量维度上一阶导数下降的很快,另一个自变量维度上一阶导数下降的很慢,慢的那个维度会拖累快的维度,导致整体迭代速度较慢。并且此时学习率设置的较小才会避免迭代过程中在二阶导大的方向不经过最低点而跳到对向这样来回跳动,但是此时学习率较小同时会导致在二阶导小的方向迭代较慢。在这种情况下,选择一个好的学习率是一件比较困难的事情。

如下图所示,(1,1)方向是二阶导最大的方向(最陡),(1,-1)方向是二阶导最小的方向(最缓),红色的线是梯度下降的路线,可以看到路线在(1,1)方向反复来回跳动(不断跳到对向)。梯度下降在这种情况下的表现有瑕疵。

牛顿法

牛顿法既参考了一阶导数的信息,也参考了二阶导数的信息。在理解牛顿法之前,可以参考驻点以及二阶导对驻点的判断一文。

牛顿法先在某点\boldsymbol{x^{(0)}}进行二阶泰勒展开,用二次函数近似表示原函数。

然后求这个二次函数的驻点\boldsymbol{x^{*}}

\boldsymbol{x^{(0)}}\boldsymbol{x^{*}}就是一次迭代。

如果原函数就是二次函数,那么牛顿法直接就找到了原函数驻点,停止迭代。如果原函数不是二次函数,那么需要使用二阶泰勒展开每次迭代到达近似二次函数的驻点,直至到达原函数驻点。

深度学习下的损失函数

在深度学习中,损失函数往往是高维的。

维度越高,最小值点出现的概率越来越低,鞍点出现的概率越来越高(呈指数级增大)。这和投硬币是一样的道理,在二维情况下,二阶导数矩阵\boldsymbol{H}的两个特征值都为正的概率(最小值点出现的概率)是1/4,在三维情况下,二阶导矩阵\boldsymbol{H}的三个特征值都为正的概率(最小值点出现的概率)是1/8,等等......。在高维情况下,因为鞍点多,牛顿法有很大的概率会停在鞍点上。

并且在高维情况下,\boldsymbol{H}的特征值都为正的情况更有可能出现在损失函数低的地方,也就是说最小值点更有可能出现在损失函数低的地方,鞍点更有可能出现在损失函数高的地方。所以在高维情况下牛顿法不仅有很大的概率会停在鞍点上,并且这些鞍点还对应着较高的损失函数。

在高维的情况下,梯度下降法比牛顿法会取得更好的优化效果。因为梯度下降不断迭代寻找使得损失函数很低的点,而牛顿法不断迭代停留在某一驻点上(大概率是对应较高损失函数的鞍点)。

梯度下降法和牛顿法的对比

梯度下降法牛顿法
理念不断迭代使损失函数下降,寻找损失函数值较低的点不断迭代进行二阶泰勒近似,寻找驻点
优点基本不会停留在鞍点速度较快
缺点速度较慢,需要选择合适的学习率会停留在鞍点(损失函数较高)

 如果有不正确的地方,欢迎各位大佬留言呀~

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

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

相关文章

word怎么转换成pdf?分享几种转换方法

word怎么转换成pdf?将Word文档转换成PDF文件有几个好处。首先,PDF文件通常比Word文档更容易在不同设备和操作系统上查看和共享。其次,PDF文件通常比Word文档更难以修改,这使得它们在需要保护文件内容的情况下更加安全可靠。最后&a…

Linux 学习记录59(ARM篇)

Linux 学习记录59(ARM篇) 本文目录 Linux 学习记录59(ARM篇)一、IIC总线1. 概念2. IIC总线硬件连接 二、系统框图三、IIC时序1. 起始信号 / 停止信号2. 数据传输信号3. 应答信号 / 非应答信号4. 寻址信号 四、IIC协议1. 主机给从机发送一个字节(写)2. 主机给从机发送多个连续字…

Lab———Git使用指北

Lab———Git使用指北 🤖:使用IDEA Git插件实际工作流程 💡 本文从实际使用的角度出发,以IDEA Git插件为基本讲述了如果使用IDEA的Git插件来解决实际开发中的协作开发问题。本文从 远程仓库中拉取项目,在本地分支进行开发&#x…

【C++】STL中list的模拟实现(增删查改,迭代器封装,运算符重载)

文章目录 前言大体框架: 一、节点的封装(list_node)二、迭代器的封装(_list_iterator)1.类模板的定义:2.构造函数3.前置,后置4.前置--,后置--5.解引用(operator*())6. ->重载(operator- >…

代码随想录算法学习心得 49 | 647.回文子串、516.最长回文子序列...

一、最长回文子序列 链接:力扣 描述:给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 思…

练习时长两年半的入侵检测

计算机安全的三大中心目标是:保密性 (Conf idential ity) 、完整性 (Integrity) 、可用性 (Availability) 。 身份认证与识别、访问控制机制、加密技术、防火墙技术等技术共同特征就是集中在系统的自身加固和防护上,属于静态的安全防御技术,…

将Python远控隐藏在文档图片中的行动分析

1、概述 ** **近日,安天CERT通过网络安全监测发现了一起恶意文档释放Python编写的远控木马事件。通过文档内容中涉及的组织信息和其中攻击者设置的诱导提示,安天CERT判断该事件是一起针对阿塞拜疆共和国国家石油公司进行的定向攻击活动。此次事件中&…

单线程与多线程的理解与学习(入门到深入)

文章目录 一、在Java中,有多种方式可以创建线程。以下是几种常用的方法:二、线程的调度线程的调度分为两种调度模型分时调度模型抢占式调度模型 三、线程传值四、什么是线程同步五、线程安全六、线程的同步机制七、线程控制 一、在Java中,有多…

惠普HP Color Laser 150a开机红色感叹号闪烁不打印故障解决方法

故障描述: 惠普HP Color Laser 150a开机红色感叹号闪烁,不能打印,电脑提示C3-6140。 检测分析: 在解决C3-6140错误代码之前,我们需要先检查打印机是否连接正常。如果打印机连接不正常,也可能会出现这个错误…

mysql_2.4——安装常见问题

1. 将MySQL添加到环境变量 将 mysql 的 bin 目录地址添加到 系统环境变量 --> PATH 中 2. 将MySQL添加到服务 以管理员的方式启动 cmd (命令提示窗口),使用命令进入到 [mysql]\bin ,执行如下命 令。 # mysqld --install (服务名) # 如: mysqld --…

SQL注入实操Less21-30)

文章目录 一、sqli-lab靶场1.轮子模式总结2.Less-21a.注入点判断b.轮子测试c.获取数据库名称d.获取表信息e.获取列信息f.获取表内数据 3.Less-22a.注入点判断b.轮子测试c.获取数据库名称d.获取表信息e.获取列信息f.获取表内数据 4.Less-23a.注入点判断b.轮子测试c.获取数据库名…

questasim界面的个性化设置

安装好questasim后默认的波形查看界面字体很小,颜色看起来也不舒服,所以调整了一下颜色布局如下图,顺便记录一下波形窗口颜色大小及选中行高亮如何设置 ​​​​​​​ 1、波形字体颜色设置 参考如何设置一个清爽的仿真窗口(仿真…

【无标题】linux就该这么学

linux就该这么学 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚…

杰哥教你用Python对Emotet投递的恶意Excel表格提取IoCs

背景介绍 工作遇到多个经过同样方式混淆并隐藏的宏代码文档,利用Excel表格特性,将数据分离在不同的单元格中,再使用Office自带的函数对单元格的数值进行提取后组合成代码字符串运行。运行的代码完成下载恶意文件到本地并注册为服务的恶意行为…

spring项目中idea提示Application context not configured for this file

今天在重构项目的时候,碰到一个问题。就是在spring底下,有一个包里面的所有配置类,在idea的开发工具类底下提示,Application context not configured for this file,如图所示 一开始以为是警告,不予处理&am…

04 linux之C 语言高级编程

gcc和gdb GNU工具 编译工具:把一个源程序编译为一个可执行程序调试工具:能对执行程序进行源码或汇编级调试软件工程工具:用于协助多人开发或大型软件项目的管理,如make、CVS、Subvision其他工具:用于把多个目标文件链…

《入门级-Cocos2d 4.0塔防游戏开发》---第二课:游戏加载界面开发

一、开发环境介绍 操作系统:UOS1060专业版本。 cocos2dx:版本 环境搭建教程: 统信UOS下配置安装cocos2dx开发环境_三雷科技的博客-CSDN博客 二、开发内容 游戏在开始时都需要加载大量的资源,为了让用户有等待时间,因此最先开…

linux学成之路(基础篇)(二十三)MySQL服务(数据库备份——补充)

目录 一、MySQL数据库备份 概述 重要性 造成数据丢失的原因 二、备份类型 一、物理与逻辑角度 一、物理备份 二、逻辑备份 二、数据库备份策略角度 一、完整备份 二、增量备份 三、常见的备份方法 一、物理备份 二、使用专用备份工具 三、通过启用二进制日志增量…

漏洞发现-Xray+Awvs联动-Goby+Xray+Awvs+Vulmap联动

Acunetix: Acunetix一款商业的Web漏洞扫描程序,它可以检查Web应用程序中的漏洞,如SQL注入、跨站脚本攻击、身份验证页上的弱口令长度等。它拥有一个操作方便的图形用户界面,并且能够创建专业级的Web站点安全审核报告。新版本集成了漏洞管理功…

在家构建您的迷你 ChatGPT

这篇文章分为三个部分;他们是: 什么是指令遵循模型?如何查找遵循模型的指令构建一个简单的聊天机器人废话不多说直接开始吧!!! 什么是指令遵循模型? 语言模型是机器学习模型,可以根…