我开发了一个ANN BP的代码来分类打鼾片段。我有10个输入功能和1个隐藏层,有10个神经元和一个输出神经元。我将1表示为无打鼾,0表示为打鼾部分。我有3000个网段,其中2500个是没有打鼾的网段,标记为1和500个打鼾网段,标记为0.我已经将数据集分为三组(70%的训练,15%的验证和15%的测试) 。人工神经网络后向传播测试
现在,在训练网络时,首先我洗牌训练集并将打鼾和无打鼾的段混合在一起。所以,在我训练了网络之后,当我验证它(仅通过前馈网络)时,我发现它只能对其中的一个进行分类。让我进一步澄清,假设在训练集中最后一个元素是没有打鼾(这是1)。所以,它为最后一次输出训练网络。然后在验证阶段,即使对于打鼾区段(它是0),它总是使输出接近1。如果最后一个元素是打鼾(0),则会发生同样的情况。然后它在验证阶段始终将输出接近于0。
我该如何解决这个问题?为什么我的网络不能记住先前段的输出。它只能保存最后一段?我应该在网络中改变什么来解决它?
它应该与0和1一起工作,与-1和1相同,问题在于神经元和联会的数量在隐藏的laye河 –