3

你知道是否有人尝试将高级编程语言(java、c# 等)编译成循环神经网络,然后进化它们?

我的意思是包括内存使用在内的整个过程都存储在神经网络的图中,我说的是复杂的程序(考虑自然语言处理问题)。

当我说神经网络时,我指的是传播激活的有向加权图,节点是其输入的函数(线性、sigmoid 和乘法以保持简单)。

此外,这是人们在基因编程中的意思还是有区别?

4

5 回答 5

2

神经网络并不是特别适合不断发展的程序;他们的优势往往在于分类。如果有人尝试过,我还没有听说过(考虑到我几乎没有接触过神经网络,这并不奇怪,但我目前在一般 AI 领域很活跃)。

神经网络对生成程序没有用的主要原因是它们基本上代表了一个数学方程(数字,而不是函数)。给定一些数字输入,您会得到一个数字输出。很难在比简单算术更复杂的程序上下文中解释这些。

遗传编程传统上使用Lisp,它是一种纯函数式语言,并且程序通常显示为树形图(有时看起来类似于某些神经网络图 - 这是您困惑的根源吗?)。通过在程序之间交换树的整个分支(函数及其所有参数)或随机重新生成整个分支来进化程序。

在这两个主题上肯定有很多好的(也有很多不好的)参考资料——我不会列出它们,因为不清楚你真正感兴趣的是什么。维基百科涵盖了这些技术中的每一种,并且是一个很好的起点。

于 2011-02-23T21:23:42.787 回答
0

一些复杂的反病毒程序以及复杂的恶意软件使用形式语法和遗传算子使用神经网络相互进化。

这是有关该主题的示例论文:http: //nexginrc.org/nexginrcAdmin/PublicationsFiles/raid09-sadia.pdf

资料来源:我几年前上的一门人工智能课程。

于 2011-02-23T21:29:12.763 回答
0

关于你的主要问题,据我所知,没有人在编程语言上尝试过,但是在进化计算领域有一些研究可以与类似的东西进行比较(但这显然是牵强的比较)。作为一个可能感兴趣的问题,不久前我问了一个关于自我改进编译器的类似问题。

有关遗传算法和遗传编程之间的区别,请查看这个问题

神经网络与遗传算法或遗传编程无关,但您显然可以使用其中任何一个来进化神经网络(就像其他任何事情一样)。

于 2011-02-24T10:38:58.350 回答
0

你可以看看generic-programming.org,他们声称他们发现了一些由基因编程产生的接近人类的竞争结果。

我以前没有听说过自我进化和自我改进的程序。它们可能作为特殊的研究工具而存在,例如generic-programming.org,但没有任何可用于通用的可靠工具。即使它们存在,它们也非常仅限于特殊目的的操作,如 Alain 提到的恶意软件检测。

于 2011-03-09T11:22:05.827 回答
0

遗传编程与神经网络非常不同。您的建议更像是遗传编程 - 对程序进行小的随机更改,可能“培育”成功的程序。这并不容易,我怀疑它能否在一个大型程序中成功完成。

您可能更幸运地提取了程序的一个小而关键的部分,该部分具有一些您可以尝试改进的特定“方面”(例如参数值)。

谷歌是你的朋友。

于 2011-02-23T21:18:00.900 回答