4

有没有人看到过使用online learning实现的GP,而不是标准的离线学习?我已经完成了一些遗传程序的工作,但我根本无法弄清楚什么是在线学习过程的好方法。遗传编程在线学习

请让我知道你是否有任何想法,看到任何实现,或有任何我可以看看的参考。

回答

3

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

如果你问的是如果GP算法的输出(即最好的表型),可以使用,而它仍然是“寻找”更好的解决方案,我没有理由不,假设它是有道理的您的域名/应用程序。一旦GA/GP的人口达到某个阈值,您就可以将该解决方案应用到您的应用程序中,并继续运行GP,并在有更好的解决方案可用时切换到新的解决方案。

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

+0

你的答案是与遗传*算法*(中使用的启发式,例如,组合优化问题)。OP的问题与遗传编程*有关 - 这是两个完全不同的东西,甚至在属种种方式中都没有涉及(即一个不包括另一个)。 – doug 2010-04-15 04:43:41

+0

答案适用于GA和GP。是的,这两者是不同的,但他们使用相同的基因进化原理。 – Cerin 2010-04-16 13:39:00

1

我找到几个例子,通过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

希望他们的工作将是足以让你开始 - 我没有跟遗传编程足够的经验能够给你任何具体的建议。

0

实际上,他们发现了一种方法,让GP在实际活动期间修改机器人控制系统的机器码 - 非常酷!

是的,在大学多特蒙德部门被严重到线性GP :-)

GP方案的直接执行与解释的代码有一定的优势,但在这些日子里你可能宁愿想去使用Java,C#或Obj-C等动态语言,允许您在运行时编写类/方法,但仍然可以从某些运行时受益,而不是在原始CPU上运行。

在线学习方法似乎并不像“经典GP”那样绝对新颖或不同于我。 从我的理解来看,它只是在运行时扩展了一组训练/健身/测试用例的一个例子。

欢呼声中,周杰伦