神经网络欠拟合狗和猫

Neural Network Underfitting with Dogs and Cats

不必深入了解它的代码,而是更多地关注原理,我有一个关于我假设会欠拟合的问题。

如果我正在训练一个识别图像是狗的真假的网络,并且我可能有 40,000 张图像,其中所有狗图像都标记为 1,所有其他图像都标记为 0 - 我可以做些什么来确保准确性,以便如果这些图像中只有 5,000 张是狗,网络不会在训练中“懒惰”地行动,并且还将狗标记为更接近 0 而不是 1?

例如,这个问题的主要目的是能够高精度地识别图像是否真的是狗,而不用太在意其他图像,除了它们不是。的狗。另外,我希望能够保留猜测正确的概率,因为这对我的目的来说非常重要。

我唯一能想到的两件事是:

  1. 网络中有更多节点,或者
  2. 让一半的图像是狗(所以使用 10,000 张图像,其中 5,000 张是狗)。

但我认为第二个选项可能会给狗带来不成比例的大机会成为测试数据的输出,这会破坏该网络的准确性和整个目的。

我相信这个问题之前已经解决了,所以即使是在正确方向上的一点也会受到高度赞赏!

所以你有一个二进制 classification 任务,其中两个 classes 在你的数据集中出现的频率不同。大约 1/8 是 "dog" 和 7/8 是 "no dog".

  1. 为了避免对一个或另一个 class 的学习产生偏见,重要的是 stratify 您的训练、验证和测试数据,以便保留这些分数跨越每个子集。

  2. 你说你想 "retain the probability" 猜测是正确的 - 我假设你的意思是你想评估 "dogness"-概率作为输出变量。这是一个简单的 softmax 输出层,有两个输出:第一个是 "dog",第二个是 "not dog"。这是解决 class化问题的典型方法,无论您需要区分多少 classes。