我已经实现了一个多层感知器来预测输入向量的正弦。这些向量由随机选择的四个 -1,0,1 组成,偏差设置为 1。网络应该预测向量内容之和的 sin。
例如,输入 = 输出 = Sin(0+1+(-1)+0+1)
我遇到的问题是网络永远不会预测负值,并且许多向量的 sin 值都是负值。它完美地预测所有正或零输出。我假设更新权重存在问题,权重在每个纪元后都会更新。有人在 NN 上遇到过这个问题吗?任何帮助都会很棒!
注意:该网络有 5 个输入,1 个隐藏层中的 6 个隐藏单元和 1 个输出。我在激活隐藏层和输出层上使用 sigmoid 函数,并尝试了大量的学习率(当前为 0.1);
自从我研究多层感知器以来已经很长时间了,因此对此持保留态度。
我会将您的问题域重新调整为 [0,1] 域而不是 [-1,1]。如果你看一下逻辑函数图:
它生成 [0,1] 之间的值。我预计它不会产生负面结果。我可能是错的,强硬的。
EDIT:
您实际上可以将逻辑功能扩展到您的问题域。使用广义逻辑曲线 http://en.wikipedia.org/wiki/Generalised_logistic_function将 A 和 K 参数设置为域的边界。
另一个选项是双曲正切,它从 [-1,+1] 开始,并且无需设置常数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)