您应该学习哪种编程语言来探索AI的深度?当然,您将需要一种具有许多出色的机器学习和深度学习库的语言。它还应具有良好的运行时性能,良好的工具支持,庞大的程序员社区以及健康的支持包生态系统。这仍然有很多不错的选择。
以下是我为AI开发选择的五种最佳编程语言。其中一些语言正在兴起,而另一些则似乎正在下降。几个月后再回来,您可能会发现这些排名已经改变。
1.Python
首先,它是Python。真的会是其他吗?尽管关于Python空白的问题令人生厌,但Python2.x和Python3.x之间存在巨大差异,五个不同的打包系统以不同的方式被破坏了-如果您正在从事AI工作,则几乎可以肯定会使用Python点。
Python中可用的库在其他语言中几乎是无与伦比的。 NumPy已经变得无处不在,几乎成为张量操作的标准API,而Pandas将R的强大而灵活的数据框架带入了Python。对于自然语言处理(NLP),您拥有受人尊敬的NLTK和快速的SpaCy。对于机器学习,有一个经过测试的Scikit学习。而且,在深度学习方面,所有当前的库(TensorFlow,PyTorch,Chainer,Apache MXNet,Theano等)都是有效Python的首批项目。
如果您正在阅读关于arXiv的前沿深度学习研究,几乎可以肯定会找到Python的源代码。然后是Python生态系统的其他部分。尽管IPython已成为Jupyter Notebook和以Python为中心的,但您仍然会发现大多数Jupyter Notebook用户和大多数在线共享的笔记本都使用Python。
它不会被绕过。 Python是人工智能研究的前沿语言。您可以找到大多数机器学习和深度学习框架的语言。这也是人工智能领域几乎每个人都可以说的语言。由于这些原因,尽管您的作者每天至少要对这个空白问题进行诅咒,但Python仍然是人工智能编程语言的第一个示例。
2、Java系列
JVM系列语言(Java,Scala,Kotlin,Clojure等)也是AI应用程序开发的绝佳选择。无论是自然语言处理(CoreNLP),张量运算(ND4J)还是完整的GPU加速的深度学习堆栈(DL4J),您都可以使用大量的库来管理管道的各个部分。此外,您可以轻松访问大数据平台,例如Apache Spark和Apache Hadoop。
Java是大多数企业的通用语言,而Java 8和Java 9提供了新的语言结构。编写Java代码并不是我们许多人都记得的可恶的经历。用Java编写人工智能应用程序可能很无聊,但是可以完成工作,并且所有现有的java基础结构都可以用于开发,部署和监视。
3.C / C ++
在开发AI应用程序时,C / C ++不太可能是您的首选,但是,如果您在嵌入式环境中工作并且负担不起Java虚拟机或Python解释器的开销,那么C / C ++是答案。当您需要从系统中提取性能的最后一点时,您需要回到可怕的指针世界。
幸运的是,现代C / C ++可以很好地编写(诚实!)。您可以选择一些方法。您可以使用CUDA之类的库来编写自己的代码,然后直接在GPU上运行它,也可以使用TensorFlow或Caffe获得灵活的高级API访问。后者还允许您导入数据科学家可能在Python中构建的模型,然后以C / C ++提供的所有速度在生产环境中运行它们。
请注意Rust明年在太空中正在做什么。将C / C ++的速度与类型和数据安全性相结合,Rust是实现生产性能而不引起安全性问题的最佳选择。而且TensorFlow绑定已经可用。
4.JavaScript
JavaScript?到底是怎么回事?嗯,Google最近发布了TensorFlow.js,这是一个WebGL加速库,可让您在网络浏览器中训练和运行机器学习模型。它还包括Keras API以及加载和使用在常规TensorFlow中训练的模型的功能。这可能会吸引大量开发人员进入AI领域。尽管JavaScript当前对机器学习库的访问权限与此处列出的其他语言不同,但是开发人员很快就会在他们的网页上加点神经网络,这几乎与添加React组件或CSS属性相同。同时授权和威吓。
TensorFlow.js仍处于早期阶段。当前,它可以在浏览器中运行,但不能在Node.js中运行。它尚未实现完整的TensorFlow API。但是,我希望到2018年底,这两个问题都将基本解决,此后不久将进行AI的JavaScript入侵。
5.R
R进入前五名的底部,并且倾向于向下移动。 R是数据科学家喜欢的语言。但是,其他程序员发现R最初遇到它时有点困惑,因为它以数据帧为中心。如果您有专门的R开发人员团队,则可以使用TensorFlow,Keras或H2O进行研究,原型开发和实验集成,但是我不建议将R用于生产。
其他AI编程选项
当然,Python,Java,C / C ++,JavaScript和R不是唯一可用于AI编程的语言。让我们看一下三种编程语言,它们还没有完全进入前五名的兴衰之列。
LUA
几年前,Lua是人工智能的领导者。借助Torch框架,Lua是深度学习开发中最受欢迎的语言之一,您仍然会在GitHub上遇到许多历史和深度学习工作,这些工作通过Lua / Torch定义了模型。我认为熟悉Lua来研究和回顾人们以前的工作是一个好主意。但是随着TensorFlow和PyTorch等框架的出现,Lua的使用已大大减少。