【学习笔记】第三章深度学习基础——Datawhale X李宏毅苹果书 AI夏令营

news/2024/9/18 20:46:21/ 标签: 人工智能, 学习, 笔记

局部极小值与鞍点

梯度为0的点我们统称为临界点,包括局部极小值、鞍点等
局部极小值和鞍点的梯度都为0,那如何判断呢?
先请出我们损失函数:L(θ),θ是模型中的参数的取值,是一个向量。
由于网络的复杂性,我们无法直接写出损失函数,不过我们可以写出损失函数的近似取值。根据宋浩老师所讲的大学一年级高等数学的知识,我们可以通过三阶泰勒展开对损失函数在θ附近的取值进行近似:
在这里插入图片描述
其中,θ是模型中的参数的取值,θ’是在θ附近的取值。
H是海森矩阵, H i j H_{ij} Hij是L对 θ i \theta_i θi θ j \theta_j θj的二阶偏导数。
那么如何判断是极值点还是鞍点呢?
当梯度也就是g为0时,第二项可消去,损失函数的值可变为如下形式:
在这里插入图片描述
当所有 ( θ − θ ′ ) T H ( θ − θ ′ ) > 0 (\theta-\theta')^TH(\theta-\theta')>0 (θθ)TH(θθ)>0时, L(θ) < L(θ’),θ为极小值点
当所有 ( θ − θ ′ ) T H ( θ − θ ′ ) < 0 (\theta-\theta')^TH(\theta-\theta')<0 (θθ)TH(θθ)<0时, L(θ) > L(θ’),θ为极大值点
当有的 ( θ − θ ′ ) T H ( θ − θ ′ ) > 0 (\theta-\theta')^TH(\theta-\theta')>0 (θθ)TH(θθ)>0有的<0时, L(θ) > L(θ’),θ为鞍点

批量与动量

批量梯度下降法(BGD): 必须把一整个epoch训练数据都看完,才能够计算损失和梯度,参数才能够更新一次
随机梯度下降法(SGD): batch_size=1进行训练
批量梯度下降相比随机梯度下降,每次更新更稳定、更准确。
其计算量未必大,由于计算单元并行的特性可以对矩阵运算进行优化,其计算效率会随着batch_size的上升而更更接近性能极限。batch_size较小时,增加不会显著影响计算时间,单计算效率在提升,在接近计算单元性能极限时,会变成正比例函数。在模型效果方面,更小的batch_size可以引入噪声,帮助逃离鞍点和局部最优解,更大的batch_size可以使损失函数更加平滑,有利于优化,更快收敛。
所以,我们在训练时,需要选择一个合适的batch_size进行训练。
在这里插入图片描述


http://www.ppmy.cn/news/1518750.html

相关文章

React基础面试题

React 面试题 以下是面试官最有可能问到的 50 个 React 面试题和答案。为方便你学习&#xff0c;我对它们进行了分类&#xff1a; 基本知识React 组件React ReduxReact 路由 基本知识 1. 区分Real DOM和Virtual DOM Real DOMVirtual DOM1. 更新缓慢。1. 更新更快。2. 可以…

那么多编程语言,先学哪个?

简单介绍一下几种主要的语言&#xff1a; C&#xff0c;是一种面向对象的编程语言&#xff0c;常用于开发游戏、操作系统和嵌入式系统等性能要求比较高的场景。如果你对这些领域感兴趣&#xff0c;C是一个很好的选择。 Java&#xff0c;也是面向对象的编程语言&#xff0c;特点…

前端宝典二十三:Array最常用的34个方法

这里列举了Array最常用的34个方法 其中静态方法两个、实例方法32个&#xff0c;对他们进行了分类比较&#xff0c;有助于更好的掌握。 一、前言&#xff1a;手写一个深拷贝 以下是一个用 JavaScript 手写的深拷贝方法&#xff0c;考虑了正则表达式、日期对象、数组和普通对象…

12 对话模型微调2

1 P-Tuning P-Tuning 是在 Prompt-Tuning的基础上&#xff0c;通过新增 LSTM 或 MLP 编码模块来加速模型的收敛&#xff1b; 之前的实验也看到了使用prompt训练速度很慢&#xff0c;那么P-Tuning呢 参数占比&#xff1a; trainable params: 5,267,456 || all params: 1,308,37…

Windows服务器应急响应(下)

目录 介绍步骤 介绍 进程&#xff08;Process&#xff09;是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;是操作系统结构的基础。在早期面向进程设计的计算机结构中&#xff0c;进程是程序的基本执行实体&#x…

sql 优化,提高查询速度

文章目录 一、前言二、建议2.1 使用索引2.2 避免使用select *2.3. 使用表连接代替子查询2.4. 优化WHERE子句&#xff0c;减少返回结果集的大小2.5 用union all代替union2.6 使用合适的聚合策略2.7 避免在WHERE子句中使用函数2.8 使用EXPLAIN分析查询2.9 小表驱动大表2.10 使用窗…

PHP程序设计教案

文章目录&#xff1a; 一&#xff1a;前言 1.什么是PHP 2.环境安装 3. 语法规范 3.1 注释 3.2 分隔符 3.3 其他规范 二&#xff1a;基础语法 1.输出 1.1 echo 1.2 print 1.3 var_dump类型和值 1.4 print_r()易读 2.常量变量 2.1 常量 2.1.1 define()/const…

