深度学习中epoch,batch的概念

batch、epoch和iteration是深度学习中几个常见的超参数。

(1) batch_ size: 每批数据量的大小。DL通常用SGD的优化算法进行训练,也就是一次(1 个iteration) 一起训练batchsize个样本,计算它们的平均损失函数值,来更新参数。
(2) iteration: 1 个iteration即迭代一次,也就是用batchsize个样本训练一次。
(3) epoch: 1个epoch指用训练集中的全部样本训练一次。

比如,有100个训练数据,batch_size为20,也就是每次(一个iteration)拿20个数据做训练,训练五个iteration就是一个epoch。

最初训练DNN采用一次对全体训练集中的样本进行训练(即使用1个epoch),并计算一次损失函数值,来更新一次权值。当时数据集较
小,该方法尚可。后来随着数据集迅速增大,导致这种方法一次开销大进而占用内存过大,速度过慢。
后来产生了一次只训练一个样本的方法(batchsize=1) ,称作在线学习。该方法根据每一个样本的情况更新一次权值,开销小速度快,但收
到单个样本的巨大随机性,全局来看优化性能较差,收敛速度很慢, 产生局部震荡,有限迭代次数内很可能无法收敛。
目前常用随机梯度下降SGD来训练,相当于上述两个“极端”方法的折中:将训练集分成多个mini batch (即常说的batch) ,一次迭代训练一个minibatch ( 即batchsize个样本),根 据该batch数据的loss更新权值。这相比于全数据集训练,相当于是在寻找最优时人为增加了一些随机噪声,来修正由局部数据得到的梯度,尽量避免因batchsize过大陷入局部最优。
这种方法存在两对矛盾。由于一次只分析的一小部分数据,因此整体优化效果与batchsize有关:
batchsize越小,一个batch中的随机性越大,越不易收敛。然而batchsize越小, 速度越快,权值更新越频繁;且具有随机性,对于非凸损失函数来讲,更便于寻找全局最优。从这个角度看,收敛更快,更容易达到全局最优。
batchsize越大,越能够表征全体数据的特征,其确定的梯度下降方向越准确,(因此收敛越快), 且迭代次数少,总体速度更快。然而大的batchsize相对来讲缺乏随机性,容易使梯度始终向单一方向下降, 陷入局部最优; 而且当batchsize增大到一定程度,再增大batchsize, 一次batch产 生的权
值更新(即梯度下降方向)基本不变。因此理论上存在一个最合适的batchsize值,使得训练能够收敛最快或者收敛效果最好(全局最优点)。

深度学习中epoch,batch的概念--笔记相关推荐

  1. 【CV】深度学习中Epoch, Batch, Iteration的含义

    Epoch 使用训练集的全部数据样本进行一次训练,称为一次epoch,即所有训练集的样本都在神经网络中进行了一次正向传播和一次反向传播 神经网络中需要有多次epoch,每次epoch中会进行一次更新权 ...

  2. 深度学习中的batch的大小对学习效果有何影响?

    写在前面:整理自知乎:深度学习中的batch的大小对学习效果有何影响? Batch_size参数的作用: 决定了下降的方向. 极端一: batch_size为全数据集(Full Batch Learn ...

  3. 深度学习中的batch、epoch、iteration

    名词解释 名词 定义 Epoch 使用训练集的全部数据对模型进行一次完整的训练,被称为"一代训练" Batch 使用训练集中的一小部分样本对模型权重进行一次反向传播的参数更新,这一 ...

  4. 深度学习中 epoch,[batch size], iterations概念解释

    one epoch:所有的训练样本完成一次Forword运算以及一次BP运算 batch size:一次Forword运算以及BP运算中所需要的训练样本数目,其实深度学习每一次参数的更新所需要损失函数 ...

  5. python batch_size_深度学习中的batch的大小对学习效果有何影响?

    可以参考这篇文章:龙鹏-言有三:[AI不惑境]学习率和batchsize如何影响模型的性能?​zhuanlan.zhihu.com 目前深度学习模型多采用批量随机梯度下降算法进行优化,随机梯度下降算法 ...

  6. 深度学习中的batch和epoch

    Batch是大小,epoch是数量 什么是Batch? Batch大小是一个超参数,用于定义在更新内部模型参数之前要处理的样本数.将批处理视为循环迭代一个或多个样本并进行预测.在批处理结束时,将预测与 ...

  7. 深度学习之 epoch batch iteration

    知识点 无论是使用yolo3,4 都是一样的过程,例如使用yolo3 去训练的时候,使用参数tran来训练,darknet的好处是可以使用opencv直接来进行模型推理,但是在训练过程中,我们经常会遇 ...

  8. 深度学习中的batch理解(batch size 一次喂给神经网络的数据大小量)

    本文引用自:训练神经网络时如何确定batch size? 文章目录 前言 回顾 Batch Size Which one? 前言 当我们要训练一个已经写好的神经网络时,我们就要直面诸多的超参数了.这些 ...

  9. 深度学习中batch_size、epoch和iteration的含义

    iteration:1个iteration等于使用batchsize个样本训练一次: epoch:1个epoch等于使用训练集中的全部样本训练一次,通俗的讲epoch的值就是整个数据集被轮几次. 比如 ...

最新文章

  1. postgresql 分组查询第一条数据
  2. [HDOJ2845]Beans(dp)
  3. 从网络管理员到首席架构师,这 16 年我是如何实现每年加薪 10000 美元的?
  4. 2018 Multi-University Training Contest 9 杭电多校第九场 (有坑待补)
  5. MyBatis创建SqlSession-有没有更好的拿到SqlSessionTemplate 的方法?
  6. mysql 外键(foreign key)的详解和实例_MySQL数据库外键
  7. 分布式的客户端-服务器结构_MMORPG游戏服务器技术选型参考
  8. mobile web retina 下 1px 边框解决方案
  9. sqlwarning mysql_mysql提示[Warning] Invalid (old?) table or database name问题的解决方法
  10. 安卓系统内 的 安卓虚拟机
  11. 基于bitbucket中央库的Git操作
  12. 十天学会单片机Day4串行口通信
  13. 【C语言程序】鸡兔同笼问题
  14. ssh-keygen:you don't exist,go away
  15. [JZOJ4378] 八卦天盘
  16. 在国内访问AWS与阿里云速度如何?
  17. Auto.js学习笔记2:真机连接vscode开发工具进行调试,自动开启微信app,自动切换通讯录和微信界面
  18. 近期抖音刷播放量怎么刷、抖音刷播放量苹果突然走火如何防止刷量呢?
  19. C语言数组求和与求平均值例题
  20. VMware公司成为Linux基金会金牌会员

热门文章

  1. 【Java】读取单颗北斗卫星导航星历文件进行卫星位置计算(RENIX3.04)
  2. Ogre 3D 配置
  3. c++ 保留有效数字和小数位
  4. mysql 模拟 序列号_mysql 序列号生成器(转)
  5. java-面向对象(上)
  6. 提升你设计水平的CSS3新技术
  7. 使用libx264静态编译库编译FFmpeg
  8. 对于给定的正整数N,求它的位数及其各位数字之和。
  9. ZYNQ MPSoc 多DMA传输实例
  10. Android系统之系统签名制作