文章代码来源:《deep learning on keras》,非常好的一本书,大家如果英语好,推荐直接阅读该书,如果时间不够,可以看看此系列文章。
我们将我们的数据分为训练集、验证集和测试集,我们不通过相同的数据来评估我们用来训练的模型,原因很明显:经过一些很少批次的训练以后,全部的模型都开始过拟合,也就是说,他们在未见过的数据上的表现跟见过的数据比,不光停滞,还有可能下降。
机器学习的目标就是要让我们的模型在它没见过的模型里面也表现得好,过拟合是主要的障碍,然而我们只能控制我们能观测到的,接下来我们将会介绍一些减缓过拟合和最大化泛化(generalization),如何评估机器学习模型。
训练、验证、测试集
评估模型归纳起来说就是将数据分为训练、验证和测试三个部分。你在训练集上训练模型,在验证集上评估模型,当你将模型训练准备好了以后,在测试集上最后测一次。
你或许会问为什么不直接来两个集合:一个训练集,一个测试集?在训练集上训练,测试集上评估,这会简单的多。
其实呢,除了我们的权重称为参数,还有层数和层数大小称为模型的超参数。你需要通过验证集的反馈来调整超参数,在验证集上训练会导致尽管你没有直接在其上训练,但是结果还是很快会过拟合。