只有在数据很庞大的时候(在机器学习中,几乎任何时候都是),我们才需要使用 epochs,batch size,迭代这些术语,在这种情况下,一次性将数据输入计算机是不可能的。因此,为了解决这个问题,我们需要把数据分成小块,一块一块的传递给计算机,在每一步的末端更新神经网络的权重,拟合给定的数据。

EPOCH

当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一个 epoch。

然而,当一个 epoch 对于计算机而言太庞大的时候,就需要把它分成多个小块。

为什么要使用多于一个 epoch?

我知道这刚开始听起来会很奇怪,在神经网络中传递完整的数据集一次是不够的,而且我们需要将完整的数据集在同样的神经网络中传递多次。但是请记住,我们使用的是有限的数据集,并且我们使用一个迭代过程即梯度下降,优化学习过程和图示。因此仅仅更新权重一次或者说使用一个 epoch 是不够的。

随着 epoch 数量增加,神经网络中的权重的更新次数也增加,曲线从欠拟合变得过拟合。

BATCH SIZE(批大小)

一个 batch 中的样本总数。记住:batch size 和 number of batches 是不同的。

batchsize的正确选择是为了在内存效率和内存容量之间寻找最佳平衡

BATCH 是什么?

在不能将数据一次性通过神经网络的时候,就需要将数据集分成几个 batch。

迭代

迭代是 batch 需要完成一个 epoch 的次数。记住:在一个 epoch 中,batch 数和迭代数是相等的。

比如对于一个有 2000 个训练样本的数据集。将 2000 个样本分成大小为 500 的 batch,那么完成一个 epoch 需要 4 个 iteration。

最新文章

  1. jquery基础事件
  2. subprocess模块在Windows下调用失败问题
  3. Spring Integration - 自动轮询发送手机短信
  4. IE下a标签跳转失败
  5. MongoDB - MongoDB CRUD Operations
  6. pip 安装python环境及打包
  7. fedora 23中配置nfs-server
  8. E: Sub-process /usr/bin/dpkg returned an error code (1)
  9. jQuery之事件
  10. Linux NFS服务器的安装与配置(转载)
  11. Spring通过工厂创建实例的注意事项
  12. JavaScript HTML DOM 元素(节点)
  13. python_装饰器_语法糖
  14. python中list添加元素的方法append()、extend()和insert()
  15. Bugku-CTF之Web5(JSPFUCK??????)
  16. BZOJ1774[USACO 2009 Dec Gold 2.Cow Toll Paths]——floyd
  17. 【Little Demo】从简单的Tab标签到Tab图片切换
  18. linux驱动---等待队列、工作队列、Tasklets【转】
  19. 信号处理signal、sigaction、pause、信号嵌套处理、不可重入函数
  20. 使用XWAF框架(5)——XML解析器:CXDP

热门文章

  1. java基础---->String中replace和replaceAll方法
  2. ASP.NET MVC+Vue.js实现联系人管理
  3. 关于4A网络安全管控平台控件加载失败的解决方法
  4. Mac os的使用
  5. <?php if($value['udertype'] == 0) {?> <td>超级管理员</td> <?php } else if ($value['udertype'] == 1)
  6. Map 嵌套存储Map
  7. CH 3101 - 阶乘分解 - [埃筛]
  8. BrowserRoute服务器配置
  9. js之常见问题--for循环中为什么点击总是弹出最后一个i
  10. 黏包:传输过程中 read(不可靠)传输时由于网络造成黏包