几十年来,人工智能选择的编程语言是要么是Prolog或LISP,以及很少有其他不太出名的人。大多数都是在70's之前设计的。
许多其他领域的特定语言都会发生变化,但在AI领域,它并没有出现在web特定语言或脚本等方面。
最近的编程语言是否打算改变人工智能中的游戏,并从以前语言的不足中吸取教训?
发布于 2012-10-05 23:02:01
我在线参加的人工智能课程,在斯坦福大学任教,建议用Python做作业。我相信佐治亚理工大学还在用LISP。
这里的谬论是“新”是“好”。人工智能研究是最古老的计算研究学科之一。当人们意识到它的技术可以在其他地方使用时,它就会不断地分解出子领域。语言处理、机器学习和数据挖掘都是使用大量语言的“实用”应用程序的例子。
因此,主要领域没有改变,而是被提炼成大量的相关学科。这就像说“科学计算”,期待它仅仅意味着解线性方程组。
在过去的二三十年里,你提到的语言有了很大的发展。Lisp产生了Common和Clojure。Prolog生成了Visual (它有对象.)水星(带上Haskell和Prolog,把它们锁在together...stand的房间里,准备逃跑)。
鉴于人工智能研究更理论性,它将重点放在理论(数学),而不是实用性(语言)。
尽管如此,我敢打赌,人工智能技术的最大创新者是谷歌。他们倾向于支持Python (然后去和Dart,但这不是重点)。因此,我会说Python是“最近选择的语言”,但您也可以使用Haskell、OCaml、F#、C#甚至Java。
发布于 2012-10-24 22:30:17
你可以在德国人工智能杂志KI - Künstliche Intelligenz最近的特刊“Sprachen der KI”(“AI语言”)中找到问题的答案,第26卷,第1/2012年2月号,由Springer出版。我是其中一篇讨论文件的作者之一:“你用什么语言来创建你的人工智能程序?为什么?”下面是它的预印本:http://ai.cs.unibas.ch/papers/schmid-et-al-kijournal2012.pdf
总之,一些人工智能研究人员仍然使用经典的人工智能语言Lisp和Prolog。其他语言则使用主流语言,如C++、Java或Python。还有一些人喜欢探索新的深奥的编程语言。
我相信AI没有什么特别之处,需要特殊的编程语言。研究人员普遍想要的是允许快速原型化的编程语言。这是一些旧的AI语言(Lisp,Prolog)和新的“脚本”语言(Perl、Python、Ruby或最近的JVM语言(如Clojure) )非常适合的地方。
一些研究人员希望超越原型化,或者他们有特殊的需求(例如大数据),并且需要在探索性编程阶段结束后用编译或强类型语言(如C、C++或Java )重新实现他们的算法,并且他们对这个问题有了更好的掌握。有些人会说,在那个时候(当问题被很好地理解),你不再与人工智能打交道。
回到你的最后一个问题,我所知道的新人工智能语言的所有重大发展都受到基于约束的编程的启发。一些已经进入了Prolog实现,比如SICStus和SWI,还有一些已经产生了类似Prolog的语言,比如水星和Mozart/Oz。当然,可能会有重大的新发展,我不知道。
发布于 2012-10-06 14:30:06
虽然这些答案大多集中在“语言”这个词上,因为你在你的问题中使用了“语言”,但我不认为你在思考人工智能时应该考虑特定的语言。
多年来,我一直在使用这项技术,目前正在使用举证助理,并将一些代码从OCaml转换为F#。实现人工智能的不是语言,而是语言实现的具体算法。对于PROLOG,这是一个基于推理机的统一。现在,如果你从统一开始,看看这些年来它是如何被定制和推进的,我想你会发现你所追求的进步。不要专注于语言,要专注于算法。
例如,函数式语言中的类型推理使用基于统一的辛德雷-米尔纳。
另一个特定于验证助手的示例是这里,注意prolog.ml。prolog的推理引擎是在OCaml中实现的,并被转换成F#。因此,虽然OCaml和F#通常不被认为是AI语言,但它们完全能够实现人工智能算法。
https://softwareengineering.stackexchange.com/questions/167701
复制相似问题