多层神经网络不会预测负值

B. *_*les 18 perl classification backpropagation neural-network

我已经实现了多层感知器来预测输入向量的罪.向量由随机选择的四个-1,0,1和偏置设置为1组成.网络应该预测向量内容之和的sin.

例如,输入= <0,1,-1,0,1>输出= Sin(0 + 1 +( - 1)+ 0 + 1)

我遇到的问题是网络永远不会预测负值,并且许多向量的sin值都是负数.它完美地预测所有正或零输出.我假设更新权重存在问题,在每个纪元后更新.以前有没有人遇到过NN的这个问题?任何帮助都会很棒!!

注意:网络有5个输入,6个隐藏单元,1个隐藏层和1个输出.我在激活隐藏和输出层使用sigmoid函数,并尝试了吨学习率(目前为0.1);

Vit*_* Py 11

自从我研究多层感知器以来,已经很长一段时间了.

我会将您的问题域重新调整为[0,1]域而不是[-1,1].如果你看一下逻辑函数图:

在此输入图像描述

它生成[0,1]之间的值.我不认为它会产生负面结果.我可能错了,很难.

编辑:

您实际上可以将逻辑功能扩展到您的问题域.使用广义逻辑曲线设置A和K参数到域的边界.

另一个选项是双曲正切,它来自[-1,+ 1]并且没有要设置的常量.