正则化 - 结合辍学和提前停止

数据挖掘 机器学习 深度学习 rnn 辍学
2021-09-30 12:00:07

我正在用 LSTM 单元构建一个 RNN(循环神经网络)。我正在使用时间序列来执行异常检测。

在训练我的 RNN 时,我使用了 0.5 的 dropout,当我的验证损失增加时,我会以 5 个 epoch 的耐心提前停止。

将早停与辍学结合使用是否有意义?

2个回答

避免过早停止并坚持辍学。Andrew Ng 不建议提前停止他的一门关于 orgothonalization [1] 的课程,原因如下。对于典型的机器学习项目,我们的模型有以下一系列假设:

将训练集很好地拟合成本函数

在成本函数上拟合开发集

在成本函数上很好地拟合测试集

在现实世界中表现良好

我们想要的是可以针对这四个目标之一而不是其他目标的工具,以便更有效地改进我们的模型,这个概念被称为“正交化”。一个类比是照片编辑应用程序中的不同选项,例如亮度、对比度和饱和度调整,它们相互独立或“正交”。下面列出了四个目标的正交优化策略示例:

在成本函数上很好地拟合训练集(例如更大的神经网络;亚当优化)

在成本函数上很好地拟合开发集(例如正则化;更大的训练集)

在成本函数上很好地拟合测试集(例如更大的开发集)

在现实世界中表现良好(例如更改测试集;更改成本函数)

因为提前停止既不太适合训练集,同时也提高了开发集的性能,所以它不是正交的,Ng 建议我们不要使用它。


参考: [1] Course 3 第 1 周:构建 Coursera 深度学习专业的机器学习项目

这确实有道理,它们只是两种不同的东西。

Dropout 只会让你的模型学习更加困难,它有助于模型的参数以不同的方式作用并检测不同的特征,但即使有 dropout,你也可能会过度拟合你的训练集。

另一方面,提前停止通过在验证数据上采用最佳模型来防止模型过度拟合。

但是,为了简单起见,我认为只使用 dropout 更容易(训练神经网络并不容易,并且由于许多不同的原因,训练可能不会成功,减少可能的原因是一个好习惯训练尽可能地失败)。除非您有很短的时间来训练您的网络,否则如果有足够高的 dropout,您将确保您的模型不会过度拟合。

我的最终建议是:只使用 dropout。如果使用 0.5 的辍学率仍然过拟合,请设置更高的辍学率。