我不确定具有3个或更多层的神经网。输入数据非常嘈杂,我似乎将噪声投射到学习中(数据中有强烈的偏见,有90%属于五个类别的一类)。

但是,我想获得有关解释的一些反馈(我使用辍学的50/25/8/8/8/8neurons(keep_prob = 0,9在第一次隐藏层之后):

enter image description here enter image description here

有帮助吗?

解决方案

F1分数图的过度对数形状表明学习是有效的,成本正朝着一定程度的最低限度发展。那挺好的。我假设您所指的噪音是大约3K迭代后图形的不稳定:成本下降和以锯齿形的方式上升。

这通常暗示学习率太大。返回传播找到了合适的梯度,但是您迈出了太大的步骤,最终爬上了,而不是沿成本功能的边缘下降。当图似乎围绕一些中间值振荡时,尤其明显。您尚未提及您正在使用的学习率的确切值,但请尝试减少它。一个良好的起点将是0.01,但取决于许多因素,因此请尝试实验。

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

最不可能的问题可能是网络的编码体系结构。尤其是最后一层中的8个神经元数量。在这种情况下,单个神经元可能会对最终输出产生重大影响。即使是单个后退传播步骤引起的几乎没有调整也可能会影响神经元激活值的迹象,从而影响其他示例的结果。尝试增加最后一层神经元的数量。我个人建议尝试使用50x50x50的架构。

希望这可以帮助!

许可以下: CC-BY-SA归因
scroll top