人工智能会编写自己的代码吗?

人工智能 机器学习 进化算法
2021-10-27 03:47:48

人工智能会自己编写代码然后执行吗?如果是这样,它是否为每个目的创建单独的功能?

3个回答

人工智能会自己编写代码然后执行吗?如果是这样,它是否为每个目的创建单独的功能?

人工智能包含不止一种技术。在这里,您似乎在询问机器学习,这是 AI 的一个子领域,它本身包含许多子领域。

自修改代码人工智能某些应用中使用的(许多)技术之一。因此,从这个意义上说,您的问题的答案是“是”。

例如,在神经网络(NNs) 中,NN 不编写任何代码,它只是通过优化算法(和反向传播)运行,逐步改变一些权重(或系数),这样当您输入某个输入时,您将获得接近所需输出的输出。

您还可以使用遗传算法(GA) 来演化神经网络的权重,而不是使用反向传播。GA 更接近“AI 编码本身”的概念(尽管不完全如此)。

计算机无需任何智能即可编写自己的代码- 请参阅 Wikipedia 条目以了解自修改代码元编程您确实必须编写有关计算机应如何自行编程的说明,并且反对这样做是一种耻辱,因为(a)当它更改其源代码时,很难推断您的程序在做什么,并且(b)解决方案通常比您希望程序首先执行的硬编码要慢。但这可能的,并且程序员已经做到了(通常是出于可维护性或美学原因)。

不过,一些人工智能研究人员对遗传编程很感兴趣。遗传编程是进化算法的一个子集,维基百科很好地总结了它们通常是如何工作的:

第一步:随机生成初始个体种群。(第一代)

第二步:评估该群体中每个个体的适应度

第三步:重复以下再生步骤直到终止(时间限制,达到足够的适应度等):

  • 选择最适合繁殖的个体。(父母)

  • 通过交叉和变异操作繁殖新个体以产生后代。

  • 评估新个体的个体适应度。

  • 用新个体替换最不适合的人群。

在这种情况下,“个体”是随机生成的计算机程序,然后针对适应度函数进行测试。

遗传编程的维基百科页面声称这些程序通常由树结构表示,尽管也有一些使用非树结构的实验。

我认为答案很可能是否定的,而不是在 AI 程序(例如机器学习)的最著名示例中。有一套涉及自动编程人工智能技术,但在那种情况下,我们有一个计算机程序可以自动编码另一个程序(我们可以称之为“目标程序”)。但是目标程序不是执行编码的程序;所以从技术上讲,不,它不编写自己的代码。这是一个重要的区别。程序员仍然有编写代码生成器的任务。

但是,如果您对自动编码感兴趣,最值得注意的例子是遗传编程,这是一种使用进化算法来培育计算机程序的技术。如您所见,我们有一个人工智能,它产生一个计算机程序(可能是也可能不是人工智能程序);它不与自己的代码交互。

最后,请注意,自动编码是一个非常模糊的术语,并非所有技术都与 AI 相关(例如,当时第一个编译器被视为一种自动编程形式)。与您的问题最相关的技术可能是Program Synthesis