你知道是否有人试图将高级编程语言(java,c#等)编译成循环神经网络然后进化它们?
我的意思是整个过程包括内存使用都存储在神经网络的图形中,而我正在谈论复杂的程序(考虑自然语言处理问题)。
当我说神经网络时,我指的是一个传播激活的有向加权图,节点是它们输入的函数(线性,sigmoid和乘法,以保持简单)。
此外,人们在遗传编程中的意义还是存在差异?
答案 0 :(得分:2)
神经网络并不是特别适合不断发展的计划;他们的力量倾向于分类。如果有人尝试过,我还没有听说过(考虑到我几乎没有触及神经网络并不令人意外,但我现在在一般的AI领域很活跃。)
神经网络对生成程序无用的主要原因是它们基本上代表了一个数学方程(数字,而不是函数)。给定一些数字输入,您将获得数字输出。在程序的上下文中很难解释这些比简单算术更复杂的。
遗传编程传统上使用Lisp,这是一种纯函数式语言,通常程序通常显示为树形图(偶尔看起来类似于某些神经网络图 - 这是您混淆的原因吗?)。程序是通过在程序之间交换树的整个分支(函数及其所有参数)或随机重新生成整个分支来进化的。
对于这两个主题肯定有很多好的(以及很多坏的)参考 - 我不会列出它们,因为它不清楚你真正感兴趣的是什么。维基百科涵盖了这些技术中的每一个,是一个很好的起点。
答案 1 :(得分:0)
遗传编程与神经网络有很大不同。你所建议的更多的是基因编程 - 对程序进行小的随机改变,可能“繁殖”成功的程序。这并不容易,我怀疑它可以在一个大型程序中成功完成。
您可能有更多的运气来提取程序的一个小而重要的部分,一个具有一些您可以尝试发展的特定“方面”(例如参数值)。
Google是你的朋友。
答案 2 :(得分:0)
一些复杂的反病毒程序以及复杂的恶意软件使用形式语法和遗传算子来使用神经网络相互进化。
以下是有关该主题的示例文章:http://nexginrc.org/nexginrcAdmin/PublicationsFiles/raid09-sadia.pdf
资料来源:几年前我参加过人工智能课程。
答案 3 :(得分:0)
关于你的主要问题,在我所知的情况下,没有人曾尝试过编程语言,但在进化计算领域有some research可以与之类似的东西进行比较(但是这显然是一个牵强附会的比较)。作为一个可能感兴趣的问题,我前一段时间问了similar question关于改进编译器的问题。
对于遗传算法和遗传编程之间的区别,请查看this question。
神经网络与遗传算法或遗传编程无关,但您显然可以使用它来发展神经网络(就像其他事情一样重要)。
答案 4 :(得分:0)
您可以查看genetic-programming.org,他们声称他们已经找到了遗传编程产生的一些人类竞争性结果。
我之前没有听说过自我演变和自我改造的节目。它们可能像gene-programming.org这样的特殊研究工具存在,但对于通用用途没有任何实用性。即使它们存在,它们也非常局限于像Alain所提到的恶意软件检测等特殊目的操作。