【李宏毅机器学习·学习笔记】Tips for Training: Batch and Momentum

news2024/10/3 0:22:45

本节课主要介绍了Batch和Momentum这两个在训练神经网络时用到的小技巧。合理使用batch,可加速模型训练的时间,并使模型在训练集或测试集上有更好的表现。而合理使用momentum,则可有效对抗critical point。

课程视频:
Youtube:https://www.youtube.com/watch?v=zzbr1h9sF54
知乎:https://www.zhihu.com/zvideo/1617121300702498816
课程PPT:
https://view.officeapps.live.com/op/view.aspx?src=https%3A%2F%2Fspeech.ee.ntu.edu.tw%2F~hylee%2Fml%2Fml2021-course-data%2Fsmall-gradient-v7.pptx&wdOrigin=BROWSELINK

一、Batch

在optimization的过程中,我们实际算微分的时候并不是对所有的data做微分,而是将data分为一个一个的batch (mini batch) 计算微分。
在这里插入图片描述
例如上图,程序先使用第一个batch的数据计算Loss L1,再用L1计算gradient g0,并使用g0来update参数(θ0→θ1);之后,程序又使用第二个batch计算Loss L2,再用L2计算gradient g1,并使用g1来update参数(θ1→θ2)。当所有的batch都过完一遍后,我们就说过完了一个epoch
shuffle是与epoch相关的另一个概念。在每一个epoch开始之前我们都会将其分为一个个batch,shuffle的作用就是确保每一个epoch的batch都不一样。

batch的大小对训练的过程和结果都有一定的影响。如下图,假设一个数据集中有N个样例,左边的batch size = N,即full batch,相当于没有使用batch,程序一次遍历完所有的样例后才update参数;右边的batch size = 1,可视为small batch,程序遍历一个样例即更新一次参数,在一个epoch里需要更新N次参数。从图中看,当batch size = 1时,由于每次只根据一个样例来计算loss,它求出来的gradient噪声是比较大的,所以update的方向看上去是曲曲折折;而左边是根据所有样例来计算loss,其参数的update看上去更为稳健。
在这里插入图片描述

small batch和large batch之间的差异,具体还可从以下几个维度来看:

1. Smaller batch requires longer time for one epoch

如果不考虑并行运算,large batch在训练的过程中,一次需要读更多的数据,它所花费的时间应该比small batch的时间长。但是时间上GPU一般都有并行运算的能力,它可以同时处理多笔数据。当batch size在一定的阈值,训练完一个batch,large batch所花费的时间并不一定比small batch所需的时间多 (如下图左边所示)。相反,在一个epoch中,batch size越小,update参数的次数就越多,训练花费的时间也就更久 (如下图右边所示)。
在这里插入图片描述

2. Smaller batch size has better performance

有实验表明,small batch在训练时取得的准确率更高,从下图可以看出,不管是在训练集还是验证集上,随着batch size增大,模型的准确率会降低。
在这里插入图片描述
对此的一种解释是,large batch更容易陷入critical point。如下图,左边的full batch如果卡在了gradient为0的点,那么update就会停在这个点;而邮编的samll batch,如果一笔batch卡在这个点,可以接着用另一笔来计算loss,或许可由此跳出critical point。
在这里插入图片描述

3. Small batch is better on testing data

有研究表明,在测试集上使用small batch得到的准确率可能更高。如下图所示,尽管在测试集上可能有的large batch的准确率可能略高于small batch,但在测试集上small batch的准确率无一例外均高于large batch。
在这里插入图片描述
一种可能的解释是,窄的峡谷没有办法困住small batch,而大的平原才有可能困住small size,而large batch则容易被困在峡谷里。从下图中可以看出,如果是在峡谷,训练集上的Loss和测试集上的Loss差距较大,从而导致准确率变低。
在这里插入图片描述
总的来说,small size和large size之间的对比如下:
在这里插入图片描述

二、Momemtum

