我训练了一个带有GA和反向传播的神经网络。 GA为训练数据找到合适的权重,但在测试数据上表现不佳。如果我使用BackPropagation训练NN,即使训练误差不比GA训练版本小得多,它在测试数据上的表现也要好得多。即使我使用GA获得的权重作为反向传播的初始权重,NN在测试数据上的表现也比仅使用反向传播进行训练更差。谁能告诉我哪里可能犯了错误?
答案 0 :(得分:1)
我建议你阅读有关过度拟合的内容。简而言之,你将在训练集中表现出色,但在测试集上却很差(因为NN遵循异常,不确定性和数据)。 NN的任务是概括性的,但GA只能完美地最小化训练集中的错误(公平地说,这是GA任务)。
有一些方法可以解决过度拟合问题。我建议你使用验证集。第一步是将您的数据划分为三组。培训测试和验证。方法很简单,您将使用GA训练您的NN以最小化训练集上的错误,但您还在验证集上运行NN ,只运行,而不是训练。训练集中网络减少的错误,但验证集中的错误也应该减少。因此,如果训练集中的错误减少,但在验证集开始增加,则必须停止学习(请不要在第一次迭代时停止)。
希望它会有所帮助。
答案 1 :(得分:1)