machine-learning - 随机梯度下降的成本函数是针对所有行计算还是仅针对迭代行计算?

标签 machine-learning gradient-descent stochastic

在 SGD 中,我想了解在我们通过转到下一行再次更新参数之前是否计算所有行的成本,或者在更新参数之前仅计算下一行的成本?

最佳答案

在随机梯度下降中,您可以使用批处理更新参数。如果你的训练集有N示例(=行),您只需使用 B其中每次更新参数,其中 B<=N 。那些B应从 N 中随机选择参数更新的每次迭代的示例。 (通过替换选择、不替换选择或只是提前打乱训练集来随机选择)。因此,您使用 B 计算成本的梯度每次都举例。 (请注意,您实际上不需要计算成本 - 只需计算其梯度)。 B特别地可以等于N ,也可以等于1 (这称为在线学习)。

此外,有时您希望在优化过程中看到一些学习指标。例如,每隔一段时间,您可能希望查看整个训练集上的成本值(这有助于终止条件),或者查看整个验证集上的成本值(例如,当监控以确保您不会过度拟合)。在这些情况下,您可能需要计算整个集合的成本(而不是梯度)。

关于machine-learning - 随机梯度下降的成本函数是针对所有行计算还是仅针对迭代行计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43943177/

相关文章:

python - Pytorch 预期为 1D 张量,但得到了 2D 张量

python - 火车测试拆分 scikit-learn 的问题

python - 如果用 Optimizer 捕获梯度,它会计算两倍的梯度吗?

python - 当我尝试将值迭代算法与 mdptoolbox 一起使用时出现 OverflowError

mathematical-optimization - OptaPlanner 是否能够模拟随机程序?

r - 在 R 中的 H2O 中将两个随机森林模型中的树模型合并为一个随机森林模型

python-3.x - 如何在 scikit-learn 中访问管道 GridSearchCV 内估计器的属性?

python - Python 中的梯度下降实现

algorithm - 梯度下降和爬山之间的行为差​​异

matlab - 朗之万方程的 ode45