GA训练的NN在测试集上的表现比BP训练的NN更差

时间:2017-08-23 23:44:40

标签: neural-network genetic-algorithm backpropagation

我训练了一个带有GA和反向传播的神经网络。 GA为训练数据找到合适的权重,但在测试数据上表现不佳。如果我使用BackPropagation训练NN,即使训练误差不比GA训练版本小得多,它在测试数据上的表现也要好得多。即使我使用GA获得的权重作为反向传播的初始权重,NN在测试数据上的表现也比仅使用反向传播进行训练更差。谁能告诉我哪里可能犯了错误?

2 个答案:

答案 0 :(得分:1)

我建议你阅读有关过度拟合的内容。简而言之,你将在训练集中表现出色,但在测试集上却很差(因为NN遵循异常,不确定性和数据)。 NN的任务是概括性的,但GA只能完美地最小化训练集中的错误(公平地说,这是GA任务)。

有一些方法可以解决过度拟合问题。我建议你使用验证集。第一步是将您的数据划分为三组。培训测试和验证。方法很简单,您将使用GA训练您的NN以最小化训练集上的错误,但您还在验证集上运行NN ,只运行,而不是训练。训练集中网络减少的错误,但验证集中的错误也应该减少。因此,如果训练集中的错误减少,但在验证集开始增加,则必须停止学习(请不要在第一次迭代时停止)。

希望它会有所帮助。

答案 1 :(得分:1)

我遇到了类似的问题,神经网络初始值的选择似乎不会影响最终的分类精度。我在matlab中使用feedforwardnet()函数比较了两种情况。一种是直接训练,程序会给出随机的初始权重和偏差值。一种是通过GA算法找到合适的初始权重值和偏差值,然后将它们分配给神经网络,然后开始训练。但是,后一种方法并不能提高神经网络分类的准确性。