深度学习优化算法与实践 :深度学习中的优化算法与挑战

优化和深度学习

学习目标

本课程将讨论优化与深度学习之间的关系以及在深度学习中使用优化的挑战。对于深度学习问题,通常会先定义损失函数。一旦有了损失函数,就可以使用优化算法来尝试最小化损失。在优化中,损失函数通常被称为优化问题的目标函数。按照传统惯例,大多数优化算法都关注的是最小化。如果需要最大化目标,那么有一个简单的解决方案:在目标函数前加负号即可。

相关知识点

  • 优化和深度学习

学习内容

1 优化和深度学习

尽管优化提供了一种最大限度地减少深度学习损失函数的方法,但本质上,优化和深度学习的目标是根本不同的。前者主要关注的是最小化目标,后者则关注在给定有限数据量的情况下寻找合适的模型。例如,训练误差和泛化误差通常不同:由于优化算法的目标函数通常是基于训练数据集的损失函数,因此优化的目标是减少训练误差。但是,深度学习的目标是减少泛化误差。为了实现后者,除了使用优化算法来减少训练误差之外,还需要注意过拟合。

%pip install d2l
%matplotlib inlineimportnumpyasnpimporttorchfrommpl_toolkitsimportmplot3dfromd2limporttorchasd2l

为了说明上述不同的目标,引入两个概念风险经验风险。经验风险是训练数据集的平均损失,而风险则是整个数据群的预期损失。下面定义了两个函数:风险函数f和经验风险函数g。假设只有有限的训练数据。因此,这里的g不如f平滑。

deff(x):returnx*torch.cos(np.pi*x)defg(x):returnf(x)+0.2*torch.cos(5*np.pi*x)

下图说明,训练数据集的最低经验风险可能与最低风险(泛化误差)不同。

defannotate(text,xy,xytext):#@saved2l.plt.gca().annotate(text,xy=xy,xytext=xytext,arrowprops=dict(arrowstyle='->'))x=torch.arange(0.5,1.5,0.01)d2l.set_figsize((4.5,2.5))d2l.plot(x,[f(x),g(x)],'x','risk')annotate('min of\nempirical risk',(1.0,-1.2),(0.5,-1.1))annotate('min of risk',(1.1,-1.05),(0.95,-0.5))


本课程将关注优化算法在最小化目标函数方面的性能,而不是模型的泛化误差。在深度学习中,大多数目标函数都很复杂,没有解析解。相反,必须使用数值优化算法。本课程中的优化算法都属于此类别。

深度学习优化存在许多挑战。其中最令人烦恼的是局部最小值、鞍点和梯度消失。

1.1 局部最小值

