1. 深度学习中测试数据跟验证数据的区别是什么我不太理解验证数据是干什么的
通常在深度学习中将数据集划分为训练集、验证集和测试集。训练数据是用来训练神经网络模型的数据,验证数据的作用是:在神经网络训练的过程中不断测试模型的误差,验证数据的误差随着神经网络模型训练的次数增加会呈现先减小后增加的数据,所以验证数据的误差会存在一个拐点,当达到这个拐点时停止神经网络的训练,这时得到的神经网络的误差最小。而测试数据就是用来在神经网络训练完毕的时候测试模型的误差的数据。
再通俗易懂的举例形容如下
训练集:相当于教材或例题,训练集在我们的模型过程中起的作用就是更新模型的参数,用以获得更好的性能,其行为表现就是让我们以为模型掌握了相关的知识(规律)。
验证集:相当于模拟考试,只是你调整自己状态的指示器,这种调整的结果(从模拟考到高考),有可能更好,也有可能更糟糕。验证集的存在是为了从一堆可能的模型中,帮我们选出表现最好的那个,可用来选超参数。
测试集:相当于高考,其特点是一考定终身,不给改的机会。训练集用来评估模型最终的性能;当多个模型进行对比试验验证模型性能时,多个模型应该在相同的测试集上面进行对比,这样才有效。就好比甲做A地区的卷子考了600分,乙做B地区的卷子考了590分,能不能说甲比乙成绩高,答案是不能。此外,请勿对测试数据进行训练。 如果评估指标取得了意外的好结果,则可能表明不小心对测试集进行了训练。例如,高准确率可能表明测试数据泄露到了训练集。
另:常见的划分原则有交叉验证法、留出法。