#Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量

本文主要是介绍#Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本章介绍深度学习常见的概念,主要包括3.1局部极小值与鞍点;3.2批量和动量。

知识点讲解:

3.1局部极小值和鞍点

我们在做优化的时候,有时候会发现随着参数不断更新,函数的损失值却不再下降的现象,但这个优化结果离我们想要的理想值还差距很大。

这是什么原因呢?接下来我们就研究这个问题。

局部极小值:

我们先看数学定义:在一个多变量函数中,如果存在某个点,在该点附近的所有其他点的函数值都大于等于该点的函数值,则该点称为一个局部极小值点。局部极小值的梯度为零(即导数为零),但梯度为零的点不一定是极值点。海森矩阵正定。

鞍点:

数学定义:对于一个多变量函数,如果存在一个点,在某些方向上它是局部最小值,在其他方向上则是局部最大值,那么这个点就被称为鞍点。鞍点处的梯度也为零,但其海森矩阵既不是正定也不是负定,通常含有正的和负的特征值。鞍点可以想象成一个马鞍的形状。可以参考下图:

如何判断一个梯度为零的点是极值点还是鞍点:

1)梯度,鞍点和极值点的梯度都为零,所以无法通过梯度来判断;

2)海森矩阵,我们可以利用函数的二阶条件即海森矩阵来判断。如果海森矩阵正定或负定,那么这个点就是极小值点或者极大值点;如果海森矩阵的特征值既有正值又有负值,即既不是正定又不是负定,那么可以判断该点是鞍点。

逃离鞍点的方法:

逃离鞍点是优化算法面临的重要挑战之一,尤其在处理非凸函数时更为显著。鞍点并没那么可怕。为什么呢?低维度空间中的局部极小值点,在更高维的空间中,实际是鞍点。这就好办了,如果在二维空间中无路可走,那么在更高维的空间里面是不是有可行的路径呢?答案是肯定的。多数的时候,我们训练到一个梯度 很小的地方,参数不再更新,往往只是遇到了鞍点。

3.2批量和动量

批量:

定义:批量(batch size),是指在训练神经网络时,每次计算梯度和更新参数时所使用的样本数量。。在深度学习中,数据集通常会被划分为多个小批次,每个批次包含一定数量的样本。批量是一个超参数,是可以手动调整的。通常也是需要我们根据数据量的不同来调参的。

批量大小对梯度下降法的影响

批量梯度下降:1)批量梯度下降每次迭代的计算量大;2)批量梯度下降每次更新更稳定、更 准确;

在考虑并行计算的情况下,批量梯度下降的花费的时间不一定更长。只有在批量很大的情况下超出GPU 并行计算极限的时候,需要花费的时间才会比小批量梯度下降时间长。

小批量梯度下降:1)单次迭代的计算量小,但每个epoch内需要更新的参数次数增加;2)梯度更新的方向有噪声;

实际上有噪声的梯度反而可能可以帮助训练,一个可能的解释是因为噪声有助于跳出局部极小值。

这个是优化的问题,大的批量大小优化可能会有问题,小的批量大小优化的结果反而是比较好的。

小的批量也对测试有帮助。

“大的批量大小会让我们倾向于走到“峡谷”里面,而小的批量大小倾向于让我们走到“盆地” 里面。小的批量有很多的损失,其更新方向比较随机,其每次更新的方向都不太一样。即使 “峡谷”非常窄,它也可以跳出去,之后如果有一个非常宽的“盆地”,它才会停下来。”

总之,批量大小是需要调整的超参数。批量大小的选择是一个权衡的过程,需要根据具体的硬件资源、训练目标以及模型特性来进行决策。

动量:

动量是一个来源于物理学的概念。在物理学中,动量和惯性息息相关。

机器学习领域,我们引入了动量这个概念,用来改进梯度下降算法。动量法(momentum method)是另外一个可以对抗鞍点或局部最小值的方法。动量方法通过在梯度下降过程中加入历史梯度的方向信息,以加速收敛过程,并帮助模型更快地达到全局最优解或较好的局部最优解。

引入动量后,我们每次在更新参数时,不仅考虑当前点的梯度的反方向,同时还要考虑前一步的移动方向。每次更新时,都会先计算出新的动量向量,然后使用这个向量和当前的负梯度来一起更新模型参数。

动量方法的优点:1)加速收敛,在梯度方向变化不大的情况下,可以更快的沿着梯度方向前进;2)平滑更新,因为考虑了历史梯度的影响,所以动量可以减少训练中的振荡,平滑参数更新过程;3)较大的动量可以帮助模型越过一些较浅的局部最小值,从而找到更优解。

动量系数的选择:通常我们选择动量系数 β 取值在 0.8 到 0.999 之间,常见值为 0.9。

喜欢的小伙伴收藏点赞关注吧。

这篇关于#Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1113395

相关文章

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Python自动化批量重命名与整理文件系统

《Python自动化批量重命名与整理文件系统》这篇文章主要为大家详细介绍了如何使用Python实现一个强大的文件批量重命名与整理工具,帮助开发者自动化这一繁琐过程,有需要的小伙伴可以了解下... 目录简介环境准备项目功能概述代码详细解析1. 导入必要的库2. 配置参数设置3. 创建日志系统4. 安全文件名处

三频BE12000国补到手2549元! ROG 魔盒Pro WIFI7电竞AI路由器上架

《三频BE12000国补到手2549元!ROG魔盒ProWIFI7电竞AI路由器上架》近日,华硕带来了ROG魔盒ProWIFI7电竞AI路由器(ROGSTRIXGR7Pro),目前新... 华硕推出了ROG 魔盒Pro WIFI7电竞AI路由器(ROG STRIX GR7 Phttp://www.cppcn

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Java如何从Redis中批量读取数据

《Java如何从Redis中批量读取数据》:本文主要介绍Java如何从Redis中批量读取数据的情况,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一.背景概述二.分析与实现三.发现问题与屡次改进3.1.QPS过高而且波动很大3.2.程序中断,抛异常3.3.内存消