你训练的神经网络不对头的37个原因

star2017 1年前 ⋅ 7094 阅读

作者:Slav Ivanov
编译:ronghuaiyang

导读

大家都遇到过这种情况,训练的时候没什么问题,测试的时候就不对劲了,想找问题,感觉无处入手,那么今天,给你37个建议,看看再说吧。

这个网络在过去12个小时中一直在进行训练。一切看起来都很好:梯度在流动,损失在降低。但是接下来的预测结果是:所有都是0,所有都是背景,没有检测到任何东西。“我做错了什么?”—我问我的电脑,电脑没睬我。

你从哪里开始检查你的模型是否正在输出垃圾(例如预测所有输出的平均值,或者它的准确性非常差)?

由于一些原因,网络可能不会进行训练。在许多调试的过程中,我经常发现自己在执行相同的检查。我把我的经验和最好的想法整理在这个方便的列表里。我希望它们对你也有用。

0. 如何使用这个指南?

很多事情都可能出错。但其中一些更有可能出现问题。我通常以这张简短的清单作为紧急第一反应:

  1. 从一个已知对这类数据有效的简单模型开始(例如,图像的VGG)。如果可能的话,使用标准的损失。
  2. 关闭所有花哨的功能,例如正则化和数据扩充。
  3. 如果对模型进行finetune,请仔细检查预处理,因为预处理应该与原始模型的训练相同。
  4. 验证输入数据是否正确。
  5. 从一个很小的数据集(2-20个样本)开始。对其进行过拟合,并逐渐添加更多数据。
  6. 开始逐步添加所有遗漏的部分:增强/正则化,自定义损失函数,尝试更复杂的模型。

如果上面的步骤没有什么用,那么就从下面的列表开始,逐一验证。


I. 数据集的问题

你训练的神经网络不对头的37个原因
更多内容请访问:IT源点

相关文章推荐

全部评论: 0

    我有话说: