神经网络:没有辍学给出最好的测试成绩那不好吗?

问题描述

我从某人那里接过一些代码,我的任务是在pytorch中重现相同的模型和性能。我也获得了该模型的最佳超参数。在玩了一段时间后,我发现如果将辍学率设置为零,那么我的测试性能是最好的。它停止得更早,辍学较小。实际上,它比以前的模型要好一些。虽然以前的模型的辍学率很高。
数据大小约为3,300万行。神经网络就像4-5层。总输入嵌入量约为1000。 尽管我很高兴看到表演,但我想知道这是否是危险信号。因为没有辍学,我真的没有任何其他正则化。它执行得很好可能意味着可能存在一些数据泄漏或什么? 在这种情况下寻找关于辍学的智慧。

解决方法

有时候,这些事情发生了。一旦我的神经网络无法正常工作,因此建议我在其中添加批处理规范化层,然后它会很好地工作。但是接着另一个问题是,批处理规范化使我的神经网络变得更糟。这都是由于反向传播。有时,添加一些层会使神经网络陷入局部最小值中,而有时则有助于摆脱这种局限性。我不太确定为什么会这样,但是我认为这是因为BackPropagation。

可能是数据泄漏之类的吗?

答案是否定的。只是因为反向传播。

注意-如果您在这篇文章的任何地方都觉得我错了,请发表评论。