2

我是神经网络的新手,一般都是编程。我用java编写了一个神经网络,我正在查看足球数据。我有两个输入:

1) 主队在 n 场比赛中获胜百分比 2) 客队在 n 场比赛中获胜百分比

使用“标准统计模型”,可以仅使用这两个数字来预测比赛中将出现的进球数,并且具有合理的准确度。但是,当我尝试训练我的 NN 来预测目标数量时,它根本不会收敛:(

我正在使用遗传算法来训练网络,这是前几代中最适合的个体,人口规模为 100,000:

1)0.1407408056662556 2)0.134062676015235 4)0.138753567259805 5)0.132802570016159805 5)0.13280257001618265 6)0.13275165964860766)0.13275165964860766 7)0.13276865209660766/101327686520966918)0.1319768652096691 8)0.1319768652096691 8)0.1319768652096691

现在我知道它看起来正在收敛,但收敛速度非常缓慢,而且我已经在几代人中多次运行它,它不会低于 0.13。

我正在使用一个前馈神经网络,有一个由 10 个神经元组成的隐藏层和一个输出神经元。我在隐藏层使用双曲正切 sigmoid 函数,在输出层使用 sigmoid 函数。我将目标数除以 10,得到 0 到 1 之间的输出。

在我开始运行它之前,我假设 NN 会胜过简单的统计模型,但它并没有接近。我的问题是:

从您可以看到的结果中,看起来代码中的某个地方是否有错误?我需要对网络架构进行更改吗?我是否需要以某种方式更改网络输入/训练数据?

一段时间以来,我一直在尝试找出问题所在,这让我精神崩溃。非常感谢任何广告。

非常感谢。

4

1 回答 1

3

很可能你得到的是通过这种神经网络配置可以实现的最好的。有现有的 NN 实现,例如Weka中的多层感知器。最好开始尝试那些你有很好的分析工具并且确信你得到的结果不是由于实施错误造成的。

于 2012-02-12T01:38:39.947 回答