几十年来,用于AI的编程语言选择是Prolog或LISP,还有其他一些不太知名的语言。它们大多数是在70年代之前设计的。
在其他许多领域特定的语言上发生的变化很多,但是在AI领域却没有Web特定语言或脚本等出现那么多。
是否有最新的编程语言旨在改变AI中的游戏并从以前的语言中学习不足?
几十年来,用于AI的编程语言选择是Prolog或LISP,还有其他一些不太知名的语言。它们大多数是在70年代之前设计的。
在其他许多领域特定的语言上发生的变化很多,但是在AI领域却没有Web特定语言或脚本等出现那么多。
是否有最新的编程语言旨在改变AI中的游戏并从以前的语言中学习不足?
Answers:
我在斯坦福大学(Stanford)教授的在线参与的AI课程建议将Python用于作业。我相信佐治亚理工学院仍然使用LISP。
这里的谬论是“新”就是“好”。人工智能研究是最古老的计算机研究学科之一。当人们意识到它的技术可以在其他地方使用时,它会不断地减少子领域。语言处理,机器学习和数据挖掘都是使用大量语言的“实际”应用程序的示例。
因此,主要领域的变化要少得多,而要精炼成大量相关学科。这就像说“科学计算”,并期望它只是意味着要求解线性方程组一样。
您提到的语言在过去20或30年中已经发展了很多。Lisp生成Common Lisp和Clojure。Prolog生成了Visual Prolog(它具有对象...)和Mercury(采用Haskell和Prolog,将它们锁定在一个房间中...站得很远,可以开始运行)。
鉴于AI研究更具理论性,因此将重点放在理论(数学)而不是实用性(语言)上是有道理的。
话虽如此,我敢打赌,最大的人工智能技术创新者是谷歌。他们倾向于偏爱Python(以及Go和Dart,但这不重要)。因此,我想说Python是“最近的选择语言”,但您也可以使用Haskell或OCaml或F#或C#甚至Java。
您可能会在德国AI期刊KI-KünstlicheIntelligenz的最新特刊“ Sprachen der KI”(“ AI语言”)中找到问题的答案,该书由Springer出版,第26卷,第1期,2012年2月。我是其中讨论文件一部分的共同作者:“您使用哪种语言创建AI程序以及为什么?”这是该文件的预印本:http : //ai.cs.unibas.ch /papers/schmid-et-al-kijournal2012.pdf
总而言之,一些AI研究人员仍然对经典的AI语言Lisp和Prolog发誓。其他人则使用主流语言,例如C ++,Java或Python。还有一些人喜欢探索新的深奥的编程语言。
我相信AI没有什么特别的东西需要特殊的编程语言。研究人员通常想要的是允许快速原型制作的编程语言。这是旧的AI语言(Lisp,Prolog)和更新的“脚本”语言(Perl,Python,Ruby或最新的JVM语言,例如Clojure)非常适合的。
一些研究人员希望超越原型设计,或者他们有特殊要求(例如大数据),并且一旦探索性编程阶段结束并且拥有了一个更好地解决问题。有人会说,在这一点上(当问题得到充分理解时),您将不再使用AI。
回到您的最后一个问题,我所知道的所有新AI语言的重大发展都受到基于约束的编程的启发。一些人进入了Prolog的实现,例如SICStus和SWI,另一些则产生了类似Prolog的语言,例如Mercury和Mozart / Oz。当然,可能会有一些我不知道的重大新进展。
尽管大多数答案都集中在“语言”一词上,因为您在问题中使用了它,但我不认为您在思考AI时应该考虑一种特定的语言。
我已经使用这种技术多年,目前正在使用Proof Assistants,并将一些代码从OCaml转换为F#。实现AI的不是语言,而是以该语言实现的特定算法。对于PROLOG来说,这是一个基于统一的推理引擎。现在,如果您从统一开始,看看多年来如何进行定制和改进,我想您会发现您所追求的进步。不要专注于语言,而是专注于算法。
例如,功能语言中的类型推断使用基于统一的Hindley-Milner。
证明助手的另一个特定示例在此处,请注意prolog.ml。用于序言的推理引擎在OCaml中实现,并转换为F#。因此,虽然OCaml和F#通常不是AI语言,但它们完全能够实现AI算法。
我会说这取决于您对AI的理解。总体而言,机器学习已经看到了工具的快速发展,因此在Python,C#,Ruby,OCaml和Java,仅举几例。
如果您要对数据进行大规模处理以构建诸如推荐引擎,协作过滤或其他类型的无监督或有监督的学习问题之类的东西,则可能需要看一下Mahout。它本身并不是一种真正的“编程语言”,但它是解决此类问题的一套工具。您可以用Java或其他JVM语言(例如groovy(一种动态,合理表达的语言)或clojure(类似于lisp))编写模型代码。
我不确定您为什么会认为Lisp已过时;这是其他语言(封盖等)中大多数“新”语言功能的起源。
当然,机器学习技术通常已经朝着概率模型发展,而不是大多数早期AI努力开始的二进制逻辑,决策树风格方法,因此有可能争论说机器学习是从大帐篷中走出来的一个分支或转移AI。
我几年前曾经使用过的AI的首选语言是Prolog, IDE附带的 Visual Prolog版本,例如Delphi。
Prolog(及其GUI版本Visual Prolog)是与人工智能和计算语言学相关的通用逻辑编程语言。
但是,最近的趋势表明,任何OOP语言(例如C#,Java,Python,Haskell等)都可以用于AI应用程序。