三者区别:
- 训练集(train set):用于训练模型以及确定模型权重。
- 验证集(dev set):
用于确定网络结构以及调整模型的超参数。
使用验证集是为了快速调参,也就是用验证集选择超参数(网络层数,网络节点数,迭代次数,学习率这些)。另外用验证集还可以监控模型是否异常(过拟合什么的),然后决定是不是要提前停止训 练。验证集的关键在于选择超参数,我们手动调参是为了让模型在验证集上的表现越来越好,如果把测试集作为验证集,调参去拟合测试集,就有点像作弊了。
验证集不参与反向传播(梯度下降过程的)。
- 测试集(test set):用于检验模型的泛化能力。既不参与参数的学习过程,也不参与参数的选择过程,仅仅用于模型评价。
划分依据:
根据吴恩达老师所说,在数据较少情况下(万为单位及以下),可以按照60%,20%,20%的比例来划分数据。大数据时代,百万级别的数据情况下,训练集的数据可以达到98%左右。
同时,建议验证集与训练集的数据来自同一分布。
参考:
https://blog.csdn.net/qq_31347869/article/details/98203028