【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

相关文章

苹果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

Spring AI集成DeepSeek实现流式输出的操作方法

《SpringAI集成DeepSeek实现流式输出的操作方法》本文介绍了如何在SpringBoot中使用Sse(Server-SentEvents)技术实现流式输出,后端使用SpringMVC中的S... 目录一、后端代码二、前端代码三、运行项目小天有话说题外话参考资料前面一篇文章我们实现了《Spring

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2