为什么“损失”会根据选择的时期数而变化?
人工智能
神经网络
训练
优化
喀拉斯
2021-10-21 02:26:02
1个回答
您在这里使用了两个优化器:随机梯度下降 (SGD) 和 Adam(它是 SGD 的更复杂的变体)。
所以“随机”部分意味着它是随机的。
随机梯度下降的工作原理是采用较小的随机部分训练数据,称为“小批量”,并在此上反向传播(训练)。这样做直到整个数据集被处理一次通常称为一个时期*。
简而言之,这就是梯度下降的工作原理:想象你正在走下一个 U 形的小山。您在 U 形中的位置非常低,并且您想通过跳跃进一步向下。你弄清楚什么方向对你来说是“向下”:然后你跳。但是该死的:你跳得太远了,你最终在 U 的另一边更远了!
这只是一个简单的例子。您可能正在以更大的维度工作,这使这个类比有点复杂。
无论如何,这会导致当你训练另一个 epoch 时损失可能会不时增加。如果你训练了很多 epoch 并且损失不断上升,你应该检查学习率(它基本上决定了“跳跃”有多大)。
希望能帮助到你 :)
*:还有其他定义 epoch 的方法,但它们都是这个的变体。
其它你可能感兴趣的问题