我是神经网络的新手,一般都是编程。我在java中编写了一个神经网络,我正在研究足球数据。我有两个输入:
1)主队在n场比赛中赢得% 2)客场球队在n场比赛中获胜%
使用“标准统计模型”可以单独使用这两个数字来预测匹配中发生的目标数量,并且具有合理的准确度。然而,当我试图训练我的NN来预测目标的数量时,它根本就没有收敛:(
我正在使用遗传算法来训练网络,这里是人口规模为100,000的前几代中最适合的人:
1)0.1407408056662556 2)0.13406266176967252 3)0.13406267600215235 4)0.1338753567259805 5)0.13280257001618265 6)0.13275165964860766 7)0.1319768652096691 8)0.13161029326238236
现在我知道它看起来正在收敛,但它正在以一种非常缓慢的速度收敛,而且我已经多次运行多次并且它不会低于0.13。
我正在使用前馈神经网络,其中一个隐藏的10个神经元层和一个输出神经元。我在隐藏层中使用双曲正切sigmoid函数,并在输出层使用sigmoid函数。我已将目标数除以10,得出0到1之间的输出。
在我开始运行之前,我认为NN会胜过简单的统计模型,但它并不接近。我的问题是:
从您可以看到的结果看,代码中的某个地方是否有错误? 我是否需要更改网络架构? 我是否需要以某种方式更改网络输入/培训数据?
我一直试图找出这个问题已经有一段时间了,这让我很精神。非常感谢任何adive。
非常感谢。
答案 0 :(得分:3)
很可能你得到的是用这种神经网络配置可以达到的最好效果。存在NN实现,例如Weka中的多层感知器。最好开始尝试那些有良好分析工具的人,并且相信你获得的结果不是由于实现错误。