对于任何目标函数(f(x)(f(x)(f(x),如果在xxx处对应的f(x)f(x)f(x)值小于在xxx附近任意其他点的f(x)f(x)f(x)值,那么f(x)f(x)f(x)可能是局部最小值。如果f(x)f(x)f(x)xxx处的值是整个域中目标函数的最小值,那么f(x)f(x)f(x)是全局最小值。

例如,给定函数
f(x)=x⋅cos(πx) for −1.0≤x≤2.0 f(x) = x \cdot \text{cos}(\pi x) \text{ for } -1.0 \leq x \leq 2.0f(x)=xcos(πx)for1.0x2.0

可以近似该函数的局部最小值和全局最小值。

x=torch.arange(-1.0,2.0,0.01)d2l.plot(x,[f(x),],'x','f(x)')annotate('local minimum',(-0.3,-0.25),(-0.77,-1.0))annotate('global minimum',(1.1,-0.95),(0.6,0.8))


深度学习模型的目标函数通常有许多局部最优解。当优化问题的数值解接近局部最优值时,随着目标函数解的梯度接近或变为零,通过最终迭代获得的数值解可能仅使目标函数局部最优,而不是全局最优。只有一定程度的噪声可能会使参数跳出局部最小值。事实上,这是小批量随机梯度下降的有利特性之一。在这种情况下,小批量上梯度的自然变化能够将参数从局部极小值中跳出。

1.2 鞍点

除了局部最小值之外,鞍点是梯度消失的另一个原因。鞍点(saddle point)是指函数的所有梯度都消失但既不是全局最小值也不是局部最小值的任何位置。考虑这个函数f(x)=x3f(x) = x^3f(x)=x3。它的一阶和二阶导数在x=0x=0x=0时消失。这时优化可能会停止,尽管它不是最小值。

x=torch.arange(-2.0,2.0,0.01)d2l.plot(x,[x**3],'x','f(x)')annotate('saddle point',(0,-0.2),(-0.52,-5.0))


如下例所示,较高维度的鞍点甚至更加隐蔽。考虑这个函数f(x,y)=x2−y2f(x, y) = x^2 - y^2f(x,y)=x2y2。它的鞍点为(0,0)(0, 0)(0,0)。这是关于yyy的最大值,也是关于xxx的最小值。此外,它看起来像个马鞍,这就是鞍点的名字由来。

x,y=torch.meshgrid(torch.linspace(-1.0,1.0,101),torch.linspace(-1.0,1.0,101))z=x**2-y**2ax=d2l.plt.figure().add_subplot(111,projection='3d')ax.plot_wireframe(x,y,z,**{'rstride':10,'cstride':10})ax.plot([0],[0],[0],'rx')ticks=[-1,0,1]d2l.plt.xticks(ticks)d2l.plt.yticks(ticks)ax.set_zticks(ticks)d2l.plt.xlabel('x')d2l.plt.ylabel('y');


假设函数的输入是kkk维向量,其输出是标量,因此其Hessian矩阵(也称黑塞矩阵)将有kkk个特征值。函数的解可能是局部最小值、局部最大值或函数梯度为零位置处的鞍点:

  • 当函数在零梯度位置处的Hessian矩阵的特征值全部为正值时,有该函数的局部最小值;
  • 当函数在零梯度位置处的Hessian矩阵的特征值全部为负值时,有该函数的局部最大值;
  • 当函数在零梯度位置处的Hessian矩阵的特征值为负值和正值时,有该函数的一个鞍点。

对于高维度问题,至少部分特征值为负的可能性相当高。这使得鞍点比局部最小值更有可能出现。简而言之,凸函数是Hessian函数的特征值永远不为负值的函数。不幸的是,大多数深度学习问题并不属于这一类。尽管如此,它还是研究优化算法的一个很好的工具。

1.3 梯度消失

可能遇到的最隐蔽问题是梯度消失。例如,假设想最小化函数f(x)=tanh⁡(x)f(x) = \tanh(x)f(x)=tanh(x),然后恰好从x=4x = 4x=4开始。正如所看到的那样,fff的梯度接近零。更具体地说,f′(x)=1−tanh⁡2(x)f'(x) = 1 - \tanh^2(x)f(x)=1tanh2(x),因此是f′(4)=0.0013f'(4) = 0.0013f(4)=0.0013。因此,在取得进展之前,优化将会停滞很长一段时间。事实证明,这是在引入ReLU激活函数之前训练深度学习模型相当棘手的原因之一。

x=torch.arange(-2.0,5.0,0.01)d2l.plot(x,[torch.tanh(x)],'x','f(x)')annotate('vanishing gradient',(4,1),(2,0.0))


正如所看到的那样,深度学习的优化充满挑战。幸运的是,有一系列强大的算法表现良好,即使对于初学者也很容易使用。此外,没有必要找到最优解。局部最优解或其近似解仍然非常有用。

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

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

相关文章

Springboot项目中使用EasyPOI方式导出合同word文档

在Java开发中,使用EasyPOI导出Word合同文档是一种高效且灵活的解决方案。通过模板驱动的方式,开发者可以轻松地将动态数据填充到预设的Word模板中,生成格式规范的合同文件 。这种方法特别适合需要批量生成标准化合同、协议或报告的场景。 1、…

【优化形状】非主导排序遗传算法的翼型形状优化【含Matlab源码 14992期】含报告

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞…

互联网大厂Java面试:从Spring基础到微服务架构的技术问答

互联网大厂Java面试:从Spring基础到微服务架构的技术问答 场景概述 小白程序员超好吃面试一家互联网大厂,场景为内容社区与UGC业务。面试官通过三个轮次的提问,从基础到高级,引导小白程序员展示技术能力,并通过业务场景…

深度学习优化算法与实践

深度学习优化算法与实践 本学习路径涵盖了从优化基础理论到多种优化算法(包括梯度下降、随机梯度下降、动量法、AdaGrad、RMSProp、Adadelta、Adam及其改进版本Yogi)的深入讲解,并探讨了学习率调度策略在深度学习模型训练中的应用。 深度学…

校园“财递通”快递代取系统的设计与实现的设计与实现(源码+论文+部署+安装)

感兴趣的可以先收藏起来,还有在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望可以帮到大家。一、程序背景随着高校规模扩大,师生快递需求激增,传统校园快递代取模式深陷多重困…

qwen 3和 medgemma 最新版本 最主要的架构区别是什么

qwen 3和 medgemma 最新版本 最主要的架构区别是什么下面是 最新版本的 Qwen 3 系列(包括 Qwen3‑Max/Qwen3‑Next/Qwen3‑Omni) 和 Google 的 MedGemma 系列 在架构层面上的 核心区别(截止 2026 年初):🧠…

芙蕊汇坚守初心,为消费者创造更好体验

在美妆行业消费升级的浪潮中,消费者对品质体验与价值共鸣的追求愈发强烈。当市场充斥着多元声音时,“不被喧嚣裹挟,始终聚焦“是芙蕊汇给出的答案。“为消费者创造更好体验”的核心,构建“自用省钱,价值回流”的消费闭…

吹塑机远程监控运维物联网解决方案

吹塑机作为塑料制品、包装容器、汽车配件等行业的关键成型设备,其成型精度、生产效率、运行稳定性直接影响制品壁厚均匀性、机械强度及外观质量,是保障产品一致性、提升生产效益的核心装备。传统模式下,吹塑机多依赖现场人工操作与定期点检&a…

2026年六大远程控制APP深度解析:连接无忧之选

在数字化办公与远程协作深度发展的2026年,远程控制软件已成为支撑企业运营与个人高效办公的重要工具。面对国内外市场上技术路线与定位各具特色的产品,用户如何选择适合自己的工具?本文将分为国内与国外两大类,各选取三款主流软件…

PCB埋容埋阻热管理进阶:功率适配与特殊场景可靠性指南

埋容埋阻工艺在高密度、小型化PCB设计中应用广泛,但在高功率负载、柔性装配、车载复杂工况下,其热管理面临功率适配不足、弯折热失效、返修热损伤等新难题。这些痛点易导致埋容埋阻性能衰减、PCB结构失效,影响产品长期稳定性。依托猎板在埋容…

底薪涨幅12%,年薪百万岗位扎堆,华人创业做AI面试平台,帮500强企业抢技术人才

底薪涨幅12%,年薪百万岗位扎堆,华人创业做AI面试平台,帮500强企业抢技术人才 原创 子墨 子墨 扬帆出海 作者丨子墨 编辑丨火狐狸 众所周知,在内卷加剧的职场环境中,国内找工作愈发困难。其实,在美国类似的…

Flutter艺术探索-Flutter包管理:pubspec.yaml配置详解

Flutter包管理:pubspec.yaml配置详解 引言 搞Flutter开发,你肯定天天和pubspec.yaml这个文件打交道。它看起来简单,就是一个YAML格式的配置文件,但实际上,它管的事儿可多了——项目叫什么、用什么版本的Dart和Flutter、…

云边端智能制造实践教学系统

近日,八部门联合印发的《“人工智能制造”专项行动实施意见》(以下简称《意见》)为我国制造业智能化升级描绘了清晰的路线图。《意见》提出,到2027年要推动3-5个通用大模型在制造业深度应用,打造1000个高水平工业智能体…

大蒜蒸煮机口碑绝佳,这家技术公司凭啥脱颖而出引关注?

《蒸煮机哪家好:排名前五专业深度测评》 开篇:定下基调 在食品加工行业中,蒸煮机作为关键设备,其性能优劣直接影响着产品的质量和生产效率。本次测评旨在为对蒸煮机感兴趣的人群,提供一份客观、专业的产品评估报告&a…

常见可与人工智能结合的专业

在科技飞速发展的今天,人工智能已经不再是遥不可及的概念,它正以惊人的速度融入到各行各业中。而行动政策的支持,更是让人工智能的优势愈发凸显,各行各业都在积极依托人工智能实现创新与发展。对于在校大学生来说,了解…

Flutter艺术探索-Flutter网络请求基础:http包使用指南

Flutter 网络请求基础:用好官方 http 包 引言 在移动应用开发中,网络请求是连接客户端与服务器的核心环节。对于 Flutter 开发者而言,官方提供的 http 包是一个绕不开的基础工具。它轻量、稳定且由官方维护,非常适合初学者上手以及…

AI训练“踩坑“新姿势!北大腾讯RAGShaper:让大模型在“噪音地狱“中自动进化,小白也能上手!

主要关注LLM、RAG、Agent等AI前沿技术,每天分享业界最新成果和实战案例。 Agentic RAG 需要“会自己规划、检索、纠错”的模型,但高质量训练数据稀缺——人工标注既贵又浅,无法还原真实检索噪声。北京大学 & 腾讯 AI Lab联合提出了RAGSha…

大厂 算法岗transformer面试题

一,基础原理与数学模型 1.Transformer为何使用多头注意力机制?(为什么不用一个头) 2.Transformer为什么Q和K使用不同的权重矩阵生成?为何不能使用同一个值进行自身的点乘?(注意和第一个问题的区别) 3.Transformer计算attention的时候为何选择点乘而不是加法?…

深夜的“闪电侠”:在线监测如何让电网故障秒级“自愈”

深夜,雷雨交加。一道闪电划过,小区突然陷入黑暗。然而就在你刚摸到手机,准备发朋友圈吐槽时,灯光瞬间恢复了。前后不过几秒钟,快得让人以为是错觉。这不是电网魔法,而是现代电力系统的“智慧大脑”——在线…

加入全球家办精英圈层——HKFA环球家族办公室总会(HKFAGFOA)的会员体系

对于致力于服务高净值家族的机构与专业人士而言,选择一个有分量的业界平台至关重要。HKFA环球家族办公室总会(HKFA Global Family Office Association,简称GFOA) 正是这样一个平台。HKFA环球家族办公室总会(HKFAGFOA&a…