假设我在数据集 A 上训练神经网络并在数据集 B 上进行评估(与数据集 A 具有不同的特征分布)。如果我将数据集 A 中的数据量增加 10 倍,是否会降低数据集 B 的准确性?
增加训练数据量会使过拟合变得更糟吗?
相反,更多的数据几乎总是能更好地泛化到看不见的数据。数据生成过程的示例越多,模型预测就越接近总体预测。毕竟,您的模型已经看到了更大一部分的人口。
假设,如果所有的超参数都保持不变,那么更多的数据意味着在相同的学习率下沿着梯度有更多的步骤,这确实更容易过拟合。但是,如果您进行适当的正则化,选择正确的学习率等,那么这不是问题。
也就是说,如果新旧数据不是来自同一个分布,那么简单地添加更多数据并不能解决这个问题。您可能应该研究过采样/欠采样或其他方法,具体取决于您对不同特征分布的确切含义。
数据集 B“与数据集 A 具有不同的特征分布”这一事实使这个问题相当模糊。这相当于询问针对问题 A 训练的神经网络在解决问题 B 上的效果如何——没有明确的答案。但是,是的,对数据集 A 中的更多样本进行训练可能会使您的神经网络在数据集 B 上表现更差。
可能出现这种情况的一个例子是,如果您正在模拟数据上训练您的神经网络并在“真实世界”数据上进行验证。由于模拟数据不能完美地代表真实数据,神经网络可能会在模拟数据中学习到无法推广到现实世界的模式。在这种情况下,可能有一个训练集大小可以优化您在验证集上的表现,而额外的训练点会降低验证的准确性。不过,这不是处理事情的好方法。
这个问题不是过度拟合通常所指的,但它确实具有类似的性质(也许其他人可以帮助提供一个确切的术语)。
您的训练和测试集中的数据可以建模为 h(x) + 噪声。在这种情况下,噪声是您的训练和测试数据中的可变性,某些常见(理论上最优)模型 h(x) 无法解释。这里重要的是,例如,如果您的训练和测试集是从完全不同的分布中采样的,那么您的所有数据都是噪声,即使它们本身,训练和测试集数据的结构都非常好。在这种情况下,即使是具有 1 或 2 个参数的模型也会立即过拟合——无论您的训练集中有多少数据点!
换句话说 - 数据中的噪声量越大,越容易过度拟合,并且您只能使用更简单的模型。例如,对于高斯噪声,增加训练集中的数据量会增加数据噪声比,从而减少过度拟合。如果您的训练和测试数据来自(略微)不同的分布,那么增加数据量将无助于减少这种噪声源!数据信噪比将保持不变。只有其他噪声源将被消除(例如测量噪声,如果适用)。
因此,如果您错误地增加了模型的复杂性,那么增加数据量只会使过度拟合变得更糟。否则,测试集上的性能应该会提高或保持不变,但不会明显变差。
是的,它可以。一种可能性是数据集 A 中的所有示例都是相似的,因此您的分类器可能过度拟合该数据集,并且可能在数据集 B 上效果更差。如果您拟合 A 中非常常见但几乎不存在的特征,则很可能是您的情况在 B.
另一种可能性是您过度拟合了 A 和 B 的相同特征。向 A 添加更多样本将使该数据集的偏差更小,但分类器在 B 上的效果会更差。
这并非特定于神经网络。