【问题标题】:Genetic Programming Online Learning遗传编程在线学习
【发布时间】:2011-02-07 08:12:36
【问题描述】:

有没有人见过使用online learning 而不是标准离线学习的GP?我已经完成了一些关于基因程序的工作,但我根本不知道什么是使学习过程在线的好方法。

如果您有任何想法、看到任何实现或有任何我可以查看的参考资料,请告诉我。

【问题讨论】:

    标签: language-agnostic artificial-intelligence machine-learning genetic-algorithm genetic-programming


    【解决方案1】:

    根据 Wikipedia 链接,在线学习“一次学习一个实例”。在线/离线标签通常是指如何将训练数据馈送到监督回归或分类算法。由于遗传编程是一种启发式搜索,它使用评估函数来评估其解决方案的适应度,而不是带有标签的训练集,因此这些术语并不真正适用。

    如果您要问的是 GP 算法的输出(即最佳表型)是否可以在它仍在“寻找”更好的解决方案时使用,我认为没有理由不这样做,假设它对您有意义域/应用程序。一旦您的 GA/GP 人口的适合度达到某个阈值,您就可以将该解决方案应用于您的应用程序,并继续运行 GP,当有更好的解决方案可用时切换到新的解决方案。

    沿着这条路线的一种方法是一种称为rtNEAT的算法,它尝试使用遗传算法实时生成和更新神经网络。

    【讨论】:

    • 您的答案与遗传算法(一种用于例如组合优化问题的元启发式算法)有关。 OP 的问题与遗传编程有关——这是两个非常不同的东西,甚至在属种方面都没有关系(即,一个不包括另一个)。
    • 答案适用于 GA 和 GP。是的,两者是不同的,但它们使用相同的基因进化原理运作。
    【解决方案2】:

    我通过 Google 学者搜索 online Genetic Programming 找到了一些示例。

    An On-Line Method to Evolve Behavior and to Control a Miniature Robot in Real Time with Genetic Programming

    看起来他们确实找到了一种方法,让 GP 在实际活动中修改机器人控制系统的机器代码 - 太酷了!

    这些作者继续创作更多相关的工作,例如这项改进:

    Evolution of a world model for a miniature robot using genetic programming

    希望他们的工作足以让你开始 - 我没有足够的基因编程经验,无法给你任何具体的建议。

    【讨论】:

      【解决方案3】:

      看起来他们确实找到了一种方法,让 GP 在实际活动中修改机器人控制系统的机器代码 - 太酷了!

      是的,Uni Dortmund 的部门非常热衷于线性 GP :-)

      GP 程序的直接执行与解释代码相比具有一些优势,尽管在这些日子里,您可能更愿意使用 Java、C# 或 Obj-C 等动态语言,这些语言允许您在运行时编写类/方法虽然您仍然可以从一些运行时中受益,而不是在原始 CPU 上运行。

      在我看来,在线学习方法与“经典 GP”没有什么绝对新颖或不同的地方。 据我了解,这只是在运行时扩展训练/健身/测试用例集的一个案例?

      干杯, 周杰伦

      【讨论】:

        猜你喜欢
        • 2021-02-17
        • 2012-06-04
        • 2011-03-13
        • 2011-07-06
        • 2017-10-16
        • 2020-11-16
        • 1970-01-01
        • 2011-07-09
        • 2010-10-31
        相关资源
        最近更新 更多