Lisp是否仍用于解决AI问题?


20

我知道Lisp的语言是在处理人工智能问题的早期使用的。今天它仍然用于重要工作吗?如果不是,是否有一种新语言取代了它成为当今AI工作中最常用的语言?

Answers:


9

总体而言,答案是否定的,但是当前的范例应归功于LISP。今天最常用的语言是python。

相关答案:

LISP在我们现在所说的函数式编程中开创了许多重要的概念,其主要吸引力在于程序与数学的接近程度。此后,许多功能已被整合到现代语言中(请参阅Wikipedia页面)。LISP表现力很强:它的语法很少(仅列表和一些基本操作),但是您可以编写简短的简短程序来表示复杂的想法。这令新手感到惊讶,并将其作为AI语言出售。但是,这通常是程序的属性。简短的程序可以代表复杂的概念。而且,尽管您可以使用LISP编写功能强大的代码,但是任何初学者都会告诉您,阅读其他任何人的LISP代码或调试您自己的LISP代码也非常困难。最初,函数式编程还存在性能方面的考虑,因此不受欢迎,需要使用低级命令式语言(例如C)来代替。(例如,函数式编程不需要更改任何对象(“变异”),因此每个操作都需要一个要创建的新对象。如果没有良好的垃圾收集,这样会很笨拙)。如今,我们已经了解到,需要编写功能性和命令性程序的组合来编写出色的代码,而现代语言(如python,ruby和scala)都需要支持。在这一点上,这只是我的观点,没有理由更喜欢LISP而不是python。

当前最受关注的AI范例是机器学习,我们从数据中学习,而不是像专家系统(在80年代)之类的以前的方法(专家为AI编写规则)。Python是目前机器学习中使用最广泛的语言,并且拥有许多库(例如Tensorflow和Pytorch)以及一个活跃的社区。要处理大量数据,我们需要Hadoop,Hive或Spark等系统。这些代码使用python,java或scala编写。通常,核心的时间密集型子例程是用C编写的。

80年代的AI Winter不是因为我们没有正确的语言,而是因为我们没有正确的算法,足够的计算能力和足够的数据。如果您想学习AI,请花时间学习算法而不是语言。


6

在开发AI模型时,我肯定会继续使用Lisp。

您询问是否将其用于大量工作。对于我自己的工作而言,这太主观了,我无法回答,但是我向我的一个AI模型询问了它是否认为自己很重要,并回答了肯定的回答。当然,它的响应自然也有偏差。

总体而言,在Lisp中进行了大量的AI研究与开发。此外,即使对于非AI问题,有时也会使用Lisp。为了展示Lisp的强大功能,我设计了第一个完全用Lisp编写的神经网络仿真系统,该系统已超过25年。


第一个IDE也是LISP IDE。另外,EMMAScript,JavaScript的形式化比当前流行的Python更好地是一种用于快速原型制作的语言系统,它更像是LISP,而不是Java。除了机器视觉和听觉的进步外,我认为目前的机器学习趋势不会带来持久的价值。我同意LISP仍然是AI实验室工作的出色语言,并且在表示结构化数据方面比XML自然得多。
FauChristian

4

LISP仍被大量使用,但越来越少。过去有如此多的人使用它,但仍然活跃于该行业或研究中,因此仍然有动力(注释:最后一个VCR由日本制造商于2016年7月生产,是的)。然而,据我所知,这种语言用于不利用机器学习的那种AI,通常用作Russell和Norvig的参考书。这些应用程序仍然非常有用,但如今机器学习已成风头。

下降的另一个原因是LISP从业者已部分迁移到Clojure和其他最近使用的语言。

如果您正在学习AI技术,那么LISP(或Scheme或Prolog)是了解“ AI”的主要内容的好选择。但是,如果您希望或必须非常务实,则可以选择Python或R

注意:以上缺少具体示例和参考。我知道一些大学的工作,以及一些受LISP启发或直接使用LISP的公司。


为了补充@Harsh的答案,LISP(以及Scheme和Prolog)具有使其看起来更适合于创建智能机制的特质-使得60年代的AI成为现实。

一种特性是语言设计使开发人员以一种非常优雅的方式思考,将一个大问题分解为小问题,等等。如果您愿意的话,可以说是“聪明”或“聪明”。与某些其他语言相比,除了以这种方式开发外,几乎别无选择。LISP是一种列表处理语言,“纯功能”。

但是,可以在与LISP相关的工作中看到一个问题。在AI领域中,值得注意的是关于情境演算的研究,其中(简而言之)描述了“世界”中的对象和规则,并可以使其演化为计算世界的情境。因此,它是根据情况进行推理的模型。主要的问题就是所谓的框架问题,这意味着该演算说不出是什么呢变化-就是变化。世界上所有未定义的内容都无法处理(请注意此处与ML的区别)。最初的实现使用LISP,因为那时是AI语言。并且存在框架问题。但是,就像@Harsh提到的那样,这不是LISP的错:任何语言都将面临相同的框架问题(情境演算的概念性问题)。

因此,从AI / AGI / ASI角度来看,语言确实无关紧要。概念(算法等)确实很重要。

即使在机器学习中,语言也是一种实用的选择。今天,Python和R之所以流行,主要是由于它们的库生态系统和主要公司的关注。但是,尝试使用Python或R为基于RaspberryPI的应用程序运行模型,您将面临一些严格的限制(但仍然有可能,我正在这样做:-))。因此,语言选择会变成实用主义。


1

我认为python和java已从LISP手中接管了。有很多人使用它们,有大量可用的库。更重要的是,它们很容易集成到Web技术中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.