我已经学习口齿不清到扩展我的视野,因为我听说这是用在艾编程。后做一些探索,我还没有找到艾例或任何的语言,这将使它更倾向。

是口齿不清过去使用的,因为它是可用的,或者是不是有什么,我只是失踪了?

有帮助吗?

解决方案

Lisp WAS直到20世纪80年代末才在AI中使用。然而,在80年代,Common Lisp作为“AI语言”在商业世界中被超卖;这种强烈反对迫使大多数AI程序员使用C ++几年。目前,原型通常用较年轻的动态语言(Perl,Python,Ruby等)编写,成功研究的实现通常是C或C ++(有时是Java)。

如果你对70年代很好奇......好吧,我不在那里。但我认为Lisp在人工智能研究方面取得了成功,原因有三个(按重要性排序):

  1. Lisp是一款出色的原型制作工具。很长一段时间它都是最好的。 Lisp仍然很擅长处理你不知道如何解决的问题。该描述完美地描述了AI。
  2. Lisp支持符号编程。旧的AI也是象征性的。在很长一段时间里,它在这方面也是独一无二的。
  3. Lisp非常强大。代码/数据区别较弱,因此感觉感觉比其他语言更具可扩展性,因为您的函数和宏看起来像内置的东西。
  4. 我没有 Peter Norvig的旧AI书籍,但它应该是一个很好的方法学习用Lisp编写AI算法。

    免责声明:我是计算语言学的研究生。我知道自然语言处理的子领域比其他领域好很多。也许Lisp在其他子域中使用得更多。

其他提示

口齿不清的用于艾因为它支持执行软件,计算符号很好。符号象征性的表现形式和计算与那些核心是口齿不清。

典型的艾领域的计算符号是/有:计算机代数,定理证明,规划系统、诊断、重写系统,表示知识和推理逻辑的语言,机器翻译、专家系统,以及更多。

然后是毫不奇怪,许多着名AI应用在这些领域都写在List:

  • Macsyma作为第一个大型计算机代数系统。
  • ACL2作为一个广泛使用的定理证者,例如使用通过AMD。
  • 镖作为后勤规划期间使用第一次海湾战争的美军。这些应用程序单独说已经支付了所有我们投资在艾研究。
  • 穗、规划和调度应用哈勃空间望远镜。还用于通过其他几个大型望远镜。
  • 使,其中一个最大的软件系统编写的。代表性和推理在该领域的人类常识的知识。
  • 金属的第一个商业使用自然语言翻译系统。
  • 美国表达的'授权的助理,其中检查信用卡交易。

有成千上万的应用在这些领域编写的口齿不清。通常这些是他们需要特殊的能力,在该地区的象征性的处理。一个实现了特殊的语言,具有特殊的翻译/编译器在这些领域上的口齿不清。口齿不清允许一个创造的陈述对于象征性的数据和程序,并可以实现所有类型的机械操纵这些表达方式(数学公式,逻辑的公式,计划,...).

(注意,许多其他通用编程语言中使用AI,也是。我试图回答为什么尤其是口齿不清是用于AI。)

一个原因是它允许您使用特定于您的域的构造扩展语言,使其有效地成为特定于域的语言。这项技术非常强大,因为它可以让你解释你正在解决的问题,而不是改变位。

我的猜测一直是,作为一种功能语言,它不区分代码和数据。包括函数定义和函数调用在内的所有内容都可以视为列表,并像任何其他数据一样进行修改。

因此,可以轻松编写自检,自修改代码。

一个可能的答案是AI是一个非常难的问题的集合,Lisp是解决难题的好语言,而不仅仅是人工智能。

至于为什么:宏,泛型函数和丰富的内省允许简洁的代码和简单的域抽象引入—它是一种你可以变得更强大的语言。对于许多不必要的问题,它有自己的成本,但对于其他问题,需要力量才能取得任何进展。

我认为仅仅考虑人工智能是错误的。如果你问为什么它被用于人工智能,而不是为什么它现在不经常被使用,那么像人工智能冬天和常见的口齿不清的商业影响就会分散注意力......

无论如何,我认为这是因为大多数AI代码基本上都是研究代码。 Lisp是一种用于探索性编程,实现困难算法,自修改和经常修改的代码的优秀语言。换句话说,对于研究代码。

我今天使用lisp作为我的一些研究代码(数学,信号处理),因为它比大多数语言更灵活,更强大,同时仍然比大多数语言生成更高效的代码。我通常可以在c ++速度的+/- 2范围内获得性能,但是我可以更快地实现事物,并且处理复杂性,如果我使用c ++,java,c#,我将花费更多的时间。 / p>

虽然这是在偏离主题。我认为AI代码主要是用普通的lisp编写的,因为它是一种研究代码的强大方法。它仍然是;但随着“AI”算法变得更好理解和探索,它们中的一部分更易于教学和使用,因此它们在本科课程中出现了年度语言。从那里开始,它成为人们已经知道的问题,可用的库,以及适用于大型团体的库。

我猜测,一个重要原因是列表作为基本数据结构的灵活性。

当时,能够将它们变成所有类型的复合对象,并将新事物作为消息传递和多态性,使其成为首选语言;不是专门针对AI,而是针对大而复杂的任务。特别是当他们在尝试概念时。

我认为你是对的:Lisp是一个非常方便的工具。这是因为它在程序和数据之间没有区别。这使得黑客可以非常轻松地操作函数,就像数据一样。

但是对于人类而言,lisp是非常难以阅读的,它的大括号和数据与程序之间没有区别。今天,我不会将lisp用于任何生产AI代码(或者甚至是原型),但更喜欢python用于脚本编写。

要考虑的另一件事是该语言中/与该语言相关的现有库/工具。我无法将lisp库与python库进行比较,但我认为库和开源现在比以前更重要了。

这个答案的灵感来自于lisp和python之间的以下比较: http://amitp.blogspot.com/2007/04/lisp-vs-python-syntax.html

我记得听说过,作为一种函数式语言,Lisp是实现递归算法的一个很好的选择。在考虑决策制定流程(遍历)和最终结果(叶子节点)时,能够追踪树并继续前进是必不可少的。

在大学的AI课程中,我告诉了我,我们学习了Lisp。

更为愤世嫉俗的回答可能是“因为它在20世纪80年代失去了日本和美国之间的政治AI战争”。有一个有趣的博客文章,推测第五代的影响计算机系统在Prolog上消亡

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top