RNN/GRU 增加验证损失但减少平均绝对误差
RNN/GRU Increasing validation loss but decreasing mean absolute error
我是深度学习的新手,我尝试实现一个 RNN(具有 2 个 GRU 层)。
起初,网络似乎做得很好。但是,我目前正在尝试了解损失和准确性曲线。我附上了下面的图片。深蓝色线是训练集,青色线是验证集。
50 个时期后,验证损失增加。我的假设是这表明过度拟合。但是,我不确定为什么验证意味着绝对误差仍然减少。你有什么想法吗?
我想到的一个想法是,这可能是由我的数据集中的一些大异常值引起的。因此我已经尝试清理它。我也试着适当地缩放它。我还添加了一些 dropout 层以进一步正则化 (rate=0.2)。然而,这些只是正常的 dropout 层,因为 cudnn 似乎不支持来自 tensorflow 的 recurrent_dropout。
备注:我使用负对数似然作为损失函数,使用张量流概率分布作为输出密集层。
有什么提示我应该调查吗?
提前致谢
编辑:我还附上了评论中推荐的非概率图。似乎这里的平均绝对误差表现正常(不会一直改善)。
您的模型的输出是什么?您使用负对数似然(基本上“适用于”分布)作为损失函数,但使用 MAE 作为度量,这听起来很奇怪,它适用于确定性连续值。
我不知道你的任务是什么,也许这对你的具体情况有意义,但奇怪的行为可能来自那里。
我是深度学习的新手,我尝试实现一个 RNN(具有 2 个 GRU 层)。 起初,网络似乎做得很好。但是,我目前正在尝试了解损失和准确性曲线。我附上了下面的图片。深蓝色线是训练集,青色线是验证集。 50 个时期后,验证损失增加。我的假设是这表明过度拟合。但是,我不确定为什么验证意味着绝对误差仍然减少。你有什么想法吗?
我想到的一个想法是,这可能是由我的数据集中的一些大异常值引起的。因此我已经尝试清理它。我也试着适当地缩放它。我还添加了一些 dropout 层以进一步正则化 (rate=0.2)。然而,这些只是正常的 dropout 层,因为 cudnn 似乎不支持来自 tensorflow 的 recurrent_dropout。
备注:我使用负对数似然作为损失函数,使用张量流概率分布作为输出密集层。
有什么提示我应该调查吗? 提前致谢
编辑:我还附上了评论中推荐的非概率图。似乎这里的平均绝对误差表现正常(不会一直改善)。
您的模型的输出是什么?您使用负对数似然(基本上“适用于”分布)作为损失函数,但使用 MAE 作为度量,这听起来很奇怪,它适用于确定性连续值。
我不知道你的任务是什么,也许这对你的具体情况有意义,但奇怪的行为可能来自那里。