关于CNN培训的一些简单问题

时间:2016-07-04 17:33:59

标签: machine-learning neural-network conv-neural-network

我读到在使用CNN时,每个类应该有大约相等数量的样本。我正在进行二元分类,从背景中检测行人,所以这两个类是行人和背景(真的不是行人)。

如果我在训练中加入硬阴性采矿,如果我得到很多误报,我最终会得到比阴性更多的阴性样本。

1)这可以吗?

2)如果没有,那么我该如何解决这个问题?

3)培训CNN的结果是阴性还是阳性样本有什么后果?

4)如果可能有更多的阴性而非阳性样本,是否有一个我不应超过的最大限度?喜欢例如。我的阴性样本不应该比阳性样本多3倍。

5)我可以通过抖动来增加我的阳性样本,但是我应该为每个图像添加多少样本?有太多了吗?就像我开始使用2000个阳性样本一样,多少额外的样本太多了?是否通过抖动过多从2k样本中产生了100k样本?

1 个答案:

答案 0 :(得分:1)

这取决于您使用的成本函数,但是如果您将其设置为log_loss,那么我可以向您展示不均衡的数据集可能会如何损害您的培训以及解决此问题的可能解决方案:

一个。如果你不改变你的类的分布并使它们失去平衡 - 如果你的模型能够实现相对较小的损失函数值,那么它不仅会成为图像上行人的良好探测器,而且还会了解行人检测是一种相对罕见的事件,它可能会使您免受许多误报。因此,如果你能够花更多的时间来培养更大的模型 - 它可能会给你带来非常好的结果。

湾如果你改变你的类的分布 - 那么你可以在更短的时间内用更小的模型获得相对好的结果 - 但另一方面 - 因为你的分类器将学习不同的分布 - 你可能会实现很多假阳性。

但是 - 如果分类器的训练阶段持续时间太长 - 您可能会在这两种方法之间找到一个很好的折衷方案。您可以设置乘法因子(例如,如果您将样本数量增加2,3或n次)作为元参数并优化其值,例如使用网格搜索模式。

相关问题