为什么我在训练期间会出现损失函数值的峰值?

人工智能 神经网络 机器学习 喀拉斯 目标函数
2021-11-17 12:37:41

我在UNSW-NB15 数据集上训练了一个神经网络,但是,在训练期间,我的损失函数出现了峰值。算法一次查看此 UNSW 数据集的一部分。在每批之后绘制损失函数。

在此处输入图像描述

对于其他数据集,我没有遇到这个问题。我尝试了不同的优化器和损失函数,但是这个数据集仍然存在这个问题。

我正在使用fit_generator()Keras 的功能。有没有人在使用带有此功能的 Keras 时遇到此问题?

2个回答

峰值可能由多种原因引起:模型容量不足、标签不正确、输入解析错误……找出罪魁祸首需要一些侦探工作。例如,您可以将学习到的模型应用于整个训练集,并手动检查导致最高损失的数据点。或者,您可以比较不同模型(较弱和较强)的学习成果。

Andrew Ng 在深度学习课程中详细解释如下图所示。他还重点介绍了一些可能导致此问题的角落:

  1. 数据集中一些错误标记的示例。
  2. 小批量的大小或使用 GD 更改它。

在此处输入图像描述