神经网络训练中,傻傻分不清Epoch、Batch Size和迭代

作者: 李亚洲 2017-09-26 10:09:55

你肯定经历过这样的时刻,看着电脑屏幕抓着头,困惑着:「为什么我会在代码中使用这三个术语,它们有什么区别吗?」因为它们看起来实在太相似了。

为了理解这些术语有什么不同,你需要了解一些关于机器学习的术语,比如梯度下降,以帮助你理解。

这里简单总结梯度下降的含义…

梯度下降

这是一个在机器学习中用于寻找最佳结果(曲线的最小值)的迭代优化算法。

梯度的含义是斜率或者斜坡的倾斜度。

下降的含义是代价函数的下降。

算法是迭代的,意思是需要多次使用算法获取结果,以得到最优化结果。梯度下降的迭代性质能使欠拟合的图示演化以获得对数据的最佳拟合。

梯度下降中有一个称为学习率的参量。如上图左所示,刚开始学习率更大,因此下降步长更大。随着点下降,学习率变得越来越小,从而下降步长也变小。同时,代价函数也在减小,或者说代价在减小,有时候也称为损失函数或者损失,两者都是一样的。(损失/代价的减小是一件好事)

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

EPOCHS

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

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

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

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


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

那么,几个 epoch 才是合适的呢?

不幸的是,这个问题并没有正确的答案。对于不同的数据集,答案是不一样的。但是数据的多样性会影响合适的 epoch 的数量。比如,只有黑色的猫的数据集,以及有各种颜色的猫的数据集。

BATCH SIZE

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

BATCH 是什么?

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

正如将这篇文章分成几个部分,如介绍、梯度下降、Epoch、Batch size 和迭代,从而使文章更容易阅读和理解。

迭代

理解迭代,只需要知道乘法表或者一个计算器就可以了。迭代是 batch 需要完成一个 epoch 的次数。记住:在一个 epoch 中,batch 数和迭代数是相等的。

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

Epoch Batch Size 神经网络
上一篇:对于未来互联网:AI创造了什么,毁灭了什么 下一篇:cnBeta推出三款新机器学习工具 帮助开发者打造AI应用
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

预测分析:重新考虑组织中的时间和数据

时间序列是一种标准的分析方法,但是较为先进的机器学习工具引入了统计技术,来建立更精确的预测模型。时间是无法倒流的,但是使用现有的工具,您有更多的机会预测时间,更准确地说,是可以预测时间序列样本中的事件是否会继续影响决策趋势。

IT168 ·  2019-09-27 09:57:09
微众银行AI首席科学家NeurIPS论文揭示“神经网络防盗最新技术”

随着深度神经网络(DNN)的快速发展,机器学习服务(MLaaS)等有潜力的商业模式迅速崛起,AI产业化进入发展快车道。然而,保护训练好的DNN模型免于被非法复制,重新分发或滥用(即知识产权侵权)是AI产业化进程中必须要面临和解决的问题。尤其是当下各国企业在深度学习模型和平台方面进行巨额研发投入,对知识产权的保护刻不容缓。

屈鑫 ·  2019-09-26 15:27:09
2019年较热门的5大深度学习课程

今天,我们将和大家盘点一下,当下较流行的深度学习资源/课程,可以帮助你们提升深度学习技能。

猿哥 ·  2019-09-26 05:16:24
脆弱的神经网络:UC Berkeley详解对抗样本生成机制!

用于「欺骗」神经网络的对抗样本(adversarial example)是近期计算机视觉,以及机器学习领域的热门研究方向。只有了解对抗样本,我们才能找到构建稳固机器学习算法的思路。本文中,UC Berkeley 的研究者们展示了两种对抗样本的制作方法,并对其背后的原理进行了解读。

机器之心 ·  2019-09-18 19:20:28
NLP模型超越人类水平?你可能碰到了大忽悠

要明确的是,这也不是说像BERT这样的大型模型或深度学习都是无用的。但是,对于深度学习模型在高级自然语言理解任务中表现出的近乎人类表现的报告,我们应该持怀疑态度。

大数据文摘 ·  2019-09-10 13:48:12
一文看尽26种神经网络激活函数(从ReLU到Sinc)

在本文中,作者对包括 Relu、Sigmoid 在内的 26 种激活函数做了可视化,并附上了神经网络的相关属性,为大家了解激活函数提供了很好的资源。

机器之心 ·  2019-08-29 10:10:52
生产环境中轻松部署深度学习模型

将经过训练的神经网络部署到应用程序和服务中可能会给基础设施经理带来挑战。多个框架、未充分利用的基础设施和缺乏标准实施,这些挑战甚至可能导致AI项目失败。本文探讨了如何应对这些挑战。

布加迪 ·  2019-08-08 08:00:00
60行代码徒手实现深度神经网络

针对当前数据数据集,选择ReLu激活函数,采用双隐藏层,每个隐藏层节点数设置为3是一个不错的选择,AUC得分为0.99979。

佚名 ·  2019-07-25 08:20:37
Copyright©2005-2019 51CTO.COM 版权所有 未经许可 请勿转载