在SGD中,我想了解在我们通过转到下一行再次更新参数之前计算所有行的成本,还是仅在更新参数之前计算下一行的成本?
答案 0 :(得分:0)
在随机梯度下降中,您可以使用批次更新参数。如果您的训练集包含N
个示例(=行),则每次更新参数时只使用B
个B<=N
。B
。那些N
应该在参数更新的每次迭代中从B
示例中随机选择。 (通过选择替换,选择不替换,或者只是提前改组训练集来随机选择)。因此,您每次使用B
示例计算成本的梯度。 (注意你实际上并不需要计算成本 - 只有它的梯度)。 N
尤其可以等于1
,也可以等于pick 80a1ee7 COMMIT MESSAGE I want to preserve
f 0b95426 commit message that doesnt matter
f 79e92f1 commit message that doesnt matter
f bc10c06 commit message that doesnt matter
(称为在线学习)。
此外,有时您希望在优化过程中看到一些学习指标。例如,您可能希望每隔一段时间看到整个训练集上的成本值(这可以帮助终止条件),或者查看整个验证集上的成本值(例如,监控以确保您不会过度适应)。在这些情况下,您可能希望计算整个集合的成本(而不是梯度)。