如果神经网络在训练和测试期间看到完全相同的输入,它会总是预测正确的标签吗?

人工智能 神经网络 深度学习 分类 喀拉斯 计算学习理论
2021-10-21 16:14:24

如果我正在使用 Keras 中构建的模型执行文本分类任务,例如,我试图预测给定 Stack Overflow 问题的适当标签:

如何从整数中减去 1?

这个问题的真实标签是:

但我的模型预测:

如果我要重新训练我的模型,但这次在训练和测试数据中都添加了上述问题和标签,是否可以保证模型在测试数据中预测该问题的正确标签?

我想 tl;dr 是:如果神经网络在训练和测试期间遇到相同的数据,它们是确定性的吗?

我知道在训练和测试中使用相同的数据并不是一个好主意,但我从假设的角度感兴趣,并希望更深入地了解神经网络的实际学习方式。我对这个问题的直觉是“不”,但我真的很想指出一些扩展/解释这种直觉的相关文献。

2个回答

不,神经网络没有这样的保证。事实上,我不相信整个机器学习领域的任何一种分类器都有这样的保证,尽管有些可能让我不以为然......

举一个简单的反例,考虑如果您有两个输入完全相同但输出标签不同的实例会发生什么。如果您的分类器是确定性的(从某种意义上说,在训练后从输入到输出的过程中没有随机性),那么神经网络就是(除非,例如,您搞砸了 Dropout 实现并且在训练后不小心也应用了 dropout ),它不可能为这两个实例生成正确的输出,即使它们在训练期间被作为示例呈现了数千次。

当然上面是一个极端的例子,但类似的直觉适用于更现实的情况。在某些情况下,在一个实例上获得正确的预测会降低对许多其他实例的预测质量,如果它们有一些相似的输入。通常,训练过程会更喜欢在更多实例上获得更好的预测,并在另一个实例上满足于失败。

训练后,所有标准模型都是确定性的(每个输入经过的过程都已设置)。

本质上,在训练期间,模型试图学习训练数据集的分布。是否能够取决于模型的大小,如果足够大,它可以简单地“记住”所有训练样本并在训练集上获得完美的准确性。

通常这被认为是可怕的(称为过度拟合),许多正则化技术试图阻止它。最终,在训练模型时,您会将训练分布作为示例,但您希望它能够从中估计出真实分布。