我已经实施了多层感知器来预测输入向量的罪.矢量由随机选择的四个-1,1和偏置设置为1组成.网络应该预测矢量内容的和的sin.
例如Input =< 0,1,-1,1>输出= Sin(0 1(-1)0 1)
我所遇到的问题是网络永远不会预测负值,许多向量的sin值都是负值.它完全预测所有正或零输出.我假设更新权重存在问题,这些权重在每个历元之后被更新.有没有人在NN之前遇到过这个问题?任何帮助将是伟大的!
注意:网络有5个输入,6个隐藏单位在1个隐藏层和1个输出.我在激活隐藏层和输出层使用S形函数,并尝试了大量的学习率(目前为0.1);
解决方法
由于我考虑了多层感知器,因此很长一段时间,因此用一粒盐.
我会将您的问题域重新缩放到[0,1]域而不是[-1,1].如果你看看后勤功能图:
它产生[0,1]之间的值.我不认为会产生负面结果.我可能是错的,艰难的.
编辑:
您实际上可以将后勤功能扩展到您的问题域.使用generalized logistic curve设置A和K参数到您的域的边界.
另一个选项是双曲正切,它来自[-1,1],没有常数来设置.