我正在尝试使用遗传算法训练一个简单的前馈神经网络,然而它被证明是相当低效的,因为同构神经网络看起来与遗传算法不同。
有可能有多个神经网络,它们的行为方式相同,但神经网络的顺序从左到右,跨越各级。对于遗传算法,这些网络的基因型将显得完全不同。因此,任何做交叉的尝试都是毫无意义的,GA最终会像登山一样有效。
你能推荐一种规范化网络的方法,使它们对遗传算法更加透明吗?
答案 0 :(得分:0)
我会在这种情况下称为交叉“低效”,而不是“毫无意义”。解决您提到的重复问题的一种方法可能是按照某些规范顺序对隐藏层神经元进行排序,并在交叉期间使用此顺序,这可能至少减少隐藏权重空间中遇到的重复。
此外,您可以通过比遗传算法更直接的方法来拟合输出层权重。您没有说明正在使用什么性能指标,但许多常见的指标都有相当简单的优化。因此,作为一个例子,您可以使用遗传算子生成一个新的隐藏层,然后通过逻辑回归拟合输出层,并让GA评估整个网络。