vue前端实现登录页面的验证码(新手版)

一、搭建vue前端登录页面 <template><div style"width: 800px; margin: 5px auto; background-color: #17ecf3"><div align"center"><h2>用户登录</h2></div><div style"width: 60%; margin: 1px auto"…

如何解决`.gitignore`规则不生效或已提交相关文件的问题

前言 在使用Git进行版本控制时&#xff0c;.gitignore文件是一个非常有用的工具&#xff0c;它可以帮助我们排除不需要跟踪的文件或目录。然而&#xff0c;在实际开发过程中&#xff0c;有时我们会遇到.gitignore规则不生效的情况&#xff0c;或者是不小心将不应提交的文件提交…

RabbitMQ 入门教程

RabbitMQ 入门教程 1. 引言 RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;实现高级消息队列协议 (AMQP)。它能帮助开发者实现应用程序间的解耦、异步处理、流量削峰等需求。 2. 安装与配置 2.1 安装RabbitMQ 2.1.1 Ubuntu bash sudo apt-get update sudo apt…

动态IP池在数据抓取中的应用与优势

随着互联网技术的快速发展&#xff0c;数据抓取&#xff08;Web Scraping&#xff09;已经成为获取互联网信息的重要手段。然而&#xff0c;在进行大规模数据抓取时&#xff0c;往往会遇到反爬虫机制、IP封禁等问题。动态IP池作为一种解决方案&#xff0c;可以有效地绕过这些障…

告别手动记录,音频转文字软件助力会议记录新高度

如果你突然被领导指派去参与一场会议&#xff0c;身边没有纸笔要怎么记录转达会议内容呢&#xff1f;我往往会采用手机的录音功能来记录会议内容会后再进行整理。这次我们就来探索音频转文字工具怎么提升我们的工作效率。 1.365在线转文字 链接传送&#xff1a;https://www.p…

微服务优缺点以及如何拆分

微服务优点 1,降低代码逻辑复杂度。 单个微服务模块相当于一个项目&#xff0c;开发人员只用关心这个模块的逻辑即可。 2&#xff0c;技术栈更加灵活 不同的微服务可以使用合适的语言架构实现&#xff0c;然后把服务注册到一个注册中心即可相互调用。 3&#xff0c;按需伸缩 当…

人工智能工作级开发者认证 HCCDP – AI 真题2 答案

1.GBDT通过bagging的防范可以对样本和特征都进行采集。答案:FALSE 原因:GBDT可以对样本采集,不能对特征采集 2.深度学习是机器学习的一个分支。答案:true 3.softmax激活函数的作用是减少及时量和防止梯度消失。答案false 4.在建筑施工现场,基于定制化的图像识别目标检测系统,…

Node.js 安装与使用及连接 MongoDB 的详细教程

下面我将详细讲解如何安装 Node.js、介绍 Node.js 的脚手架工具、使用 Express 脚手架创建项目&#xff0c;以及如何安装和连接 MongoDB。 一、Node.js 安装 下载 Node.js&#xff1a; 访问 Node.js 官方网站。 根据你的操作系统选择最新的 LTS&#xff08;长期支持版&#x…

从自动驾驶看无人驾驶叉车的技术落地和应用

摘 要 &#xff5c; 介绍无人驾驶叉车在自动驾驶技术中的应用&#xff0c;分析其关键技术&#xff0c;如环境感知、定位、路径规划等&#xff0c;并讨论机器学习算法和强化学习算法的应用以提高无人叉车的运行效率和准确性。无人叉车在封闭结构化环境、机器学习、有效数据集等方…

参加 帆软 BI 上海城市 课堂(08-30培训)

参加 帆软 BI 城市 课堂&#xff08;0830&#xff09;&#xff1a; 由于目前是自由职业&#xff0c;也想学习一下新的知识 。所以参加本次的培训&#xff0c;总的来说还是比较专业。 培训在 上海 帆软的总部 环球港进行。时间是 13:30~17&#xff1a;00 老师很专业。学习中 课…

关于前端布局的基础知识

float 横向布局 float 实现横向布局&#xff0c;需要向横着布局的元素添加float 其值left right 存在问题 如果使用float 所在父级五高度&#xff0c;会导致下方的元素上移 top的高度被吞了 解决方法&#xff1a; 给父级元素设置高度&#xff1a;不推荐&#xff0c;需要给父级…

LeetCode第65题 有效数字 结合设计模式:状态模式

思路&#xff1a;有限状态机&#xff0c;结合Java的设计模式&#xff1a;状态模式。 单纯用状态机会有大量的if-else&#xff0c;非常不好看&#xff0c;思路不清晰 用设计模式则非常清楚。但是设计模式是为了给人理解的&#xff0c;对机器而言也可能稍微影响性能&#xff1b; …

IO练习--随机点名

随机点名器1 需求: 有一个文件里面存储了班级同学的信息&#xff0c;每一个信息占一行。 格式为:张三-男-23 要求通过程序实现随机点名器。 运行效果: 第一次运行程序:随机同学姓名1(只显示名字) 第二次运行程序:随机同学姓名2(只显示名字) 第三次运行程序:随机同学姓名3(只显…