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

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

请注意,使用建议的语言,我必须能够使用任何 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

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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