我目前正在阅读和观看遗传算法,并且发现它非常有趣(我上大学时没有机会学习它)。
我了解突变是基于概率的(随机性是进化的根源),但我不知道生存的原因。
据我了解,一个个体具有适应性例如另一个个体具有适应性我们有,那么比具有更好的生存可能性到下一代。
概率意味着可以生存而可能无法生存(“运气不好”)。我不明白为什么这很好?如果将始终在选择中幸免,那么算法中会出什么问题?我的猜测是该算法将类似于贪婪算法,但我不确定。
我目前正在阅读和观看遗传算法,并且发现它非常有趣(我上大学时没有机会学习它)。
我了解突变是基于概率的(随机性是进化的根源),但我不知道生存的原因。
据我了解,一个个体具有适应性例如另一个个体具有适应性我们有,那么比具有更好的生存可能性到下一代。
概率意味着可以生存而可能无法生存(“运气不好”)。我不明白为什么这很好?如果将始终在选择中幸免,那么算法中会出什么问题?我的猜测是该算法将类似于贪婪算法,但我不确定。
Answers:
主要思想是,通过允许次优个体存活,您可以通过一系列小的增量突变从进化景观中的一个“高峰”切换到另一个。另一方面,如果只允许您上坡,则需要巨大且不太可能发生的突变来切换峰。
这是显示差异的图:
实际上,这种全球化属性是进化算法的主要卖点-如果您只想找到局部最大值,则存在更有效的专门技术。(例如,具有有限差分梯度和线搜索的L-BFGS)
在生物进化的现实世界中,当进化景观发生变化时,允许次优个体生存将增强鲁棒性。如果每个人都集中在一个山峰上,那么如果那个山峰变成了山谷,那么整个种群就会死亡(例如,恐龙是最合适的物种,直到发生小行星撞击并且进化格局发生变化)。另一方面,如果人口中存在某种多样性,那么当景观改变时,某些物种将得以生存。
尼克·阿尔杰(Nick Alger)的回答非常好,但我将使用一种示例方法,即Metropolis-Hastings方法使它更加数学化。
我要探讨的场景是您的人口为一。您建议以概率Q (i ,j )从状态到状态j进行突变,并且还强加了条件Q (i ,j )= Q (j ,i )。我们还将假设所有i的F (i )> 0 ; 如果您的模型的适应度为零,则可以通过在每个位置添加一个小的epsilon来解决此问题。
我们将有可能接受从到j的过渡:
换句话说,如果更合适,我们总是采用它,但如果j比较不适合,我们则以概率F (j )接受它。,否则我们将重试直到接受突变。
现在我们想探索,即从i过渡到j的实际概率。
显然是:
让我们假设。然后min ( 1 ,F (j )= 1,依此类推:
= F (i )Q (i ,j )min ( 1 ,F (j )
这是很明显的,原因有几个。
当然,这只是众多例子中的一个。正如我在下面指出的那样,它碰巧是一种非常容易解释的方法。通常,您不使用GA来探索pdf,而是寻找一个极值,并且在这种情况下可以放宽某些条件,并且仍然可以保证最终收敛的可能性很高。