在哪些情况下,遗传编程应该优于使用遗传算法训练的人工神经网络

数据挖掘 神经网络 遗传算法 基因编程
2022-03-03 12:38:29

我试图了解遗传编程(GP),但我想不出任何可以选择 GP 的上下文,而不是使用遗传算法训练人工神经网络。

  • 他们每个人都适合什么问题?
  • 在什么情况下我们会选择其中一个(如果不是个人喜好)?
1个回答

遗传编程的一个关键好处是它可以生成能够外推的模型。神经网络往往非常擅长插值,但在尝试推断时会崩溃。

作为强调这一点的一个例子,我们可以考虑数据拟合。

我们可以从一个非常简单的例子开始。设输入数据为 x={1,2,3} 和 y={1,4,9}。

在遗传编程中,这里的正确选择是使用符号回归,它会演化出代数表达式来拟合数据。鉴于此训练数据,它可能会演变出表达式如您所见,此表达式能够获取训练数据范围之外的新值,并将其映射到训练响应之外的响应。例如,您可以提供输入 10,它会使用进化表达式给出预测值 100。y=x2

或者,神经网络非常擅长插值,因为它创建了一个连接网络以将输入连接到响应,但是当给定新数据时,它会尝试将新数据拟合到其仅适合训练数据的规则集中。很有可能,经过训练的神经网络能够完美地映射,但如果你给它输入数字 10,它看到的最接近的训练值是 3,所以它可能会给出预测响应 9而不是 100。xy