epoch、batch、batch size和mini-batch的区别

epoch、batch、batch size和mini-batch的区别

epoch、batch、batch size和mini-batch都是深度学习中常见的名词,初学时经常混淆,在此整理。

epoch

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

  • 为什么需要多个epoch

在深度学习中,向神经网络传递整个数据集一次是远远不够的,而需要多次在神经网络上训练。从欠拟合的状态向适当拟合靠近。当然一不小心也可能会过拟合。也就是说不同的数据集,最适的epoch是不同的,会受到数据集多样性的影响。

batch

当数据集很大的时候,对于每个epoch,很难将所有的数据集一次读入到内存中,这是需要将数据集分为几次读入,每次称为一个batch。

batch size

即batch中样本的数量。

mini-batch

需要先介绍下梯度下降的两种方法。

  • 批梯度下降(batch gradient decent)

这种方法每次使用整个batch计算损失,调整参数。性能相对较好,但是计算量大,速度慢。

  • 随机梯度下降(stochastic gradient decent)

每次选取一个数据调整参数,计算很快,但是收敛性能不好,容易在最优点附近震荡。

  • 小批量梯度下降(mini-batch gradient decent)

现在解释mini-batch。这里指的是一种梯度下降的方法,算是融合了上述两种方法的优点。也就是说把batch分成小batch,在小batch上梯度下降。

你可能感兴趣的:(Deep,Learning,神经网络,深度学习,机器学习)