首页 >> 大全

深度学习概念之Epoch,Batch Size和Iterations

2023-09-28 大全 24 作者:考证青年

本文解释了深度学习里面三个最常见的概念,他们分别是Epoch,Batch Size和,看了看现有的博客还是错误蛮多的,看到一篇国外的博文不错,翻译一波

Epoch vs Batch Size vs – SAGAR

你肯定看过好多次这些概念了,但是你肯定想搞清楚这些概念的本质区别,因为他们看起来属实是很相似。

为了搞清楚他们之间的区别,你需要先知道一些别的机器学习概念,比如说梯度下降,去帮助你更好地理解。

下面是一个关于梯度下降的小总结

梯度下降

在机器学习中,为了寻找最佳的结果(曲线的最小值),我们往往会采取迭代的优化算法

梯度指的是斜坡的倾向或者倾斜程度

下降指的是梯度减小的方向

算法是迭代的是指我们需要运行很多次,去得到最优的结果。随着迭代的进行,欠拟合的曲线会逐渐变得更好地拟合数据,下图可以看出这个过程

梯度下降需要一个叫做学习率的( rate)参数。在上面的左图中,刚开始的步长比较大就是因为学习率比较大;随着学习率变小,可以看出步长逐渐变小了。并且也可以看出损失函数(Cost )也逐渐变小(也有人叫做Loss ,是一个意思)

当数据量变大时,我们无法一次性把所有数据都喂给模型,这时候我们需要一些术语包括, batch size, 。这是因为我们需要把数据划分为更小的尺寸,并且把这些数据一份一份地输入电脑,用来在每一次输入数据时更新神经网络的权值

定义:每一个Epoch是指当一个完整的数据集已经被神经网络前向和反向传播一次

因为一个epoch可能很大,因此我们需要把它划分为很多个batch(批次

为什么我们需要超过一个Epoch?

我知道你一开始肯定是懵的——为什么要把整个数据集喂给神经网络一次是不够的?从而我们需要我们需要喂好几次?

原因在于我们利用梯度下降的方法,它是一种迭代过程。因此只喂一遍更新权值是不够的。

从下图可以看出,只设定一个epoch(喂一遍)会导致欠拟合

随着epoch的增长,权值会更新,逐渐从欠拟合()到最优值(),再到过拟合(),因此不能设置过小或者过大的epoch数量

那么,什么是epoch应当设置的值呢?

不幸的是,这个问题没有一个标准答案。针对不同的数据集答案是不同的,你可以说这个数字是取决于你的数据集的多样性的

_深度定义_深度概念理解

Batch Size

定义:在每一个批次中(batch)训练集的数目

请注意:Batch size 和 of (批次数)是两个不同的东西

什么是一个Batch呢?

正如前面说的,不能一次性把整个房数据集都喂给神经网络。把数据集划分为多个批次,数目为: of

在我写这篇博客的时候也是划分了不同的章节,可以帮助读者更好地理解文章的

为了得到你需要知道乘法表或者有个计算器(呵呵

定义:是在一个epoch里需要的批次数( of )

请注意:批次数目(The of )等于在一个epoch中所需的数目

如果我们有一个有2000个样例的训练集,我们可以把这2000个例子划分为每个批次有500个样例,那么我们完成1个epoch需要4个

在此例中,Batch Size:500 : 4 epoch:1

写作最后:最近找国内的深度学习工程师的岗位,需要复习一下深度学习的知识,可能最近会写一些博客,顺便求一波offer甭管是国内的国外的求offer

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了