数据集涉及到训练集(train data)、验证集(validation data)和测试集(test data)。
利用训练集(train data)来训练出最好的网络权重,但怎么保证训练过程中参数的更新方向是有效的呢?于是用验证集(validation data)在训练的时候边训练边验证,相当于训练的时候是根据验证集的效果得到反馈,继而可以及时地往对的方向更新权重参数。
举个例子,网络模型就是需要拿着你给的一大堆数据在黑暗中摸索出一条可以到达数据对应标签的路径,怎么保证这个摸索过程是有效可行的呢?有可能一摸黑就偏离大道了。验证集就像一个黑暗中的提醒者,一旦你没训练好,它就喊一句,偏了偏了,这时候你就能及时调整,走向正确的道路。
测试集(test data)则是对训练好的网络进行测试,看看你最终训练完成的模型效果怎么样。
还是上面那个例子,训练结束了就好比天亮了,测试集就是一个拿着标尺的检查者,它能够清楚定量地对你摸黑走出的路进行评估。
当然,还是下面这个经典的比喻更好。
训练集相当于上课学知识
验证集相当于课后的的练习题,用来纠正和强化学到的知识
测试集相当于期末考试,用来最终评估学习效果