![](https://i-blog.csdnimg.cn/blog_migrate/bdece0bc969825ad1c0b71ade2f0accc.png)
- 训练集用来调试神经网络
- 验证集用来查看训练效果
- 测试集用来测试网络的实际学习能力
虽然,验证集和测试集都没有参与网络参数更新,但验证集的作用体现在训练的过程,测试集的作用体现在测试的过程。
看到这样一个比喻很形象:
- 训练集-----------学生的课本;学生根据课本里的内容来掌握知识。
- 验证集-----------作业;通过作业可以知道不同学生学习情况、进步的速度快慢。
- 测试集-----------考试;考的题是平常都没有见过,考察学生举一反三的能力。
训练集直接参与了模型调参的过程,显然不能用来反映模型真实的能力(防止课本死记硬背的学生拥有最好的成绩,即防止过拟合)。
验证集参与了人工调参(超参数)的过程,也不能用来最终评判一个模型(刷题库的学生不能算是学习好的学生)。
所以要通过最终的考试(测试集)来考察一个学(模)生(型)真正的能力(期末考试)。
测试集为了具有泛化代表性,往往数据量比较大,所以往往只取测试集的其中一小部分作为训练过程中的验证集。当然有的论文中没有设置验证集也是可以的。
参考: