Neural network 为什么在神经网络训练中使用交叉?

Neural network 为什么在神经网络训练中使用交叉?,neural-network,genetic-algorithm,crossover,Neural Network,Genetic Algorithm,Crossover,为什么具体使用它 我知道它增加了变化,这可能有助于探索问题空间,但它在多大程度上增加了及时找到最佳解决方案/配置的概率?它还有什么其他的好处吗 它是否一定总是有帮助,或者在某些情况下,它会增加找到最佳解决方案所需的时间?正如帕特里克·特伦丁所说,交叉可以提高收敛速度,因为它允许组合人群中已经发现的好基因 但是,对于神经进化来说,交叉面临着“排列问题”,也称为“竞争惯例问题”。如果双亲是同一网络的排列,那么,除了极少数情况外,他们的后代的适应度总是较低。因为网络的同一部分是在两个不同的位置复制的,

为什么具体使用它

我知道它增加了变化,这可能有助于探索问题空间,但它在多大程度上增加了及时找到最佳解决方案/配置的概率?它还有什么其他的好处吗


它是否一定总是有帮助,或者在某些情况下,它会增加找到最佳解决方案所需的时间?

正如帕特里克·特伦丁所说,交叉可以提高收敛速度,因为它允许组合人群中已经发现的好基因

但是,对于神经进化来说,交叉面临着“排列问题”,也称为“竞争惯例问题”。如果双亲是同一网络的排列,那么,除了极少数情况外,他们的后代的适应度总是较低。因为网络的同一部分是在两个不同的位置复制的,所以后代在这两个位置中的一个丢失了可存活的基因

例如,网络A、B、C、D和D、C、B、A是同一网络的排列。后代可以是:

A,B,C,D (copy of parent 1)           
D,C,B,A (copy of parent 2)

A,C,B,D OK
A,B,C,A
A,B,B,A 
A,B,B,D
A,C,B,A
A,C,C,A
A,C,C,D

D,B,C,A OK
D,C,B,D
D,B,B,A 
D,B,B,D
D,B,C,D
D,C,C,A
D,C,C,D
所以,在这个例子中,2/16的后代是父母的副本。2/16是没有重复项的组合。16人中有12人有重复基因

发生置换问题是因为作为另一个置换的网络具有相同的适应度。因此,即使对于精英遗传算法,如果一个被选为父,另一个也经常被选为父

排列可能只是局部的。在这种情况下,结果比完全置换好,但在很多情况下,后代的适应度仍然低于父母

为了避免排列问题,我听说,计算神经元及其连接突触的相似性,在最相似的神经元之间进行交叉,而不是基于轨迹进行交叉

当进化网络拓扑时,一些整洁的专家认为排列问题是更广泛问题的一部分:“可变长度基因组问题”。NEAT似乎通过网络的物种形成来避免这个问题,当两个网络的拓扑结构和权重相差太大时,它们就不允许交配。因此,整洁的算法似乎考虑置换网络太不同,不允许它们交配。 还说:

然而,在另一种意义上,可以说可变长度基因组问题永远无法“解决”,因为它是任何产生解决同一问题的不同结构的系统所固有的。例如,鸟和蝙蝠都代表了飞行问题的解决方案,但它们并不兼容,因为它们是做同一件事的不同惯例。同样的情况也可能发生在NEAT中,在NEAT中可能会出现做相同事情的非常不同的结构。当然,这样的结构不会交配,避免了后代受损的严重后果。尽管如此,可以说,由于不同的表征可以同时存在,不相容的基因组仍然存在,因此问题没有“解决”。最终,问题是否得到解决是主观的。这取决于你会考虑什么样的解决方案。然而,至少可以说,“可变长度基因组的问题是可以避免的。”

编辑:回答您的评论。 你可能对基于相似性的交叉是正确的,我不确定它是否完全避免了排列问题

关于交叉的最终目标,在不考虑置换问题的情况下,我不确定它是否对神经网络的进化有用,但我的想法是:如果我们将一个神经网络分成几个部分,每个部分都有助于适应度,因此两个适应度高的网络可能有不同的好部分。而将这些部分结合起来应该会创造一个更好的网络。当然,有些后代会继承坏的部分,但有些后代会继承好的部分

正如Ray所建议的那样,实验有交叉和没有交叉的神经网络的进化可能是有用的。由于进化过程中存在随机性,因此问题在于运行大量测试,以计算平均进化速度

关于进化神经网络以外的东西,我发现,在解决所有对最短路径问题(APSP)时,使用交叉的算法优于仅使用变异的算法

编辑2: 即使排列问题似乎只适用于某些特定的问题,比如神经进化,我也不认为我们可以对交叉说同样的话,因为我们可能遗漏了一些不适合交叉的问题

我发现了一篇关于神经进化中基于相似性的交叉的论文,它表明:

  • 使用简单交叉的算法比仅使用变异的算法性能差

  • 使用基于相似性的交叉算法,它在所有测试案例中的性能都优于纯变异算法

  • 整洁算法有时比纯变异算法性能更好

交叉是复杂的,我认为缺乏将其与纯变异算法进行比较的研究,可能是因为其有用性高度依赖于:

  • 在它的工程中,在诸如排列问题这样的特殊问题中起作用。我们使用的交叉类型(基于相似性、单点、均匀、边缘重组等)

  • 以及交配算法。例如,研究表明,在求解TSP时,性别遗传算法的性能明显优于非性别遗传算法。在解决另外两个问题时,该算法的性能并不强于非性别遗传算法,但优于非性别遗传算法。在本实验中,选择雄性是基于其适应度,选择雌性是基于其产生良好后代的能力。不幸的是,这项研究并没有将结果与一项研究进行比较