目录
用于深度学习的数据集
训练集
验证集
测试集
总结
用于深度学习的数据集
接下来,我将在这篇里面讨论在训练和测试神经网络期间使用的不同数据集。
出于模型的训练和测试目的,我们应该将数据分解为三个不同的数据集。这些数据集将包含以下内容:
- 训练集
- 验证集
- 测试装置
让我们从讨论训练集开始。
训练集
作用如其名,这是用来训练模型的一组数据。在每个时期,我们的模型将在训练集中的相同数据上反复训练,并且它将继续学习这些数据的特征。
我最为希望的是,以后我们可以训练好我们的模型,让它准确预测到以前从未见过的新数据,它将根据对训练数据的了解做出这些预测。
现在让我们看到验证集。
验证集
验证集是一组独立于训练集的数据,用于在训练期间验证我们的模型。此验证过程有助于提供可能有助于我们调整超参数的信息,尤其是可以检验模型的鲁棒性。
在训练期间的每个epoch,模型将根据训练集中的数据进行训练,它还将同时对验证集中的数据进行验证。
在训练过程中,模型将对训练集中每个输入的输出进行分类。在此分类发生后,将计算损失, 并且模型中的权重将被调整。然后,在下一个训练中,它将再次对相同的输入进行分类。
在训练期间,模型也将对验证集中的每个输入进行分类。它将仅根据对训练集中正在训练的数据的了解进行分类。根据我们的验证数据计算的损失,模型中的权重不会更新。
请记住,验证集中的数据与训练集中的数据是分开的。因此,当模型验证此数据时,此数据不包含模型已从训练中熟悉的示例。
我们需要验证集的主要原因之一是确保我们的模型不会过度拟合训练集中的数据。后面我们会详细的去学习过拟合与欠拟合。过拟合的意思是,我们的模型非常擅长对训练集中的数据进行分类,但它无法对未经训练的数据进行概括和准确分类。
在训练时,如果我们在验证集上验证模型,并看到它为验证数据提供的结果与为训练数据提供的效果一样好,那么我们可以说明我们的模型没有过度拟合,鲁棒性较好。另一方面,如果训练数据的结果非常好,但验证数据的结果滞后,那么我们的模型就是过度拟合的,鲁棒性差。
现在让我们来看到测试集。
测试集
测试集也是一组数据,它用于在模型经过训练后测试模型。测试集独立于训练集和验证集之外。
使用训练和验证集对模型进行训练和验证后,我们将使用模型来预测测试集中未标记数据的输出。
测试集与其他两个集之间的一个主要区别是不应标记测试集。在此之前,必须标记训练集和验证集,以便我们可以看到训练期间给出的指标,例如每次epoch的损失和准确性。
当模型对测试集中的未标记数据进行预测时,这与我们将模型部署到现场时使用的过程类型相同。
例如,如果我们使用一个模型对数据进行分类,而事先不知道数据的标签是什么,或者从来没有显示过它将要分类的确切数据,那么我们当然不会给我们的模型标记数据。
让模型能够分类的整个目标是在事先并不知道数据是什么的情况下进行分类的。
机器学习和深度学习的最终目标是构建能够很好地泛化的模型。
总结
下表总结了深度学习数据集:
数据 | 更新权重 | 描述 |
---|---|---|
训练集 | 是 | 用于训练模型,训练的目标是将模型拟合到训练集,同时仍泛化为看不见的数据。 |
验证集 | 不 | 在训练期间用于检查模型的泛化程度。 |
测试集 | 不 | 用于应用到生产环境之前测试模型的最终泛化能力。 |