34 lisp artificial-intelligence prolog
现在,因为我3年前在AI上课,我非常熟练地提出这个问题......开个玩笑只是开玩笑;)
但严重的是,这些语言是什么使它们如此受人工智能研究的欢迎.即使人工智能研究"老"......它可能是过去5到10年中最长的方式......似乎是因为这些语言在某种程度上"设计"了人工智能的概念,或者仅仅是我们现在没什么好用的?
我问这个是因为我总觉得它非常有趣,我只是有点好奇.如果我完全错了,他们使用不同的语言,我很想知道他们使用的是什么.我的意思是我可以理解prolog,尤其是Sentient/Propositional Logic和Fuzzy逻辑.但我不明白"为什么"我们会使用Lisp ...甚至AI研究人员用来做机器学习等的其他内容.
关于主题的任何文章/书籍也是有帮助的:)
Fre*_*Foo 31
Lisp已经回答了这个问题,所以我只想评论一下Prolog.
Prolog专为两件事而设计:自然语言处理和逻辑推理.在20世纪70年代早期的GOFAI范例中,当Prolog被发明时,这意味着:
Prolog非常擅长这一点,并且在ISS中用于完成这样的任务.然而,这种方法已经失去了信誉,因为
直到最近,NLP研究人员开发了一些实用的组合符号统计方法,有时使用Prolog.世界其他地方使用Java,C++或Python,您可以更轻松地找到库,工具和非博士程序员.在Prolog中I/O和算术都不实用的事实并没有帮助它被接受.
Prolog现在主要局限于涉及NLP和约束推理的特定领域的应用程序,它似乎确实很好.尽管如此,很少有软件公司会以"基于Prolog技术为基础"做广告,因为这种语言因为没有达到"让人工智能变得容易"的承诺而得名.
(我想补充一点,我是Prolog的忠实粉丝,但即使我只是用它来进行原型设计.)
mik*_*era 30
无法真正与Prolog交谈,但这就是为什么Lisp:
Lisp是一种同源语言,这意味着代码以与语言中的数据结构相同的形式(s表达式)表示.即"代码就是数据".如果您正在编写修改/操作其他代码的代码,例如遗传算法或符号操作,那么这具有很大的优势.
Lisp的宏系统使其非常适合定义特定于问题的DSL.大多数Lisp开发人员有效地"扩展语言"以满足他们的需求.再一次,Lisp是homoiconic的事实在这里有很大帮助.
Lisp作为一种函数式编程语言非常有效.这是一个非常适合AI的领域(你经常只是试图让机器学习如何为给定的输入生成正确的输出).
主观观点:Lisp似乎吸引了具有数学思维的人,这恰好是你需要大量的现代AI ......这是可能的,因为Lisp与无类型的lambda非常密切相关结石
我正在做一些AI /机器学习工作,并且由于上述原因选择了Clojure(JVM上的现代Lisp).
Mon*_*son 15
当我们相信AI是符号操作和像Ontologies这样的东西时,Lisp有一个优势.当我们认为AI是逻辑时,Prolog有一个优势,而Unification是一个棘手的操作.但是这些都没有为任何当前的"AI"竞争者提供任何优势:统计AI是关于稀疏阵列的.各种神经网络,包括深度学习,都是关于与链接相关的节点的海洋.模型自由方法(多种机器学习,进化方法等)也很简单.复杂性是紧急的,所以你不必担心它.写一个简单的基础,可以了解它需要学习什么.在任何一种情况下,任何通用语言都可以.甚至可以说,大多数神经网络方法都非常简单,以至于C++会有点过分.
使用允许您最轻松地聘请最佳程序员完成任务的语言.
小智 11
这里有一些好的和信息丰富的回答,但Lisp和Prolog的观点要么被遗漏,要么被边缘化,要么不够强调.
Lisp和后来的Prolog出现在一个主要的人工智能研究围绕符号处理的时代.符号处理的一个简单例子是我们人类如何手工进行代数,微积分或积分.我们象征性地操纵变量和常量来导出等价关系.Lisp和Prolog就是为此而设计的.
符号操作在C++或Java中并非简单实现,因为它们的设计并未考虑到这一点.然而,现在人工智能中的C++,Java或类似语言可能是流行语,因为现在存在多种不涉及符号处理的AI研究变体.
AI的一种形式涉及使用统计方法作为知识的基础,这需要使用更多更精简的语言来减少计算时间.许多所谓的AI系统也只不过是专门用于特定利基目的的系统.当然,这些系统最好用非Lisp/Prolog语言编程,而不是依赖于"推理"或常识知识获取,更多地依赖于从输入处理数据.
甚至Watson(用Java,C++和一些Prolog编程)也可以说是一个高度专业化的系统.Watson似乎是为了获取大量的事实,然后使用复杂的搜索算法对这些事实进行分类(虽然不确定,IBM可能会因此而怨恨我).未来的AI实现可能会结合AI范例并为每个专用部分实现各种语言.即使是Lisp和Prolog也有一天会卷土重来.
小智 6
这也许a.good想法召回Prolog的动机:逻辑的解决问题和了解推理,人或机器等.这是一个正在进行的项目,即使Prolog是其最好的结果之一,也不是它的最终结果.我们一直在寻找更好的语言来代表知识.查看Bob Kowalski的最新着作:如何人工智能化.