【发布时间】:2017-08-24 16:26:49
【问题描述】:
我正在使用 Keras 通过 model.train_on_batch(x_batch, y_batch) 开发在线学习应用程序。我尝试逐步添加训练数据,并绘制出测试和训练的损失。结果如下,
很高兴看到测试损失正在减少,但正如我在 Andrew Ng 的 ML 课程中所学到的,如果我有一个像 DNN 这样强大的模型,随着我逐步添加更多的训练数据,训练损失应该会增加,并且测试损失应该会减少。所以,我真的很困惑。下面是他幻灯片的屏幕截图。
【问题讨论】:
-
你在什么时候测量了训练和测试的损失?我不知道你的序数轴代表什么。
-
没有深入细节,这个想法即将提出:安德鲁可能已经绘制了总误差,而你正在绘制平均值
-
两个数据集的准确性会发生什么变化?它也增加了吗?
-
序数轴是我逐渐增加的训练规模。在每个训练阶段结束时测量损失。如果您愿意,可以在这里查看代码:github.com/stccenter/datadiscovery/blob/master/ranking/…
-
@ClaudeCOULOMBE 已经有一段时间了,但我认为这里的重点是,我发布的内容可以被认为是一个 SGD 过程,这与 Andrew 在讲座中讨论的不同。更具体地说,安德鲁在过度拟合训练数据后测量误差,然而,我所做的只是使用新数据更新梯度(单次更新,不是过度拟合或 Nilesh 指出的完整训练)。我知道这很棘手,但您只需要考虑这些图表背后真正发生的事情。希望它有所帮助:)
标签: machine-learning deep-learning