当前位置: 首页 > news >正文

李宏毅(deep-leraning)-四---梯度下降batch size

一 关于batch size的讨论


首先我们要了解,在每一次进行epoch时,会进行一次shuffle,进行batch分配。

其次,我们要理解batchepoch

batch就是把所有资料分成几个批次,每个批次读完进行一次梯度更新(update),所有batch读完算一个epoch.一般来说,在现有gpu并行能力的基础上,当数据量不大时,小batch size和大batch size的update速度几乎一样。但是当数据量过大,batch size过大,update的速度就较慢了。(如下图左)

但是,显而易见的,小batch size需要进行多次update,进行一次epoch所需时间更长。

但是,从模型训练精度角度下,小batch size的准确率更高(不易陷入局部优解)。(这给我们进行optimisization优化提供了思路) (如下图)

因为(1)小batch size不易陷入局部优解:小bacth因为每次进行update的数据是不一样的,这时候loos函数大概率有差别,这样的话不会拘泥于一个函数,有利于跳出单函数的局部最优。 

(2) 小的batch size还可以有效防止过拟合。

因为大batch size容易掉入窄的局部优解(峡谷),而小batch size容易处于宽的局部优解(盆地),当测试集测试时,loss函数和training 时的loss函数有差别(这里我们假设相对于原loss函数进行了平移),我们能明显看到,盆地处的误差要远小于峡谷处(红色虚线)。

总的总结如下:

二,关于梯度下降的深入理解(比较两种不同的下降方式) 

常规梯度下降

以下是常规的梯度下降算法

但是我们 发现,此梯度下降也容易陷入局部优解。为此,我们联想现实中的物理模型,当小球落入低谷时,由于惯性会跳出低谷,直到低谷很深。

基于此思路,我们建立了新的梯度下降模型。

Momentum:动量,冲力。这里我们理解为加上了惯性。图中的m1会记录上一次的方向(m是之前所有梯度的权重和,如下图),m1让梯度的移动带有记忆性,也就是通过数学公式模拟物理惯性,因而下一次梯度的变化是梯度值与记忆值的矢量和。 

通过加上m1(Momentum),我们每一次梯度的移动都是基于gradient与previous movement.
这样的好处是,在一些比较平的低谷时,即使gradient=0,我们依靠记忆值(≠0),而可以再走一段距离(如下图),极大提高跳出局部优解的概率。

http://www.dtcms.com/a/279580.html

相关文章:

  • 品质童装好而不贵!百胜中台助力久岁伴稳步发展
  • 今日行情明日机会——20250714
  • openEuler系统串口文件手法压力测试及脚本使用说明
  • 破解 VMware 迁移难题:跨平台迁移常见问题及自动化解决方案
  • 我的第一个开源项目:SpringCloud电商前端Vue实战
  • AI驱动编程范式革命:传统开发与智能开发的全维度对比分析
  • 《解锁音频处理新姿势:探索Librosa的无限可能》
  • androidstudio 高低版本兼容
  • 量产技巧之RK3588 Android12默认移除导航栏状态栏​
  • imx6ull-系统移植篇5——U-Boot 顶层 Makefile 简析
  • 蓝象智联入选江苏金融数据开发主体:隐私计算如何赋能公共数据价值释放?
  • Java :编译器的占位符 T#1
  • 【PTA数据结构 | C语言版】字符串匹配算法
  • es的自定义词典和停用词
  • 天海电子闯上市:业绩增速骤降,“踩雷”合众汽车,存坏账风险
  • Go从入门到精通(22) - 一个简单web项目-统一日志输出
  • 5.浏览本地文件获取路径与文件名称 C#例子 WPF例子
  • Elasticsearch 9.x 升级变化
  • 【安卓笔记】线程基本使用:锁、锁案例
  • Windows安装postgreSQL(保姆级教程)
  • 机床自动化中的“方言翻译官”:EtherNet/IP 转 PROFIBUS DP 实战手记
  • 安全初级(一)
  • 胡志明证券交易所新一代交易系统解决方案——基于美联储利率决议背景下的越南跨境金融基础设施升
  • pycharm恢复出厂设置,可以解决大多数pycharm存在的问题
  • nginx:SSL_CTX_use_PrivateKey failed
  • 怎么 将训练后的词嵌入向量反编译为自然语言
  • AI多因子模型解析白银14年新高:流动性压力与工业避险需求的联动效应
  • 数字化工厂规划-项目启动会汇报材料编写思路
  • Android Studio C++/JNI/Kotlin 示例 二
  • 三相新能源并网系统序阻抗模型——序阻抗分析器IMAnalyzer