为什么需要遗传算法中的适应度缩放?

Seb*_*ten 2 genetic-algorithm

在阅读 David E. Goldberg 所著的“遗传算法”一书时,他提到了遗传算法中的适应度缩放。

我对这个函数的理解是限制最强的候选者,这样它们就不会淹没池子进行繁殖。

为什么要限制最佳候选人?在我看来,尽早拥有尽可能多的最佳候选人将有助于尽快找到最佳解决方案。

zeg*_*jan 7

@sgvd 的回答提出了有效的观点,但我想详细说明一下。

首先,我们需要定义健身缩放的实际含义。如果这意味着只是将适应度乘以某个因子,那么这不会改变群体中的关系 - 如果最好的个体的适应度比最差的个体高 10 倍,经过这样的乘法之后,这仍然是正确的(除非你乘以零,这使得没有实际意义)。因此,更明智的适应度缩放是适应度值的仿射变换:

scaled(f) = a * f + b
Run Code Online (Sandbox Code Playgroud)

即这些值乘以某个数字乘以另一个数字(向上或向下)。

适应度缩放仅对某些类型的选择策略有意义,即选择概率与个体的适应度成正比的策略1

事实上,健身缩放起着两个作用。第一个只是实用的 - 如果您希望概率与适应度成正比,则需要适应度为正。因此,如果您的原始适应度值可能为负(但受到以下限制),您可以对其进行调整,以便可以从中计算概率。示例:如果您的健康状况给出的值范围为 [-10, 10],您只需在这些值上加上 10 即可获得所有正值。

正如您和 @sgvd 已经提到的,第二个角色是限制最强解决方案压倒较弱解决方案的能力。最好的说明是用一个例子。

假设您的原始适应度值给出范围为 [0, 100] 的值。如果这样的话,最差的个体被选中的概率为零,而最好的个体被选择的概率将比最差的个体高 100 倍(不包括真正最差的个体)。但是,我们将缩放因子设置为a = 1/2, b = 50。然后,范围转换为 [50, 100]。立刻,发生了两件事:

  1. 即使是最差的个体被选中的概率也不为零。
  2. 现在,最好的个体被选中的可能性只比最差的个体高出两倍。

探索与利用

通过设置缩放因子,您可以控制算法是否会进行更多的探索而不是利用,反之亦然。缩放后的值越“压缩” 2,进行的探索就越多(因为与最差个体相比,选择最佳个体的可能性将会降低)。反之亦然,值2越“扩展” ,剥削就越多(因为与最差个体相比,选择最佳个体的可能性将会增加)。

其他选择策略

正如我在开头所写的,适应度缩放仅对根据适应度值按比例导出选择概率的选择策略才有意义。然而,还有其他选择策略并不像这样起作用。

排名评选

排名选择与轮盘赌选择相同,但派生概率的数字不是原始适应度值。相反,整个群体按原始适应度值排序,排名(即排序列表中的位置)是您从中得出选择概率的数字。

当存在一两个“大”个体和许多“小”个体时,这完全消除了差异。他们只会被排名。

赛事选择

在这种类型的选择中,您甚至根本不需要知道绝对适应度值,您只需要能够比较其中两个并判断哪个更好。要使用锦标赛选择来选择一个人,您可以从总体中随机挑选一些人(这个数字是一个参数),然后选择其中最好的一个。只要您选择了足够多的人,您就可以重复这一点。

在这里,您还可以通过锦标赛的规模来控制探索与开发的关系 - 锦标赛规模越大,最优秀的个人参加锦标赛的机会就越高。


1这种选择策略的一个例子是经典的轮盘赌选择。在这种选择策略中,每个人都有自己的轮盘赌部分,其大小与特定个人的适应度成正比。

2假设原始值为正,缩放后的值会随着a下降到零和b上升而被压缩。扩张则相反。


sgv*_*gvd 5

如果你早期的最佳候选人后来证明是进化的死胡同怎么办?比如说,你的早期最适合的候选人是大而强大的代理人,他们支配着较小的、较弱的候选人。如果所有较弱的动物都被消灭了,那么您就会被困在大型野兽中,它们可能对环境的某个方面有弱点,而弱者可以处理这些弱点:想想小行星撞击后的恐龙与小型哺乳动物。或者,在 GA 中更有可能出现这种情况的更具确定性的环境中,较弱的候选者可能距离探索健身景观中一个全新的富有成效的部分仅一步或一小步:想象一下弱小的小动物进化飞行,开辟了一个充满可能性的全新世界,而这些可能性是大型野兽极有可能永远无法触及的。

潜在的问题是,您的早期最强候选者实际上可能处于或接近适应度空间的局部最大值,这可能难以摆脱。可能是较弱的候选者实际上更接近全局最大值。

在任何情况下,通过积极修剪您的种群,您会减少种群的遗传多样性,这通常会减少您覆盖的搜索空间并限制您搜索该空间的速度。例如,也许您的最佳候选相对接近全局最佳解决方案,但仅近亲繁殖该组可能不会使其更接近它,​​您可能必须等待足够多的随机阳性突变发生。然而,也许您想要剔除的其中一个弱候选基因有一些本身没有多大帮助的基因,但是当与来自您强大候选基因的基因杂交时,可能会导致进化的巨大飞跃!想象一下,比如说,一个人类与蜘蛛 DNA 杂交。