tensorflow CNN损失函数在tensorboard中上下波动(振荡),如何去除?
tensorflow CNN loss function goes up and down ( oscilating) in tensorboard,How to remove them?
我正在使用 tensorflow 在 Audioset2017 数据集上训练 ResNet50
在训练和验证结果的过程中,我的损失函数在波动,总体趋势是下降的,但我很害怕这个。
我有 运行 有 100 个 epoch,批量大小 = 100。
并降低和提高了学习率,但没有效果。
想知道我的训练是否正确,我可以使用这个网络吗?或者它会导致错误results.Can我用一些技巧删除它们?
这些是我的训练和验证(eval)损失和其他指标图片(来自 tensorboard)。
验证模式:
训练模式:
在一个好的模型中,您会希望损失函数的图形在验证集上下降。下降趋势表明您的模型正在泛化以学习以前未见过的示例。机器学习的总体目标是能够使用捕获学习问题的采样数据点来学习一些模型参数,并且可以对样本外的示例进行预测。
对于训练集,损失值的下降趋势表明模型正在从提供的训练示例中学习对目标输出的合理估计。您通常也希望看到这个向下的图表;否则,这将意味着您的模型在训练集上欠拟合,并且凭经验保证在验证集上表现不佳。
要简要了解解释监督学习模型,请阅读Supervised Machine Learning: A Conversational Guide For Executives And Practitioners
似乎在 12k 步之后,模型开始过度拟合。训练损失进一步减少,而验证损失(泛化误差)再次缓慢增加。在这一点之后,训练模型只会让情况变得更糟。
下图中你处于过拟合区
您可能希望通过增加正则化来降低模型对训练数据过度拟合的能力。比如L2权重正则化或者dropout.
至于震荡。鉴于您的批量大小为 100,它们可能是自然的。
我正在使用 tensorflow 在 Audioset2017 数据集上训练 ResNet50 在训练和验证结果的过程中,我的损失函数在波动,总体趋势是下降的,但我很害怕这个。
我有 运行 有 100 个 epoch,批量大小 = 100。 并降低和提高了学习率,但没有效果。
想知道我的训练是否正确,我可以使用这个网络吗?或者它会导致错误results.Can我用一些技巧删除它们? 这些是我的训练和验证(eval)损失和其他指标图片(来自 tensorboard)。
验证模式:
训练模式:
在一个好的模型中,您会希望损失函数的图形在验证集上下降。下降趋势表明您的模型正在泛化以学习以前未见过的示例。机器学习的总体目标是能够使用捕获学习问题的采样数据点来学习一些模型参数,并且可以对样本外的示例进行预测。
对于训练集,损失值的下降趋势表明模型正在从提供的训练示例中学习对目标输出的合理估计。您通常也希望看到这个向下的图表;否则,这将意味着您的模型在训练集上欠拟合,并且凭经验保证在验证集上表现不佳。
要简要了解解释监督学习模型,请阅读Supervised Machine Learning: A Conversational Guide For Executives And Practitioners
似乎在 12k 步之后,模型开始过度拟合。训练损失进一步减少,而验证损失(泛化误差)再次缓慢增加。在这一点之后,训练模型只会让情况变得更糟。
下图中你处于过拟合区
您可能希望通过增加正则化来降低模型对训练数据过度拟合的能力。比如L2权重正则化或者dropout.
至于震荡。鉴于您的批量大小为 100,它们可能是自然的。