【问题标题】:Why do you need fitness scaling in Genetic Algorithms?为什么需要遗传算法中的适应度缩放?
【发布时间】:2016-06-04 18:44:54
【问题描述】:

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

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

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

【问题讨论】:

    标签: genetic-algorithm


    【解决方案1】:

    如果你早期的最佳候选人后来变成了进化的死胡同怎么办?比如说,你早期最适合的候选人是大而强的代理人,他们支配着更小、更弱的候选人。如果所有较弱的动物都被淘汰,那么您将陷入大型野兽的困境,这些野兽可能对尚未遇到的弱者可以处理的环境方面存在弱点:想想小行星撞击后的恐龙与小型哺乳动物。或者,在更可能出现在 GA 中的更具确定性的环境中,较弱的候选者可能距离探索健身景观的一个全新的富有成果的部分只有一步或少量的进化步骤:想象弱小的小动物进化飞行,开辟了一个充满各种可能性的全新世界,大型野兽很可能永远不会碰触。

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

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

    【讨论】:

    • 这完全有道理!谢谢local maximumglobal maximum 这两个术语是通用术语吗?或者你创造的东西?
    • 它们很常见,是的,尽管您通常也会看到局部/全局 minimum,当考虑最小化成本函数而不是最大化适应度时更直观功能。参见例如en.wikipedia.org/wiki/Maxima_and_minima
    【解决方案2】:

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

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

    scaled(f) = a * f + b
    

    即这些值乘以某个数字被另一个数字向上或向下偏移。

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

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

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

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

    1. 即使是最差的人,被选中的概率也不为零。
    2. 现在,最优秀的人被选中的可能性仅比最差的人高 2 倍。

    探索与利用

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

    其他选择策略

    正如我在开头所写的那样,适应度缩放仅适用于从适应度值中按比例得出选择概率的选择策略。但是,还有其他选择策略不能像这样工作。

    排名选择

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

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

    比赛选择

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

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


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

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

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 2020-05-12
      • 2019-09-07
      • 2019-05-28
      • 2020-07-12
      • 2023-02-20
      • 2020-10-08
      • 2017-12-16
      • 2011-04-07
      相关资源
      最近更新 更多