gpt4 book ai didi

python - 小批量梯度下降、adam 和纪元

转载 作者:行者123 更新时间:2023-11-30 08:53:36 26 4
gpt4 key购买 nike

我正在学习 Python 深度学习类(class),但我陷入了示例的以下几行内容:

regressor.compile(optimizer = 'adam', loss = 'mean_squared_error')
regressor.fit(X_train, y_train, epochs = 100, batch_size = 32)

根据我所知道的定义,1 epoch = 遍历所有训练示例一次以进行一次权重更新。

batch_size 用于优化器,将训练示例划分为小批量。每个小批量的大小为 batch_size

我不熟悉 Adam 优化,但我相信它是 GD 或 Mini Batch GD 的变体。梯度下降 - 有一大批(所有数据),但有多个时期。小批量梯度下降 - 使用多个小批量,但只有 1 个时期。

那么,代码为什么同时具有多个小批量和多个纪元呢?这段代码中的 epoch 与上面的定义有不同的含义吗?

最佳答案

虽然其他答案基本上已经给了你正确的结果,但我想澄清你在帖子中提出的几点,并纠正它。
不同术语的(普遍接受的)定义如下。

  • 梯度下降 (GD):在函数中找到(局部或全局)最优值的迭代方法。默认梯度下降将遍历所有示例(一个时期),然后更新一次
  • 随机梯度下降 (SGD):与常规 GD 不同,它会遍历一个示例,然后立即更新。这样,您可以获得更高的更新率。
  • 小批处理:由于 SGD 的频繁更新成本很高(更新梯度执行起来有点乏味),并且在某些情况下可能会导致更糟糕的结果,因此聚合 < em>将多个(但不是全部)示例合并到一个更新中。这意味着,您将浏览 n 个示例(其中 n 是批量大小),然后然后更新。这仍然会导致一个时期内的多次更新,但不一定与 SGD 那么多。
  • 纪元:一个纪元仅指遍历所有训练数据。通常,您可以执行任意数量的 epoch。

还有一点,你关于ADAM的说法是正确的。 。它通常被视为普通梯度下降的更强大的变体,因为它使用更复杂的启发式(一阶导数)来加速和稳定收敛。

关于python - 小批量梯度下降、adam 和纪元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51373903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com