我对在训练阶段如何使用验证集感到困惑(像CNN这样的神经网络)?在Matlab或python(Keras)这样的平台中,我将数据集分为训练集、验证集和测试集。我知道验证集用于调优超参数(如神经元数目和学习速率),假设使用SDG优化器,如何根据验证集进行调优?验证集是否只是给出了神经网络对不可见数据(验证集)表现的指示,然后基于此我手动设置了超参数?还是自动(优化器)调优超参数?
发布于 2020-07-19 21:16:21
三种方法--训练、验证(Dev)、测试拆分--有助于对不可见数据(即测试集)上的模型进行公正的评估。训练集和验证集分别用于训练权值和超参数整定。在Keras中,如果您在'validation_split‘中设置了'model.fit’参数,那么您可以查看模型在验证集上的性能,并手动对超级参数进行调优以获得一个好的验证集--您对模型在验证集中的性能感到满意,最后在测试集中评估您的模型。超参数调整是手动完成的,而不是由Keras自动完成的。
发布于 2020-07-19 18:39:00
验证集仅用于指示网络的性能。超参数是根据训练数据本身进行调整的。
基于优化器,神经网络计算训练样本的损失。根据计算的损失,更新网络的权重。这是重复的每一个样本在培训集。
验证集只使用网络对未见数据的最新权重来检查模型的性能。
https://datascience.stackexchange.com/questions/77971
复制相似问题