我正在使用Keras开发在线学习应用程序,通过model.train_on_batch(x_batch, y_batch)方法训练模型。我尝试增量添加训练数据,并绘制出测试和训练的损失情况。结果如下所示:
我的结果
很高兴看到测试损失在减少,但是根据Andrew Ng的机器学习课程,如果我有一个像DNN这样强大的模型,随着逐渐添加更多训练数据,训练损失应该会增加,而测试损失应该会减少。所以,我真的很困惑。以下是他幻灯片的截图:
Andrew的幻灯片
我真的很困惑...我学习并观察到,训练损失/误差随训练数据大小增加而增加,正如吴恩达博士的机器学习课程所述。
最近我也遇到了这个异常情况。训练损失和验证损失曲线在训练数据量增加的同时都在下降。代码是在所有训练完成后才进行绘图的。实际上,我已经根据Nilesh Birari的建议使用不断增加的数据量训练了10个不同的深度神经网络模型。
我怀疑吴恩达博士的图表假设数据点数量已经相当大。该图表未显示小型训练集的训练误差曲线。也许在这个领域,对于高容量的深度神经网络,随着训练数据量的增加,训练损失和验证损失都可以同时减少。