为什么要创建一个可以编写艰巨任务的 AI?

人工智能 机器学习 哲学 基因编程 完整性 归纳编程
2021-10-31 01:59:40

对于在该领域有经验的人来说,为什么创建能够编写程序(语法正确且有用)的 AI 是一项艰巨的任务?

在解决这个问题之前,我们必须解决哪些障碍/问题?如果你认为这并不难,为什么它没有成为主流?

2个回答

AI 已应用于编程(查看 TabNine,我最喜欢的自动完成引擎),尽管不像您描述的那样强大。

编程需要高水平的抽象,而人工智能通常被训练来解决非常具体的任务。鉴于 Python 中的数千个插入排序示例,我认为可以训练模型(可能在自动完成和语法更正之后)弄清楚。然而,在这一点上,该领域还没有开发出一种更通用的智能,可以将算法的思想应用于其他问题。

根据评论添加:

大局观,训练算法来解决一般类问题(例如,Web 开发)需要大量示例或大量试验。此外,随着问题复杂性的增加,构建模型所需的参数数量也会增加。编写代码是一个非常复杂的问题,因此需要大量数据和大量参数,这使得它在今天的数学和(因为数学是如何解决的)硬件中完全不可行。

现代人工智能有一个非常简单的目标:找到最佳解决问题的模型。如果我们可以快速搜索所有可能的模型,这将很简单。机器(深度)学习和强化学习等领域关注的是在合理的时间内找到一个好的解决方案。在这一点上,对于如此复杂的问题,不存在这样的解决方案。

我不是这个特定主题的专家,但我可以说几句话。我将使用术语“编程”来指代(任何类型的)软件开发。

如果你认为这并不难,为什么它没有成为主流?

这肯定很难,否则,我们已经有了一些有用的人工程序员。

为什么要创建可以编写艰巨任务的 AI?

编程实际上是一项艰巨的任务,因为它通常需要创造力和对上下文、目标、编程语言等的深刻理解。换句话说,这是一项非常复杂的任务(即使对人类而言),除了可以复制和粘贴的例外情况。

编程可能被认为是一个 AI 完备的问题,即一个可能需要 AGI 来解决的问题。换句话说,如果人工智能在编程方面与人类一样有能力,那么这可能意味着它是一个 AGI(但这并不能保证),即编程是一项可能需要通用智能的任务。这就是为什么我说编程是一个完全人工智能的问题。但是,请注意,能够编程只是AI 成为 AGI 所需具备的必要(但不是充分)能力(尽管并非所有通用智能,例如动物,都可能能够开发软件,但一般智能的定义也很模糊)。

AFAIK,还没有创建 AGI,我认为我们离这个目标还很远。目前,大多数 AI 系统只能解决特定问题(即我们只有狭窄的 AI,例如 AlphaGo)。你可以说编程也是一个非常具体的问题,但这是误导或错误的,因为除非你只是想在非常有限的环境中开发非常具体的程序(并且已经有机器学习模型和方法,例如神经程序员- 解释器基因编程,可以在一定程度上做到这一点;见这个问题的答案对于其他示例),那么您也需要了解很多其他上下文。例如,考虑开发一个可以检测图像中癌症迹象的程序的任务。要开发这个程序,人工智能需要具备人工智能工程师、医生等方面的知识。

此外,编程通常需要常识知识。例如,在阅读软件规范时,AI 需要按照它们原本应该被解释的方式来解释它们。这也表明编程需要解决 AGI(或人类级别的 AI)

(最后,要解决一个评论,请注意,编写 4 行程序并不等同于编写 10 行程序。此外,程序的长度通常与其难度或复杂性不对应,因此仅此一项并不编程能力的一个很好的衡量标准。)

在解决这个问题之前,我们必须解决哪些障碍/问题?

我认为这个问题的答案也是“我们如何创建 AGI?”这个问题的答案。然而,更具体地说,我认为,为了能够创建一个能够像人类一样编程的 AI,我们需要能够创建一个能够考虑低端和高端的 AI级概念,组成它们,它可能需要常识知识(所以知识表示)。典型的监督学习解决方案不足以解决此任务。请参阅让 AI 再次有意义的论文,该论文还表明基于 ML 的解决方案可能不足以解决许多任务。