神经网络应该能够拥有完美的训练精度吗?
Should a neural network be able to have a perfect train accuracy?
标题说明了一切:神经网络应该能够拥有完美的训练精度吗?我的饱和度约为 0.9,我想知道这是否表明我的网络或训练数据有问题。
训练实例:~4500 个序列,平均长度为 10 个元素。
网络:Bi-directional vanilla RNN,顶部有一个 softmax 层。
训练数据的完美准确性通常是一种称为 过度拟合 (https://en.wikipedia.org/wiki/Overfitting) 的现象的标志,并且该模型可能无法很好地泛化到看不见的数据。所以,不,可能仅此一点并不能表明存在问题(您仍然可能过度拟合,但无法从您问题中的信息中判断出来)。
您应该检查 NN 在验证集上的准确性(您的网络在训练期间未看到的数据)并判断其泛化能力。通常这是一个迭代过程,您可以并行训练许多具有不同配置的网络,然后查看哪个网络在验证集上表现最好。另见 交叉验证 (https://en.wikipedia.org/wiki/Cross-validation_(statistics))
如果测量噪声较低,模型可能仍无法获得零训练误差。这可能有很多原因,包括模型不够灵活,无法捕捉真正的底层函数(它可能是复杂的、高维的、非线性的函数)。您可以尝试增加隐藏层和节点的数量,但您必须小心过度拟合等相同的事情,并且只能根据交叉验证的评估进行判断。
通过增加模型的复杂性,您绝对可以在训练数据集上获得 100% 的准确率,但我对此持谨慎态度。
您不能期望您的模型在测试集上比在训练集上更好。这意味着如果你的训练准确率低于期望的准确率,你必须改变一些东西。您很可能必须增加模型的参数数量。
你可能对没有完美的训练准确率感到满意的原因是 (1) 过度拟合的问题 (2) 训练时间。你的模型越复杂,越有可能过拟合。
您可能想看看结构风险最小化:
(来源:svms.org)
标题说明了一切:神经网络应该能够拥有完美的训练精度吗?我的饱和度约为 0.9,我想知道这是否表明我的网络或训练数据有问题。
训练实例:~4500 个序列,平均长度为 10 个元素。 网络:Bi-directional vanilla RNN,顶部有一个 softmax 层。
训练数据的完美准确性通常是一种称为 过度拟合 (https://en.wikipedia.org/wiki/Overfitting) 的现象的标志,并且该模型可能无法很好地泛化到看不见的数据。所以,不,可能仅此一点并不能表明存在问题(您仍然可能过度拟合,但无法从您问题中的信息中判断出来)。
您应该检查 NN 在验证集上的准确性(您的网络在训练期间未看到的数据)并判断其泛化能力。通常这是一个迭代过程,您可以并行训练许多具有不同配置的网络,然后查看哪个网络在验证集上表现最好。另见 交叉验证 (https://en.wikipedia.org/wiki/Cross-validation_(statistics))
如果测量噪声较低,模型可能仍无法获得零训练误差。这可能有很多原因,包括模型不够灵活,无法捕捉真正的底层函数(它可能是复杂的、高维的、非线性的函数)。您可以尝试增加隐藏层和节点的数量,但您必须小心过度拟合等相同的事情,并且只能根据交叉验证的评估进行判断。
通过增加模型的复杂性,您绝对可以在训练数据集上获得 100% 的准确率,但我对此持谨慎态度。
您不能期望您的模型在测试集上比在训练集上更好。这意味着如果你的训练准确率低于期望的准确率,你必须改变一些东西。您很可能必须增加模型的参数数量。
你可能对没有完美的训练准确率感到满意的原因是 (1) 过度拟合的问题 (2) 训练时间。你的模型越复杂,越有可能过拟合。
您可能想看看结构风险最小化:
(来源:svms.org)