人工智能会自己编写代码然后执行吗?如果是这样,它是否为每个目的创建单独的功能?
人工智能会编写自己的代码吗?
计算机无需任何智能即可编写自己的代码- 请参阅 Wikipedia 条目以了解自修改代码和元编程。您确实必须编写有关计算机应如何自行编程的说明,并且反对这样做是一种耻辱,因为(a)当它更改其源代码时,很难推断您的程序在做什么,并且(b)解决方案通常比您希望程序首先执行的硬编码要慢。但这是可能的,并且程序员已经做到了(通常是出于可维护性或美学原因)。
不过,一些人工智能研究人员对遗传编程很感兴趣。遗传编程是进化算法的一个子集,维基百科很好地总结了它们通常是如何工作的:
第一步:随机生成初始个体种群。(第一代)
第二步:评估该群体中每个个体的适应度
第三步:重复以下再生步骤直到终止(时间限制,达到足够的适应度等):
选择最适合繁殖的个体。(父母)
通过交叉和变异操作繁殖新个体以产生后代。
评估新个体的个体适应度。
用新个体替换最不适合的人群。
在这种情况下,“个体”是随机生成的计算机程序,然后针对适应度函数进行测试。
遗传编程的维基百科页面声称这些程序通常由树结构表示,尽管也有一些使用非树结构的实验。
我认为答案很可能是否定的,而不是在 AI 程序(例如机器学习)的最著名示例中。有一套涉及自动编程的人工智能技术,但在那种情况下,我们有一个计算机程序可以自动编码另一个程序(我们可以称之为“目标程序”)。但是目标程序不是执行编码的程序;所以从技术上讲,不,它不编写自己的代码。这是一个重要的区别。程序员仍然有编写代码生成器的任务。
但是,如果您对自动编码感兴趣,最值得注意的例子是遗传编程,这是一种使用进化算法来培育计算机程序的技术。如您所见,我们有一个人工智能,它产生一个计算机程序(可能是也可能不是人工智能程序);它不与自己的代码交互。
最后,请注意,自动编码是一个非常模糊的术语,并非所有技术都与 AI 相关(例如,当时第一个编译器被视为一种自动编程形式)。与您的问题最相关的技术可能是Program Synthesis。