train set:该集合是用于训练模型的。
dev set:该集合是用于在训练模型中评估模型,以促进模型优化的。
test set:该集合是用于测试训练好的模型是否有效的。
简而言之就是:
你使用了train set训练一个模型,这个模型有一个优化目标,利用dev set来评估你的模型,确定你模型离你的目标差距。在不断迭代中不断用train set训练模型,dev set评估模型,不断靠近你的目标直至最优。之后用test set来验证模型效果。
注意:dev set 和 test set需要在同一分布下。
这里是因为如果你dev set 和 test set属于不同分布,你在dev set训练出的模型是不会符合test set的。
如下图所示(源于吴恩达深度学习课程):
你的dev set+优化目标就是图中靶子+靶心,你训练的模型就是这这个靶子里评估,不断优化靠近靶心,但是如果你dev set 和 test set属于不同分布,你就会发现你最终验证的是图上红色线画的靶子,这显而易见你训练的模型完全不能很好符合test set。
所以要让你的模型符合test set,必须要dev set 和 test set属于同一分布