Machine learning 带“a”的进化算法;“动态人口”;

Machine learning 带“a”的进化算法;“动态人口”;,machine-learning,genetic-algorithm,evolutionary-algorithm,Machine Learning,Genetic Algorithm,Evolutionary Algorithm,我想用进化/遗传算法解决一个问题。这与艺术有关——观看算法的人应该尝试一条染色体(=可能的解决方案),并根据自己的喜好进行评估 使用这种设置,评估过程(也就是说)相当昂贵——测试每个染色体需要很多时间。为了确保在可行的时间内取得进展(这意味着代际更替频繁),我必须接受人口规模较小(这也有缺点)。另一个选择是拥有更大的人口规模,但只有几代人 我想到了一个不同的解决方案,我想称之为“动态人口”。它的工作原理如下: 对于群体大小x,为了设置算法,随机创建x染色体,并从1到x进行编号,这表示染色体的年龄

我想用进化/遗传算法解决一个问题。这与艺术有关——观看算法的人应该尝试一条染色体(=可能的解决方案),并根据自己的喜好进行评估

使用这种设置,评估过程(也就是说)相当昂贵——测试每个染色体需要很多时间。为了确保在可行的时间内取得进展(这意味着代际更替频繁),我必须接受人口规模较小(这也有缺点)。另一个选择是拥有更大的人口规模,但只有几代人

我想到了一个不同的解决方案,我想称之为“动态人口”。它的工作原理如下:

  • 对于群体大小
    x
    ,为了设置算法,随机创建
    x
    染色体,并从1到
    x
    进行编号,这表示染色体的
    年龄
  • 评估初始群体染色体的适合度
  • 使用交叉和/或突变机制创建一条新染色体
    age=1
    被分配给这个新染色体。所有其他染色体都会变老一步(
    age=age+1
    )。年龄>x的染色体从人群中移除。(在交叉机制产生两条染色体作为后代的情况下,选择一个孩子获得
    age=1
    ,另一个孩子获得
    age=2
    ,其他染色体获得
    age=age+2
  • 重复1-3,直到找到解决方案
  • (这一过程当然可以很容易地采用精英主义。)

    使用这样一种机制,每一条(新的)染色体和每一次评估都会有(可能的)进展

    然而,我也能想到一些缺点

    是否存在逻辑原因,例如使用“动态群体”的实现不符合进化算法?

    对于大多数进化方法来说,没有“逻辑原因”这样的东西。一般来说,创建一些进化方法的“自定义”、“个人”实现不是一个好主意。有几十种开发的方法,经过测试、评估、批评和纠正。假设“哦,我会这样做”的想法比科学家们大量讨论的方法要好,这是相当幼稚的。更重要的是——这些方法并不是真正的“真正的”机器学习方法——它们只是“模糊”(不是数学意义上的)启发式方法,以避免完全的随机猜测。因此,对于几乎所有的人来说,没有真正的数学依据。至少有三种主要方式:

    • 如果您想要一个“逻辑原因”,那么请为您的问题选择一些现有的、数学上正确的模型,可能是一些高斯过程、基于多臂Bandit的方法,等等。如果您实际测试和评估的可能性有限(这似乎是您需要用户输入的情况)这看起来是最好的选择,所以没有进化
    • 如果你有空闲时间,你可以进行一些实验,然后从现有的进化论方法中选择一种似乎适合你的需要的方法——科学家们已经面临类似问题的恐惧——只需谷歌搜索他们的论文
    • 如果你有大量的时间,那么考虑一下你自己的策略,并对其进行测试、评估、修改-这是一个非常复杂(且昂贵)的过程,它不能保证任何结果(但会给你一些关于直觉的答案)
    我不是进化算法领域的专家,但我已经看到了与本文概述的模型和算法非常相似的模型和算法,因此很可能你可以找到关于这些方法的评估论文和一些有价值的讨论部分。

    没有“逻辑原因”这类东西对于大多数进化方法。一般来说,创建一些进化方法的“自定义”、“个人”实现不是一个好主意。有几十种开发的方法,经过测试、评估、批评和纠正。假设“哦,我会这样做”的想法比科学家们大量讨论的方法要好,这是相当幼稚的。更重要的是——这些方法并不是真正的“真正的”机器学习方法——它们只是“模糊”(不是数学意义上的)启发式方法,以避免完全的随机猜测。因此,对于几乎所有的人来说,没有真正的数学依据。至少有三种主要方式:

    • 如果您想要一个“逻辑原因”,那么请为您的问题选择一些现有的、数学上正确的模型,可能是一些高斯过程、基于多臂Bandit的方法,等等。如果您实际测试和评估的可能性有限(这似乎是您需要用户输入的情况)这看起来是最好的选择,所以没有进化
    • 如果你有空闲时间,你可以进行一些实验,然后从现有的进化论方法中选择一种似乎适合你的需要的方法——科学家们已经面临类似问题的恐惧——只需谷歌搜索他们的论文
    • 如果你有大量的时间,那么考虑一下你自己的策略,并对其进行测试、评估、修改-这是一个非常复杂(且昂贵)的过程,它不能保证任何结果(但会给你一些关于直觉的答案)
    我不是进化算法领域的专家,但我已经看到了与本文概述的模型和算法非常相似的模型和算法,因此很可能您可以找到对这些方法和算法进行评估的论文