【Datawhale X 李宏毅苹果书 AI夏令营】Task1笔记

2024-08-27 22:44

本文主要是介绍【Datawhale X 李宏毅苹果书 AI夏令营】Task1笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第三章:深度学习基础

3.1 局部极小值与鞍点

临界点,即梯度为零的点,包含局部极小值(local minimum)和鞍点(saddle point)。

梯度下降算法在接近鞍点的时候会变得非常慢,阻碍了继续优化的进程。所以我们需要判断这个临界点是不是鞍点,以及如果是、应该怎么离开它。

判断鞍点

通过泰勒级数近似、海森矩阵等数学方法进行判断。

  1. 计算一阶偏导数,如果同时为零,则可能是极值点或鞍点。

  2. 计算二阶偏导数,构造Hessian矩阵。

  3. 判断Hessian矩阵:如果特征值有正有负,就是鞍点;如果所有特征值都是正的,是局部最小值点;如果都是负的,是局部最大值点。

逃离鞍点的方法

低维度空间中的局部极小值点,在更高维的空间中往往是鞍点。

  1. 批量梯度下降(BGD)和随机梯度下降(SGD):3.2介绍。

  2. 动量(Momentum):3.2介绍。效果通常比SGD要好一些。

  3. 自适应学习率(Adagrad、Rmsprop、Adadelta):3.3介绍。效果会更好、更稳健,不用考虑习率的设置。

参考:

https://www.zhihu.com/question/273702122/answer/447549439

3.2 批量和动量

批量(BGD和SGD)

批量梯度下降算法(BGD:在一个大批量中同时处理所有样本,这需要大量时间,而且有些例子可能是多余的且对参数更新没有太大的作用。

随机梯度下降算法(SGD:在每次迭代时使用一个样本来对参数进行更新(mini-batch size =1)。当遇到局部极小值或鞍点时,SGD会卡在梯度为0处。

小批量梯度下降(MBGD):大多数用于深度学习的梯度下降算法介于以上两者之间,使用一个以上而又不是全部的训练样本。MGBD需要随着时间的推移逐渐降低学习率:在梯度下降初期,能接受较大的步长(学习率),以较快的速度进行梯度下降;当收敛时,让步长小一点,并且在最小值附近小幅摆动。但因为噪音的存在,学习过程会出现波动。

参考:

https://zhuanlan.zhihu.com/p/72929546

动量

动量,也就是梯度……

在物理的世界里,一个球如果从高处滚下来,就算滚到鞍点或鞍点,因为惯性的关系它还是会继续往前走。如果球的动量足够大,甚至翻过小坡继续往前走。

3.3 自适应学习率

调整学习率(步长)是很重要的。步长太大,一下子就跨过了最优解;步长太小,要走很久很久才能到达。

就像《小马过河》一样:河水对老牛来说很浅,对松鼠来说很深。不同的参数也需要不同的学习率(而不是固定不变的):如果在某一个方向上梯度值很小(非常平坦),我们会希望学习率调大一点;如果在某一个方向上非常陡峭(坡度很大),我们会希望学习率可以设得小一点。

自适应梯度算法AdaGrad(Adaptive Gradient)

具体而言,AdaGrad在每次更新时对每个参数的学习率进行缩放,使得学习率对于梯度较大的参数较小,而对于梯度较小的参数较大。

均方根传递RMSprop(Root Mean Squared propagation)

注意这个不是均方根误差RMSERoot Mean Square Error)!

RMSE对标的是MSE(Mean Square Error)均方误差

这是对AdaGrad的改进,旨在解决AdaGrad在训练后期学习率迅速下降的问题。AdaGrad在算均方根的时候,每一个梯度都有同等的重要性,但RMSprop 可以自己调整当前梯度的重要性。

Adam(Adaptive moment estimation)

Adam 可以看作 RMSprop 加上动量,使用动量作为参数更新方向,并且能够自适应调整学习率。

参考:

https://blog.csdn.net/fengguowuhen0230/article/details/130205653

https://blog.csdn.net/ljd939952281/article/details/141470620

这篇关于【Datawhale X 李宏毅苹果书 AI夏令营】Task1笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

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

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

三频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

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

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

Spring AI 实现 STDIO和SSE MCP Server的过程详解

《SpringAI实现STDIO和SSEMCPServer的过程详解》STDIO方式是基于进程间通信,MCPClient和MCPServer运行在同一主机,主要用于本地集成、命令行工具等场景... 目录Spring AI 实现 STDIO和SSE MCP Server1.新建Spring Boot项目2.a

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2