Lisp和Prolog用于人工智能?
自从3年前我参加了人工智能课程以来,我显然已经足够熟练地提出这个问题……只是开玩笑而已;) 但说真的,是什么让这些语言如此受A.I.研究的欢迎呢。尽管A.I.的研究是“古老的”…但它可能是过去5-10年来最长的一次,似乎。。。。 是因为这些语言在某种程度上是围绕人工智能的概念“设计”的,还是因为我们现在没有更好的语言可供使用 我问这个是因为我总是觉得它很有趣,我只是有点好奇。如果我完全错了,他们使用不同的语言,我想知道他们都用什么。我的意思是我能理解序言,特别是感知/命题逻辑和模糊逻辑。但我不明白“为什么”我们会使用Lisp…甚至A.I.的研究人员会用什么来进行机器学习等等Lisp和Prolog用于人工智能?,lisp,artificial-intelligence,prolog,Lisp,Artificial Intelligence,Prolog,自从3年前我参加了人工智能课程以来,我显然已经足够熟练地提出这个问题……只是开玩笑而已;) 但说真的,是什么让这些语言如此受A.I.研究的欢迎呢。尽管A.I.的研究是“古老的”…但它可能是过去5-10年来最长的一次,似乎。。。。 是因为这些语言在某种程度上是围绕人工智能的概念“设计”的,还是因为我们现在没有更好的语言可供使用 我问这个是因为我总是觉得它很有趣,我只是有点好奇。如果我完全错了,他们使用不同的语言,我想知道他们都用什么。我的意思是我能理解序言,特别是感知/命题逻辑和模糊逻辑。但我不明
关于这个主题的任何文章/书籍也很有帮助:)无法真正与Prolog对话,但以下是Lisp的原因:
- Lisp是一种语言,这意味着代码以与语言中的数据结构相同的形式()表示。i、 e.“代码即数据”。如果您正在编写修改/操纵其他代码的代码,例如遗传算法或符号操纵,则这具有很大的优势
- Lisp的宏系统非常适合定义特定于问题的DSL。大多数Lisp开发人员有效地“扩展语言”来完成他们需要的工作。Lisp是同音符号这一事实在这里也有很大帮助
- 有一些历史联系,因为Lisp和许多早期人工智能研究几乎同时流行。一些
- Lisp作为一种函数式编程语言工作得很好。这是一个非常适合人工智能的领域(您通常只是试图让机器学习如何为给定的输入生成正确的输出)
- 主观观点:Lisp似乎很吸引有数学思维的人,而这恰恰是许多现代人工智能所需要的。。。。。这是可能的,因为Lisp与非类型lambda演算关系非常密切
我目前正在做一些人工智能/机器学习工作,选择(JVM上的现代Lisp)主要是出于上述原因。Lisp的问题已经得到了回答,所以我只对Prolog进行评论 Prolog设计用于两个方面:自然语言处理和逻辑推理。在20世纪70年代早期的范例中,当Prolog被发明时,这意味着:
(我想补充一点,我是Prolog的超级粉丝,但即使是我也只将其用于原型制作。)这里有一些很好的信息反馈,但Lisp和Prolog的要点要么被忽略、边缘化,要么没有得到足够的强调 Lisp和后来的Prolog出现在一个主要人工智能研究围绕符号处理的时代。符号处理的一个简单例子是我们人类如何手工做代数、微积分或积分。我们象征性地操纵变量和常量以导出等价关系。Lisp和Prolog就是为此而设计的
符号操作在C++或java中不是很容易实现的,因为它们不是为了这个目的而设计的。然而,C++、java或类似语言可能是人工智能中的流行语,因为现在存在一些不涉及符号处理的人工智能研究的变体。p> 人工智能的一种形式是使用统计方法作为知识的基础,这需要使用更精简的语言来减少计算时间。另外,许多所谓的人工智能系统只不过是为特定的利基目的服务的专门系统。当然,这些系统最好用非Lisp/Prolog语言编程,较少依赖于“推理”或常识知识获取,更多地依赖于处理输入数据