momentum是另一个可能对抗critical point的技术。
如下图,我们假设error surface是一个斜坡,而参数是一个球,在现实的物理时间中,球从斜坡上滚下,不一定会被saddle point或local minima卡住,因为惯性在起作用,受惯性影响,即便受到阻力,球仍然会在一定的时间段内保持原来的运动状态。momentum在训练神经网络过程中的作用就相当于物理世界的惯性
在这里插入图片描述
下图是一个一般的(Vanilla)使用梯度下降法的过程(不考虑momentum)。我们先计算梯度g,再沿着梯度的反方向移动以更新θ。
在这里插入图片描述
而如果考虑momentum,整个梯度下降法更新参数 θ 的过程则如下。第 i 次update时的momentum mi,其方向与上一次参数更新的movement方向一致(如图中蓝色虚线所示)。如果考虑momentum,在第 i 次update参数 θ 时,会综合梯度 gi的反方向(如图中红色虚线所示)与mi(前一步移动的方向),来选择本次move的方向(如图中蓝色实线所示)。
在这里插入图片描述
从下图中左侧的公式推导过程可知,momentum mi其实可以看做之前之间计算出来的gradient的weighted sum。因而我们可以说,加上momentum后的uodate不是只考虑当前的gradient,而是考虑过去所有的gradient的总和
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

如何应对批发与零售行业的致命危机?附解决方法!

随着科技的不断进步和消费者行为的变化,批发和零售行业正迫切需要进行数字化转型升级,以应对日益激烈的竞争压力和市场变革。这一转型势在必行,但是该行业面临诸多痛点。因此,企业需要寻找适合自己的解决方案,以应对数…

【前端实习生备战秋招】—HTML 和 CSS面试题总结(三)

【前端实习生备战秋招】—HTML 和 CSS面试题总结(三) 1.行内元素有哪些?块级元素有哪些? 空(void)元素有那些? CSS 规范规定,每个元素都有 display 属性,确定该元素的类型,每个元素…

更新页面无法回显

需求与问题: 在菜品管理开发中,我需要修改菜品,第一步是回显页面,但在我再三确认代码无误的情况下依旧无法回显内容 问题发现与解决: 经过排查,我发现我的DishDTO内容如下: Data public clas…

Vue 路由 router 配置(四)

