Validation 验证集是否用于更新神经网络?

Validation 验证集是否用于更新神经网络?,validation,machine-learning,neural-network,deep-learning,bigdata,Validation,Machine Learning,Neural Network,Deep Learning,Bigdata,我有一个关于神经网络的问题 假设我有60个培训、20个验证和20个测试集。对于每个历元,我运行60个训练集样本,同时调整每个样本的权重,并计算每个验证样本的误差 据我所知,重量更新发生在训练集(而不是验证集) 但我听说将验证集和训练集分开是为了避免过度拟合 那么我的问题是 如果验证没有使神经网络中的任何权重更新,那么验证集如何帮助神经网络避免过度拟合 正如你所说,它不是用来更新神经网络的权重,而是用来监控训练的进度。防止过度拟合的第一步是检测它,使用验证集可以独立测量网络在训练集之外的泛化程度

我有一个关于神经网络的问题

假设我有60个培训、20个验证和20个测试集。对于每个历元,我运行60个训练集样本,同时调整每个样本的权重,并计算每个验证样本的误差

据我所知,重量更新发生在训练集(而不是验证集)

但我听说将验证集和训练集分开是为了避免过度拟合

那么我的问题是


如果验证没有使神经网络中的任何权重更新,那么验证集如何帮助神经网络避免过度拟合

正如你所说,它不是用来更新神经网络的权重,而是用来监控训练的进度。防止过度拟合的第一步是检测它,使用验证集可以独立测量网络在训练集之外的泛化程度


例如,您可以使用验证集来决定何时停止训练(在训练开始过度适应之前)。如果这样做,请记住使用另一个集合(测试集合)来生成最终评估指标。

正如您所说,它不是用来更新神经网络的权重,而是用来监控训练的进度。防止过度拟合的第一步是检测它,使用验证集可以独立测量网络在训练集之外的泛化程度


例如,您可以使用验证集来决定何时停止训练(在训练开始过度适应之前)。如果这样做,请记住使用另一个集合(测试集合)来生成最终评估指标。

验证集合用于。大多数情况下,从一开始就不清楚哪种架构(神经网络拓扑、层数、层的选择和顺序等)或超参数值(学习率、层大小、退出概率等)会产生最佳结果

尝试不同的体系结构和超参数来选择最佳模型是合乎逻辑的。但是,如果您在测试集上评估每个模型,这意味着您正在根据测试集做出决策,因此测试性能(例如准确性)不再是独立的,并且可以捕获模型概括的程度。这就是为什么选择另一个测试集(不同于测试集)进行验证是很常见的


还要注意,要检测过拟合或欠拟合,需要有训练和验证结果,因为训练损失或准确性本身并不能说明任何事情。这就是为什么验证是必要的,以避免过度拟合(不仅如此)。

验证集用于。大多数情况下,从一开始就不清楚哪种架构(神经网络拓扑、层数、层的选择和顺序等)或超参数值(学习率、层大小、退出概率等)会产生最佳结果

尝试不同的体系结构和超参数来选择最佳模型是合乎逻辑的。但是,如果您在测试集上评估每个模型,这意味着您正在根据测试集做出决策,因此测试性能(例如准确性)不再是独立的,并且可以捕获模型概括的程度。这就是为什么选择另一个测试集(不同于测试集)进行验证是很常见的

还要注意,要检测过拟合或欠拟合,需要有训练和验证结果,因为训练损失或准确性本身并不能说明任何事情。这就是为什么验证是必要的,以避免过度拟合(不仅如此)