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

哪种编程语言最适合用于人工智能目的?

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


回答:

在人工智能研究领域剩下的那些酷酷的、留着胡子的专家们都在使用 Lisp 🙂

主要有两个阵营:Common Lisp 和 Scheme。 它们的语法等都不同。 两者都有很多好的资料。

Java 是一种非常流行的通用语言,但在 AI/函数式编程中,很多有趣的东西,例如将闭包作为一等对象传递,在 Java 中做起来很笨拙。

我个人更喜欢远离 C# 和 F# 这样的 Windows 风格的语言。 厉害的人都在 Unix 下开发。 如果他们很厉害但很穷,就在 Linux 下开发。

有些厉害但古怪的人用 Haskell 编程。 一种相当现代的、具有良好性能的 FP 语言。 我试过一次,弄得我头疼;但你可能比我聪明。


更新: 对 @人名 问题的回答。

  1. 我不会自己花钱购买 Unix 变体;那是公司和研究所做的事情。 想法是,你想为一个在硬件上投入数百万美元,并且不会犹豫为操作系统支付几千美元的机构进行人工智能研究。 这样的机构很可能在自助餐厅里有美味的食物和/或为做有趣的工作支付丰厚的报酬。 但我当然不是在贬低 Linux。

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

  3. 详细阐述一下“windowsy”的主题:你提到 F# 是 OCaml 的一个变体。 从我自己承认简短的研究来看,F# 似乎缺少 functors、OCaml 风格的对象、多态变体和 camlp4 预处理器。 没有 functors 的函数式语言? 真的吗? 如果有人不喜欢微软,正如我承认的那样,人们可以得出结论,他们已经抢先将一种非常好的函数式语言 OCaml 塞进了他们可以在 CLR 中运行的东西,以便他们可以声称“拥有”一种函数式语言。 最后,因为我不怀疑,我知道微软总是将市场主导地位置于产品质量之上,我不打算碰 F#。 但这是我的个人偏好,并且明确地如此标识,而我们实际上更关心的是为 @人名 提出好的建议。

我更有理由推荐 Lisp 而不是 F# 甚至 OCaml 和 Haskell。 这些主要基于 Lisp 在 AI 领域历史上比任何其他语言都占优势。

  • 大多数 AI 文献都是基于用 Lisp 或 Prolog 编写的程序。 退一步说,对 Lisp 的良好了解将使学生能够理解示例程序。 我个人最喜欢的人工智能大型项目 Cyc,在 Common Lisp 或 C 中都有运行时。

  • 在编程语言的 TIOBE 指数(在工业中看到和使用)中,Lisp 排名第 15 位,而 Haskell 排名第 43 位,F# 和 OCaml 排名低于第 50 位。 在市场上的存在自然与就业机会相关。

也就是说,许多较年轻的“AI 有趣的”语言很可能蓄势待发。 如果某个主要的研究所发表了一些开创性的、定义领域的研究,例如,用 Scala,你就会看到 Scala 的受欢迎程度在研究社区中迅速提高,并且在一段时间的滞后之后,在工业界也是如此。

我(显然)无法评论 F# 的其他品质,但你和我一样欢迎提出建议。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注