我有一个神经网络的问题
假设我有60次训练,20次验证和20次测试。对于每个时期,我会在调整每个样本的权重的同时运行60个训练集样本,并计算每个验证样本的误差。
据我所知,体重更新发生在训练集中(未验证集)
但我听说训练集中的分离验证集是为了避免过度拟合。
然后我的问题是
如果验证不能在神经网络中更新任何权重,验证集如何帮助神经网络避免过度拟合?
答案 0 :(得分:2)
正如您所说,它不是用于更新神经网络的权重,而是用于监控培训的进度。防止过度拟合的第一步是检测它,并使用验证集提供一个独立的衡量标准,表明网络在训练集之外的推广程度。
因此,例如,您可以使用验证集来决定何时停止训练(在开始过度训练之前)。如果您这样做,请记住使用另一组(测试集)来生成最终评估指标。
答案 1 :(得分:2)
验证集用于model selection。大多数时候,从一开始就不清楚什么样的架构(神经网络拓扑,层数,层的选择和顺序等)或超参数值(学习率,层大小,丢失概率等)将产生最佳结果
尝试不同的架构和超参数来选择最佳模型是合乎逻辑的。但是,如果您在测试集上评估每个模型,则意味着您正在根据测试集做出决策,因此测试性能(例如准确性)不再是独立的,并且可以捕获模型的概括性。这就是为什么选择与测试集不同的另一组来验证的原因。
另请注意,要检测过度拟合或不合适,需要同时具备培训和验证结果,因为单独的训练损失或准确性并不能说明任何事情。这就是为什么必须进行验证以避免过度拟合(而不仅仅是)。