Lisp 和 Prolog 是否适用于人工智能?

既然我在三年前上过一门人工智能的课程,那我显然有足够的能力来问这个问题了……开玩笑,开玩笑 😉

但说真的,这些语言有什么特性使它们在人工智能研究中如此受欢迎? 即使人工智能研究“很老”了……但似乎在过去 5-10 年里进展是最快的……是因为这些语言在某种程度上是围绕人工智能的概念“设计”的,还是仅仅因为我们现在没有更好的东西可以用?

我问这个问题是因为我一直觉得它非常有趣,而且我只是有点好奇。 如果我完全错了,他们使用了不同的语言,我很想知道他们都使用什么。 我的意思是,我可以理解 Prolog,特别是对于 Sentient/Propositional Logic 和 Fuzzy logic 而言。 但我不明白“为什么”我们要使用 Lisp……甚至不明白人工智能研究人员还会使用什么来做机器学习等等。

任何关于该主题的文章/书籍都很有帮助 🙂


回答:

我对 Prolog 了解不多,但这里是关于为什么使用 Lisp 的解释:

  • Lisp 是一种 自同像 语言,这意味着代码以与语言中的数据结构相同的形式(S-表达式)表示,即“代码即数据”。 如果你要编写修改/操纵其他代码的代码,例如遗传算法或符号操作,这将有很大的优势。

  • Lisp 的宏系统使其非常适合定义特定于问题的 DSL。 大多数 Lisp 开发人员有效地“扩展了该语言”来做他们需要的事情。 同样,Lisp 是自同像的这一事实在这里有很大的帮助。

  • 存在一些历史联系,因为 Lisp 在早期人工智能研究蓬勃发展的同时变得流行起来。 此线程中有一些有趣的事实。

  • Lisp 作为一种函数式编程语言运行得相当好。 这非常适合人工智能领域(在人工智能中,你通常只是试图让机器学会如何为给定的输入产生正确的输出)。

  • 主观看法:Lisp 似乎对具有数学思维的人有吸引力,而这恰恰是现代人工智能所需要的……这可能是因为 Lisp 与非类型 lambda 演算密切相关

我现在正在做一些人工智能/机器学习工作,并且选择 Clojure(JVM 上一种现代 Lisp)很大程度上是因为上述原因。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注