2011-02-25 114 views
1

我想用一种遗传算法训练一个简单的前馈神经网络,然而它证明效率很低,因为同构神经网络看起来与遗传算法不同。如何规范遗传算法的神经网络?

有可能有多个神经网络,它们的行为方式相同,但神经元的排列顺序不同,从左到右和跨越不同层次。对于遗传算法,这些网络的基因型会显得完全不同。因此,任何尝试交叉的尝试都是毫无意义的,GA最终会像爬山一样有效。

你能推荐一种方法来规范网络,使它们对遗传算法更加透明吗?

+1

通过遗传算法训练的大多数神经网络通常使用backprop混合,然后使用evolution来确定允许哪些神经元成为网络的一部分。使用进化来训练权重不了解其上下文,并且可能基本上是随机的。不理想。 – dcousens 2011-02-25 10:41:25

回答

0

我会在这种情况下称为交叉“低效率”,而不是“毫无意义”。解决您提到的重复问题的一种方法可能是按照某些规范的顺序对隐藏层神经元进行排序,并在交叉过程中使用此顺序,这可能至少会减少隐藏权重空间中遇到的重复。此外,您可能比遗传算法更直接的方法来适合输出层权重。您没有说使用了哪种性能指标,但许多常用的指标都有相当直接的优化。因此,作为一个例子,您可以使用遗传算子生成一个新的隐含层,然后通过逻辑回归拟合输出层,并让GA评估整个网络。