在批量梯度下降中,据说梯度下降更新的一次迭代需要处理整个数据集,我相信这是一个纪元。另一方面,在小批量算法中,在每个小批量之后进行更新,并且每次mini batch 完成,一个 epoch 完成。因此,在这两种情况下,在处理完所有数据后都会完成一个 epoch。我不太明白是什么让 mini-batch 算法更有效。
谢谢,
在批量梯度下降中,据说梯度下降更新的一次迭代需要处理整个数据集,我相信这是一个纪元。另一方面,在小批量算法中,在每个小批量之后进行更新,并且每次mini batch 完成,一个 epoch 完成。因此,在这两种情况下,在处理完所有数据后都会完成一个 epoch。我不太明白是什么让 mini-batch 算法更有效。
谢谢,
简而言之,批量梯度下降是准确的,但很安全,因此很慢。小批量梯度下降的准确性稍差,但并不安全,而且速度更快。
当你做梯度下降时,你使用梯度的估计来更新你的权重。当你使用批量梯度下降时,你的梯度估计是 100% 准确的,因为它使用了你所有的数据。
Mini-batch 被认为更有效,因为您可能能够获得,比方说,仅用 5% 的数据(这些数字是虚构的)就可以获得约 80% 的准确梯度。因此,您的权重可能并不总是以最佳方式更新(如果您的估计不太好),但您将能够更频繁地更新您的权重,因为您不需要一次查看所有数据。
这个想法是你更频繁地使用梯度的近似值来更新你的权重,这通常已经足够好了。当您开始处理非常大的数据集时,小批量的实用性变得更加明显。