验证损失低于训练损失

数据挖掘 神经网络 损失函数 异常检测 自动编码器
2021-09-23 08:39:17

我正在使用自动编码器来检测保修数据中的异常情况。

架构一: 在此处输入图像描述

该图显示了基于架构 1 的训练与验证损失。

正如我们在图中看到的,验证损失低于训练损失,这很奇怪。

基于 post Validation loss 低于 training loss,我了解到这是因为我的模型中的 dropout 层。所以我用 dropout 层运行了模型。

架构二:

在此处输入图像描述

基于上述架构,我绘制了训练与验证损失。现在验证损失比训练损失高一点。

在此处输入图像描述

显然是因为 dropout 层。

现在我的问题是,基于架构1的模型是否正确?如果它不正确,我可以做什么样的改变来使它工作?

谢谢 !任何帮助深表感谢!!

1个回答

从某种意义上说,它是一个合法的神经网络,这当然是正确的。dropout 层引入了在测试期间未注入的噪声。目标是对抗过度拟合,以便由于更好的泛化能力,测试集中的误差会更低。然而,在输入层之上应用 dropout 层会丢弃大量信息,这意味着很难学习一个好的策略。通常在第一次转换之后应用 dropout 层,这意味着神经网络必须依赖多个不同的转换,这意味着类似的东西,从而降低了复杂性。然而,如果你把它放在你的输入层上,你就会丢弃无法以任何其他方式访问的信息,