为什么随机梯度下降会导致我们达到最小值?

数据挖掘 机器学习 优化 梯度下降 数学 执行
2022-03-03 23:12:17

为什么我们认为随机梯度下降会找到最小值?我的意思是在每次迭代中,SGD 都会朝着仅减少当前批次错误的方向移动(SGD 不关心其余样本)。但是为什么这会导致我们的成本函数达到局部最小值呢?

为什么我们希望这个全新的最低限度会比最初的最低限度更深?它更有可能吗?为什么?原因是什么?

1个回答

对于小批量梯度下降,成本函数可能不会在每次迭代中减少。会有一些噪音,并且批量较小,过程噪音更大。SGD 的批量大小为 1,因此是极端情况。但仍可预期整体呈下降趋势。与使用整个数据集相比,SGD 和小批量梯度下降不会收敛到最小值,而是在最小值附近振荡。查看此视频以了解有关此过程的讨论。

对于 mini-batch,我们希望每个 batch 代表数据集;但是批量大小 = 1 太极端了。由于数据集应该有一些模式来预测每个样本都会在其数据中包含一些信息,但如上所述,对于批量大小为 1,我们将有太多噪声。为了防止这种噪声也改变函数(权重)对于下一个样本,学习率设置为较小的值. 这样,即使我们朝错误的方向迈出了一步,也不会迈出很大的一步,接下来的几个样本的权重或多或少与以前相同。它们会有所不同,但差异会很小。就好像我们使用的是稍大的批量,加上对权重的微小差异的一些扰动。这并不意味着较小的学习率总是更可取,请检查此问题以了解它应如何随批量大小扩展。