训练神经网络时的标准设置似乎是将数据分成训练集和测试集,并继续运行,直到测试集上的分数停止提高。现在,问题是:测试分数中存在一定量的噪声,因此单个最佳分数可能不对应于最有可能在新数据上表现最佳的网络状态。
我已经看到一些论文指出训练中的特定时期或迭代是“最好的交叉验证”,但我不知道这是如何确定的(并且论文没有提供任何细节)。“交叉验证最佳”点并不是测试分数最高的点。
如何进行这种类型的交叉验证?是在测试集上做k-fold吗?好的,这给出了 k 个不同的测试分数而不是一个,但是那又如何呢?
训练神经网络时的标准设置似乎是将数据分成训练集和测试集,并继续运行,直到测试集上的分数停止提高。现在,问题是:测试分数中存在一定量的噪声,因此单个最佳分数可能不对应于最有可能在新数据上表现最佳的网络状态。
我已经看到一些论文指出训练中的特定时期或迭代是“最好的交叉验证”,但我不知道这是如何确定的(并且论文没有提供任何细节)。“交叉验证最佳”点并不是测试分数最高的点。
如何进行这种类型的交叉验证?是在测试集上做k-fold吗?好的,这给出了 k 个不同的测试分数而不是一个,但是那又如何呢?
我无法说出作者所指的内容
最好通过交叉验证
但我会提到一个简单而通用的程序:
你是对的,使用一个训练和一个测试集分析一个泛化性能的估计是非常简单的。交叉验证可以帮助我们了解这种性能如何在数据集之间变化,而不是怀疑我们选择的训练/测试数据集是幸运还是不幸。
将整个数据集拆分为k个折叠(或分区),并使用不同的折叠训练/测试模型k次。完成后,您可以计算平均性能和方差,这对于评估泛化性能估计的置信度至关重要。
最好通过交叉验证整个数据可以分为训练和测试。对于任何类型的训练,您都不能触及测试数据集。远离它!
对于训练数据,您可以自由使用它来指定最佳分类模型。但是如何知道当前设置是否是最好的,你可以通过只使用训练数据集进行交叉验证,将训练数据集分成 k 折。根据此交叉验证结果,您可以选择提供最佳结果的设置。最好通过交叉验证