深度学习前馈网络中的噪声行为

数据挖掘 深度学习 张量流
2022-02-09 19:09:33

我有点不确定优化具有 3 层或更多层的神经网络。输入数据非常嘈杂,我似乎将噪声投射到学习中(数据中存在很强的偏差,90% 属于五分之一的类别)。

但是,我想得到一些关于解释的反馈(我使用 50/25/8/8/8 个带 dropout 的神经元(在第一个隐藏层之后,keep_prob=0,9):

在此处输入图像描述 在此处输入图像描述

1个回答

您的 f1 分数图的总体对数形状表明学习是有效的,并且成本正在接近最低限度。那挺好的。我假设您所指的噪音是大约 3k 次迭代后图形的不稳定性:成本以锯齿形方式下降和上升。

这通常暗示学习率太大。反向传播找到了正确的梯度,但你迈出了太大的一步,最终爬升而不是沿着成本函数的边缘下降。当图表似乎围绕某个中间值波动时,这一点尤其明显。您没有提到您正在使用的学习率的确切值,但请尝试降低它。一个好的起点是 0.01,但这取决于许多因素,因此请尝试进行实验。

另一个问题可能是批量大小:即有多少示例有助于计算梯度。如果它太大,您最终可能会导致平均梯度指向错误的方向。然后即使是一小步(即低学习率)也无济于事。它可能会再次以锯齿形模式表现出来。如果批量大小是参数之一,请尝试减小它。

最不可能出现的问题可能是网络的编码架构。尤其是最后一层的 8 个神经元数量适中。在这种情况下,单个神经元可能会对最终输出产生相当大的影响。即使是单步反向传播产生的微小调整也可能会翻转该神经元激活值的符号,从而影响其他示例的结果。尝试增加最后一层的神经元数量。我个人建议尝试 50x50x50 的架构。

希望这可以帮助!