验证集干啥的?验证集合测试集哪个更重要?
一句话:训练集用于“自动地”训练调整模型中网络参数(weights)、验证集用于调超参数(epochs轮数,几层比较合适,啥时候过拟合,要不要dropout,要多大程度)、测试集测试模型泛化能力;
验证集和测试集都应当和训练集是同分布的数据,都不会进入网络中,直接训练网络模型(根BP或前向传播都没关系); 那么为啥有两个?为啥train-test两种模型更广为人知?实际上,验证集是AI炼丹士的自留地,每次跑完一轮,验证一下识别率,1)差异太大赶紧调过拟合 2)不收敛了,驻留在0.2 0.4等等赶紧中止模型改参数、改结构 3)达到预期了,可以停廷保留个好结果,好模型,好参数!
所以,对于小白、大众,train-test是直接拿来即用的。对于玄学炼丹的亲们,验证集是最好的伙伴,当然比测试集重要,测试集可以没有,验证集不够建只能“盲”炼?这不容易炸膛吗?
https://blog.csdn.net/u014038273/article/details/80145317 说的比较好,细节可以看看
shuffle干啥的?不设置会怎么样?
打乱训练batch进入网络的成分,从而避免乒乓式大改网络参数;