典型的人工智能语言主要有LISP、Prolog、Smalltalk、C++等。
人工智能开发的5种编程语言
01、Python
第一名毫无疑问是 Python。
尽管 Python 有些特性令人不爽(whitespace、Python 2.x 和 Python 3.x 之间的巨大差异、五种不同的包机制都在不同程度上有缺陷)
但如果你正在从事 AI 工作,你几乎肯定会在某些时候用到 Python。
Python 中可用库的数量是其他语言所无法企及的。
NumPy 已经变得如此普遍,以至于几乎成为了张量运算的标准 API,Pandas 将 R 的强大而灵活的数据帧带入 Python。
对于自然语言处理(NLP),您可以使用久负盛名的 NLTK 和快如闪电的 SpaCy。
对于机器学习,有经过实战检验的 Scikit-learn。当谈到深度学习时,
当前所有的库(TensorFlow,PyTorch,Chainer,Apache MXNet,Theano 等)都是在 Python 上首先实现的项目。
(在LiveEdu上,一位德国的AI开发者教大家如何使用Python开发两个简单的机器学习模型)
Python 是人工智能研究的前沿语言,这是拥有最多机器学习和深度学习框架的语言,也是 AI 研究者几乎都掌握的语言。
02、JAVA 和相关语言
JVM 系列语言(Java,Scala,Kotlin,Clojure 等)也是 AI 应用开发的绝佳选择。
无论是自然语言处理(CoreNLP)、张量运算(ND4J)还是完整的 GPU 加速深度学习堆栈(DL4J),
您都可以使用大量的库来管理流水线的各个部分。
另外,您还可以轻松访问 Apache Spark 和 Apache Hadoop 等大数据平台。
Java 是大多数企业的通用语言,
在 Java 8 和 Java 9 中提供了新的语言结构,这使得编写 Java 代码的体验不再像我们过去所记得的那样糟糕。
使用 Java 编写人工智能应用可能会让人觉得有一点点枯燥,但它确实能完成工作,并且您可以使用所有现成的 Java 基础架构来开发、部署和监视。
03、C/C++
在开发 AI 应用时,C / C ++ 不太可能成为您的首选,
但如果您在嵌入式环境中工作,并且无法承受 Java 虚拟机或 Python 解释器的开销,那么 C / C ++ 就是最好的解决方案。
当你需要榨干系统的每一滴性能时,你就得面对可怕的指针世界。
幸运的是,现代 C / C ++ 写起来体验还不错(实话实说!)。
您可以从下列方法中选择一个最适合的:
您可以一头扎进堆栈底部,使用 CUDA 等库来编写自己的代码,这些代码将直接在 GPU 上运行;
您也可以使用 TensorFlow 或 Caffe 以访问灵活的高级 API。
后者还允许您导入数据科学家用 Python 写的模型,然后以 C / C ++ 级别的速度在生产环境中运行它们。
在未来一年中,请密切留意 Rust 在 AI 领域的一些动作。
结合 C / C ++ 级别的速度与类型和数据安全性,Rust 是实现产品级性能却不会造成安全问题的最佳选择。并且它现在已经可以与 TensorFlow 绑定了。
04、Java
其实,谷歌最近发布了 TensorFlow.js,这是一个 WebGL 加速库,允许您在 Web 浏览器中训练和运行机器学习模型。
它还包括 Keras API 以及加载和使用在常规 TensorFlow 中训练过的模型的功能。
这可能会吸引大量的 JS 开发者涌入 AI 领域。
虽然 Java 目前能够访问的机器学习库与其他语言相比有所局限,但在不久的将来,开发者在网页中添加神经网络就和添加 React 组件或 CSS 属性一样简单。
05、R语言
R 在这份榜单中排名最末,并且看上去将会越来越没落。
R 是数据科学家喜欢的语言。
但是,其他程序员在第一次接触 R 时会感到有些困惑,因为它采用了以数据帧为中心的方法。
如果您有一组专门的 R 开发者,那么将 R 与 TensorFlow、Keras 或 H2O 搭配使用,进行研究、原型设计和实验是有意义的。
但基于性能和操作方面的考虑,我不愿意推荐将 R 用于生产。
虽然您可以写出能在生产服务器上部署的高性能 R 代码,但将这种用 R 语言编写的原型重新编码为 Java 或 Python 肯定会更容易。
人工智能,火的不能再火的词了,想要驾驭他还需要不断的磨练,语言是与人工智能对话的基本条件,