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

问题描述 投票:1回答:2

我有一个神经网络的问题

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

据我所知,体重更新发生在训练集中(非验证集)

但我听说训练集中的分离验证集是为了避免过度拟合。

那我的问题是

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

validation machine-learning neural-network deep-learning bigdata
2个回答
2
投票

正如您所说,它不是用于更新神经网络的权重,而是用于监控训练的进度。防止过度拟合的第一步是检测它,并且使用验证集提供了一个独立的度量,衡量网络在训练集之外的概括程度。

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


2
投票

验证集用于model selection。大多数时候,从一开始就不清楚什么样的架构(神经网络拓扑,层数,层的选择和顺序等)或超参数值(学习率,层大小,丢失概率等)将产生最佳结果。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.