小批量梯度下降背后的基本原理是什么?

人工智能 梯度下降 随机梯度下降 小批量梯度下降
2021-11-13 08:36:35

我正在读一本书,上面写着

随着小批量大小的增加,计算出的梯度更接近“真实”梯度

所以,我假设他们说小批量训练只关注降低某个“平面”中的成本函数,牺牲准确性来换取速度。那是对的吗?

2个回答

小批量训练背后的基本思想植根于局部搜索和优化算法中的探索/利用权衡。

您可以将 ANN 的训练视为对可能参数空间的局部搜索。最常见的搜索方法是将所有参数移向误差最大的方向(梯度下降)。

然而,ANN 参数空间通常不具有平滑拓扑。有许多浅的局部最优。遵循全局梯度通常会导致搜索陷入其中一个最优解,从而阻止收敛到一个好的解决方案。

随机梯度体面解决这个问题的方式与模拟退火等旧算法大致相同:你可以摆脱浅层局部最优,因为你最终(很有可能)会根据一个“冒泡”你的点选择一系列更新出去。问题是你也倾向于在错误的方向上浪费大量时间。

小批量训练介于这两个极端之间。基本上你在足够多的例子中平均梯度,你仍然有一些全局误差信号,但不会太多,以至于你会长期陷入浅层局部最优。

Masters 和 Luschi最近的研究表明,事实上,大多数时候您希望使用比现在更小的批量。如果你设置的学习率足够仔细,你可以使用大的batch size更快地完成训练,但是选择正确的学习率的难度随着batch的大小而增加。

就像你有一个有 1000 名孩子的班级,而你是一名老师,希望他们所有人同时学习一些东西。难是因为大家都不一样,适应能力和推理能力不同。因此,对于同一任务,可以有不同的策略。1) 一次带走每个孩子并对其进行训练。这将是一个好方法,但需要很长时间 here each child is equal to your batch size

2) 带一组 10 个孩子并训练他们,这可能是时间和学习之间的良好折衷。在较小的小组中,您可以更好地处理顽皮的人。here your batch size is 10

3)如果你把1000个孩子都教给他们,时间会很短,但你无法对那些淘气的孩子给予适当的关注here your batch size is 1000

与机器学习相同,采取合理的批量大小,相应地调整权重。我希望这个类比能消除你的疑惑。