当前位置:  开发笔记 > 编程语言 > 正文

如何选择人工智能编程的语言?

如何解决《如何选择人工智能编程的语言?》经验,为你挑选了6个好方法。

用于人工智能目的的最佳编程语言是什么?

请注意,使用建议的语言我必须能够使用任何AI技术(或至少大多数).



1> Carl Smotric..:

AI研究遗留下来的所有酷胡子大师都使用Lisp :)

有两大阵营:Common Lisp和Scheme.他们有不同的语法等等.为两者写了很多好东西.

Java是一种非常流行的通用语言,但是AI/Functional Programming中很多有趣的东西,例如将闭包作为一阶对象传递,在Java中很笨拙.

我个人的偏好是远离C#和F#等Windowsy语言.酷人在Unix下发展.或Linux,如果他们很酷但很穷.

在Haskell中有一些很酷但很奇怪的人编程.一种相当现代的FP语言,具有良好的性能.我尝试了一次,它让我的大脑受伤; 但你可能比我聪明.


更新:史蒂夫的问题的答案.

    我不会是支付Unix变种的人; 这就是企业和研究机构所做的事情.这个想法是,你想要为一个装有数百万美元的装备进行人工智能研究,并且不愿为操作系统支付几千美元.这种服装可能会在自助餐厅里有很好的食物和/或为做有趣的工作而付出的代价.但我当然不会敲Linux.

    F#可能很酷,但我看到一大堆问题让它在Linux或任何其他Unix上运行(这就是我所说的"windowsy"),而且我不想在Windows下运行(这就是我的意思)个人喜好").

    详细说明"windowsy"主题:你提到F#是一个OCaml变种.从我自己公认的简短研究来看,似乎F#缺少仿函数,OCaml风格的对象,多态变体和camlp4预处理器.没有仿函数的函数式语言?真?如果一个人不喜欢微软,就像我承认的那样,人们可以得出结论,他们已经取得了成功,并将一种非常好的功能语言OCaml加入了他们可以在他们的CLR中运行的东西,这样他们就可以宣称"拥有"一种功能语言.最后,因为我没有怀疑,我知道微软总是优先考虑市场优势而不是产品质量,我不打算接触F#.但这是我个人的偏好,并且清楚地确定了这一点,而我们真的更关心为mary.ja45提出一个好的建议.

我有更好的理由推荐Lisp而不是F#甚至是OCaml和Haskell.这些主要基于Lisp相对于AI领域中任何其他语言的历史优势.

大部分AI文献都是基于用Lisp或Prolog编写的程序.如果不出意外,对Lisp的良好了解将允许学生理解示例程序.我个人最喜欢的AI megaproject,Cyc,可以选择Common Lisp或C.

在TIOBE编程语言索引中(在工业中可以看到和使用),Lisp排在第15位,而Haskell排在第43位,F#排在第50位以下,OCaml排在第50位.市场上的存在自然与就业机会相关.

也就是说,很多年轻的"AI有趣"语言很可能会飙升.如果一些主要的研究机构在Scala中发表了一些开创性的,定义领域的研究,你会发现Scala的受欢迎程度在研究界迅速发展,并且在行业中有一些滞后.

我(显然)不能对F#的其他特质发表评论,但我欢迎你像我一样提出建议.


酷人的+1在linux上开发
我可以使用Lisp做其他事吗?

2> devoured ely..:

Python似乎在一般科学界使用了很多.它有很多可用的库,而且很容易学习.



3> ziggystar..:

我会把Scala扔进锅里.

它可用于函数式编程

它可以像Java一样快

它是一种现代语言,有许多不错的方面

Java似乎在AI中也很受欢迎,因此您可以使用Scala中的所有Java库

我已经解决了Scala中基本AI课程的所有练习.它运作得很好.



4> bayer..:

如果通过"全部AI"你也意味着机器学习,我猜,Matlab,R和Python + Scipy应该被提及.



5> mikera..:

我个人使用Clojure进行人工智能编程,并发现它是一款优秀的全能型AI语言.

原因:

这是一个Lisp,Lisps历来在AI领域非常强大

它是一种具有强大宏同源语言,非常适合代码生成和遗传编程.这对于AI编程来说是一个非常有用的属性(并且可能解释了Lisp在这个领域中的一些成功)

它在JVM上运行,可以轻松访问所有Java库以进行数字运算(Weka,Colt等).

它对于快速交互式开发很有用 - 它非常动态,你可以在运行的Clojure REPL中以交互方式完成所有事情.无需重新编译等



6> Joel Hoff..:

重要的是编程环境是否是学术性的,但对于大多数非学术性AI应用程序开发,我建议坚持使用Java或C++等主流语言.人们需要能够与其他COTS或开源软件包轻松连接,而这在有些"异国情调"的语言中有时很难或不可能.对于学术工作,这可能是一个不太重要的问题.

此外,性能对于许多应用程序都很重要,主流语言通常具有最优化的编译器,例如C++或Java.

确实,像LISP,Scheme等函数式编程语言具有可以使实现特定AI方法更容易的专门特性,但我不认为这对于整个AI相关的编程是正确的,例如,定量机器学习方法通常不需要函数式语言.如果您需要访问功能构造和通用软件包,LISP有一些工具可以帮助解决这个问题,最近开发的Clojure是一个LISP变体,可以在JVM上运行并可以访问Java库.此外,Groovy是另一种基于JVM的语言,包括对闭包的支持.

最后,一些程序员的范例,灵活性和/或快速原型的AI项目.Ruby和Python都看到了这个原因多范式语言,可也可用于脚本一些AI-相关的使用.

与编程中的大多数事情一样,在AI开发中使用哪种语言的最佳答案最终将取决于项目的需求.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有