遗传编程在线学习

4

有没有人用在线学习而不是标准的离线学习实现过遗传程序(GP)?我已经做了一些遗传程序的工作,但我无法想出在线学习的好方法。

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

3个回答

4
根据维基百科的链接,网络学习“一次只学习一个实例”。在线/离线标签通常指监督回归或分类算法如何提供训练数据。由于遗传编程是一种启发式搜索,使用评估函数来评估其解决方案的适应性,而不是带有标签的训练集,因此这些术语并不真正适用。
如果您询问的是GP算法的输出(即最佳表型)是否可以在它仍在“搜索”更好的解决方案时使用,我认为没有理由不这样做,前提是对您的领域/应用程序有意义。一旦您的GA/GP的种群适应度达到一定阈值,您就可以将该解决方案应用于您的应用程序,并继续运行GP,在更好的解决方案可用时切换到新解决方案。
沿着这条路线的一种方法是一种称为rtNEAT的算法,它尝试使用遗传算法实时生成和更新神经网络。

你的回答涉及到遗传算法(一种元启发式算法,用于组合优化问题等)。OP的问题涉及到遗传编程 - 这两个概念非常不同,甚至不能以属种方式联系起来(即一个不包括另一个)。 - doug
答案适用于GA和GP。是的,这两者是不同的,但它们使用相同的遗传进化原理运作。 - Cerin

1

我通过谷歌学术搜索找到了一些例子,关于在线遗传编程

一种用遗传编程实时演化行为和控制微型机器人的在线方法

实际上,他们找到了一种方法,在实际活动中使遗传编程修改机器人控制系统的机器码 - 非常酷!

这些作者还进行了更多相关工作,比如这个改进:

使用遗传编程演化微型机器人的世界模型

希望他们的工作足以让你入门 - 我对遗传编程没有足够的经验,无法给你任何具体建议。


0
它看起来实际上他们找到了一种方法,使GP在实际活动期间修改机器人控制系统的机器码 - 真是太酷了!是的,Uni Dortmund的部门非常热衷于线性GP :-)
直接执行GP程序与解释代码相比有一些优点,但在这些日子里,您可能更愿意选择动态语言,如Java、C#或Obj-C,它允许您在运行时编写类/方法,同时仍然可以受益于一些运行时而不是在原始CPU上运行。
在线学习方法对我来说似乎并没有什么绝对新颖或与“经典GP”不同之处。从我的理解来看,这只是在运行时扩展训练/适应性/测试用例集合的情况?
祝福你, Jay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接