一、下载 router 组件 1.1 删除文件 先把第三小节里面默认生成的文件删除干净,只剩下 main.js 和 App.vue,内容如下所示: import Vue from vue import App from ./AppVue.config.productionTip false;new Vue({el: #app,components…

公司/设计院文件数据防泄密系统「图纸加密软件」

图纸防泄密系统是指对企业电脑文件图纸数据透明加密防护的系统软件,可以防止公司内部数据泄密,通过动态加解密技术,有效防止公司内部数据泄密。即员工在创建、编辑文档时会被自动加密存放在硬盘上,防止员工故意或由于疏忽而造成泄…

深入剖析java字节码

目录 1.Demo源码 2.字节码 3.class文件反编译java文件 4.字节码结构 4.1 魔数 ​编辑4.2 版本号 4.3 常量池 4.3.1 常量池计数器 4.3.2 常量池表 ​编辑4.3.3 常量类型和结构 4.3.4 常量解读 5.访问标识 6.类索引、父类索引、接口索引 7.字段表集合 8.方法表集合…

揭秘微信聊天框隐藏的实用功能

揭秘微信聊天框隐藏的实用功能 微信聊天框一直是我们日常沟通的重要工具,但你是否知道它隐藏着一些实用功能?让我们一起揭秘微信聊天框中那些鲜为人知的功能,为你的聊天体验增添便利和乐趣! 发现更多精彩,长按聊天框带…

活动隔断在现在酒店运用的方式

活动隔断是一种在酒店内部划分空间的方式,用于实现不同活动的隔离和隐私。现代酒店常用的活动隔断方式有以下几种: 1. 固定隔断:使用墙体、固定屏风或者板材等材料,将空间划分为不同的房间或区域。这种方式常用于划分客房、会议室…

Pytorch使用VGG16模型进行预测猫狗二分类

目录 1. VGG16 1.1 VGG16 介绍 1.1.1 VGG16 网络的整体结构 1.2 Pytorch使用VGG16进行猫狗二分类实战 1.2.1 数据集准备 1.2.2 构建VGG网络 1.2.3 训练和评估模型 1. VGG16 1.1 VGG16 介绍 深度学习已经在计算机视觉领域取得了巨大的成功,特别是在图像分类任…

etcd 基础使用

etcd Go 操作 Etcd 参考 go get go.etcd.io/etcd/client/v3民间文档:http://www.topgoer.com/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%93%8D%E4%BD%9C/go%E6%93%8D%E4%BD%9Cetcd/%E6%93%8D%E4%BD%9Cetcd.html 官方文档:https://github.com/etcd-io/etcd/blob…

如何把pdf转成cad版本?这种转换方法非常简单

将PDF转换成CAD格式的优势在于,CAD格式通常是用于工程设计和绘图的标准格式。这种格式的文件可以在计算机上进行编辑和修改,而不需要纸质副本。此外,CAD文件通常可以与其他CAD软件进行交互,从而使得工程设计和绘图过程更加高效和精…

5款无广告的超实用软件,建议收藏!

​ 大家好,我又来了,今天向大家推荐几款软件,它们有个共同的特点,就是无广告、超级实用,大家看完之后,可以自己去搜索下载试用。 1.重复文件清理——Duplicate Cleaner ​ Duplicate Cleaner是一款用于找出硬盘中重复文件并删除的工具。它可以通过内容或文件名查找重复文档、…

面试必考精华版Leetcode104. 二叉树的最大深度

题目: 代码(首刷自解 day23): class Solution { public:int maxDepth(TreeNode* root) {if(rootnullptr) return 0;return max(maxDepth(root->left),maxDepth(root->right))1;} };

安超云参与编制的《上云指导:云基础环境框架(Landing Zone)设计与应用》白皮书正式发布

近日,由中国信息通信研究院牵头,阿里云、中国移动、安超云等单位共同编制的业界首个第三方视角的《上云指导:云基础环境框架(Landing Zone)设计与应用》白皮书正式发布。 白皮书从云基础环境框架 Landing Zone 背景、内…

反诈:吴明军、黄亮领导的WIN生活资金盘,大家警惕防范此类诈骗

消息已经证实!“米粒”无法变现,数以万计的会员深套“315万民商城”,维权艰难,血汗钱无法讨回。 其实这一点笔者并不感到太意外,因为万民商城资金传销盘的定性之前就已经发文揭露过,并反复提醒大家小心警惕…

制造型企业如何实现车间设备生产数据的实时采集?需要5G网络吗?

引言 在制造业数字化转型的浪潮下,实时采集车间设备生产数据变得尤为重要。工业边缘网关HiWoo Box作为一款专为工业应用而设计的智能设备,具备工业级设计和多种联网方式,为制造型企业提供了高性能的车间设备数据实时采集解决方案。本文将重点…

ChatGPT3.5——AI人工智能是个什么玩意?

ChatGPT3.5——AI人工智能 AI人工智能什么是AI?AI有什么过人之处AI有什么缺点 AI的发展AI的发展史中国是如何发展AI的 AI六大要素感知理解推理学习交互 ChatCPT-3.5GPT-3.5的优势在哪里GPT-3.5的风险GPT-4骗人事件 AI人工智能 AI,就像是一位超级聪明的机…

Spring Boot 配置多数据源【最简单的方式】

Druid连接池 Spring Boot 配置多数据源【最简单的方式】 文章目录 Druid连接池 Spring Boot 配置多数据源【最简单的方式】 0.前言1.基础介绍2.步骤2.1. 引入依赖2.2. 配置文件2.3. 核心源码Druid数据源创建器Druid配置项 DruidConfig 3.示例项目3.1. pom3.1.1. 依赖版本定义3.…

【SpringBoot】86、SpringBoot中集成Quartz根据Cron表达式获取接下来5次执行时间

本篇文章根据集成 Quartz 根据 Cron 表达式获取接下来的 5 次执行时间,在配置定时任务时,可以清晰地知道自己的 Cron 表达式是否正确,对于 Quartz 不熟悉的同学可以先看看我之前的文章 【SpringBoot】82、SpringBoot集成Quartz实现动态管理定时任务 【SpringBoot】83、Spri…

马斯克收购AI.com域名巩固xAI公司地位;如何评估大型语言模型的性能

🦉 AI新闻 🚀 AI拍照小程序妙鸭相机上线商业工作站并邀请摄影师进行内测 摘要:AI拍照小程序妙鸭相机将上线面向商业端的工作站,并邀请摄影师进行模板设计的内测。妙鸭相机希望为行业提供更多生态产品,扩大行业规模&a…