模型选择(训练数据,验证数据,测试数据,过拟合,欠拟合)
在使用深度学习解决问题时会用到三种不同的数据:训练数据、验证数据和测试数据
训练数据:用来训练模型,让我们的模型能够拟合住我们的训练数据,这个样本通常会大一些
验证数据:用来验证模型的准确率
测试数据:一般只用一次,当验证数据的结果还不错时,就可以使用测试数据来看一下这个模型的好坏了
为什么要有验证数据?
例如:训练多层感知机模型时,我们可能希望比较具有 不同数量的隐藏层、不同数量的隐藏单元以及不同的激活函数组合的模型。 为了确定候选模型中的最佳模型,我们通常会使用验证集。原则上我们在确定超参数的时候不能使用训练数据,因为我们如果过拟合了训练数据,还可以在测试数据上来评估过拟合,但是如果我们过拟合了测试数据,我们就没办法知道了。所以我们不能仅仅依靠训练数据或者测试数据来进行模型选择。解决此类问题的常见做法是我们将数据分成三份,除了训练集和测试集之外还有一个验证集。
当数据量较少时如何解决?
K折交叉验证
当训练数据比较稀缺,甚至可能无法提供足够的数据来构成一个合适的验证集,这个时候就有了K折交叉验证:原始训练数据集被分成K个不重叠的子集。然后执行K次模型训练和验证,每次在K-1个子集上进行训练,并在剩余的一个子集(在该轮中没有用于训练的子集)上进行验证。最后,通过对K次实验的结果取平均来估计训练和验证误差
拟合:给出一堆离散的点,要是能找到一个函数将他们串联起来,就是拟合
【动手学深度学习】模型选择(训练数据,验证数据,测试数据,过拟合,欠拟合)
于 2022-08-15 17:15:59 首次发布