本文讲述用于人工智能编程的顶级编程语言,AI工程师和相关从业者可从中选择适合他们项目所需要的语言,你Pick哪个呢?
作者 | Claire D
头图 | 视觉中国
出品 | CSDN(ID:CSDNnews)
以下为译文:
人工智能已成为我们日常生活不可或缺的一部分,它被广泛地应用到几百种实际场景中,极大地便利人们的工作和生活。
随着近年来的发展,人工智能促进企业的发展,这该归功于底层编程语言核心的改进。
随着人工智能的蓬勃发展和编程语言的持续改进,对高效、熟练的程序员和工程师的需求激增。虽然有很多编程语言可以让你在人工智能上开发领域轻松起步,但是没有一种编程语言可以成为人工智能编程的“一站式”解决方案,因为每种编程语言都有自己的独特之处。目的不同,对语言的要求也会不同。
接下来,我将列出一些最受欢迎的人工智能编程语言,一起看下:
Python
Python是有史以来最强大的编程语言。——Pau Dubois
Python诞生于1991年。据一项民意调查显示,超过57%的开发人员更愿意选择Python,而不是C++作为开发人工智能解决方案的编程语言。Python易于学习,为程序员和数据科学家们提供了一个更轻松地进入人工智能开发世界的入口。
Python是一个关于程序员需要多少自由的实验。太多的自由,会导致没有人能读懂别人的代码;太少的自由,会伤害到语言的表现力。——Guido van Rossum
使用Python,你不仅可以获得优秀的社区支持和大量的库,还可以享受编程语言提供的灵活性。Python最有可能让你受益的一些特性是:平台独立性和可以用于深度学习和机器学习的广泛框架。
使用Python编程的乐趣应该是看到简洁、可读性强的类,这些类使用简洁而清晰的代码(而不是一堆无聊至死的琐碎代码)完成了大量的操作。——Guido van Rossum
下面是一段Python代码的示例:
Python代码示例片断
Python的一些最受欢迎的库,列表如下:
-
TensorFlow,用于解决机器学习的工作负载和使用数据集问题。
-
scikit-learn,用于培训机器学习模型。
-
PyTorch ,用于计算机视觉和自然语言处理。
-
Keras,作为高度复杂的数学计算和操作的代码接口。
-
SparkMLlib,类似于Apache Spark的机器学习库,使用算法和实用程序等工具使得机器学习对每个人都可以很轻松。
-
MXNet,作为Apache的另一个库,用于简化深度学习工作流。
-
Theano,作为定义、优化和评估数学表达式的库。
-
Pybrain,用于强大的机器学习算法。
此外,对GitHub存储库贡献的分析结果显示,Python已经超越Java,成为第二大最受欢迎的编程语言。实际上,Stack Overflow认为它是“增长最快”的主流编程语言。
图源:Octoverse
适合初学者的Python课程:
-
3个供初学者学习的免费Python课程:2020版
https://hackernoon.com/3-free-python-courses-for-beginners-2020-edition-j7c23y3u
hackernoon.com网站提供的最好的免费Python课程,如果你想扩展你的Python知识,那么请来这里。
-
Python训练营:学习Python语言和编码的培训营
https://www.udemy.com/course/complete-python-bootcamp/?LSNPUBID=JVFxdTr9V80&ranEAID=JVFxdTr9V80&ranMID=39197&ranSiteID=JVFxdTr9V80-lB6TwxSdouentAk36.qjmw
这是Udemy上学习Python编程语言的最全面、最直接的课程!
Java
一次编写,到处运行。
Java被认为是世界上最好的编程语言之一,过去20年大伙的使用证明了这一点。
Java编程语言具有高度的用户友好性、灵活性和平台独立性,它已经以各种方式被用于人工智能的开发当中,以下是一些例子供你了解:
-
TensorFlow
TensorFlow支持的编程语言列表也包括带有API的Java。它对Java的支持不像其他完全支持的语言那样功能丰富,但它已经存在,并且正在以很快的速度得到改进。
-
Deep Java Library
由Amazon构建,使用Java来创建和部署深度学习能力。
-
Kubeflow
Kubeflow用于在Kubernetes上轻松部署和管理机器学习堆栈,提供现成的机器学习解决方案。
-
OpenNLP
Apache的OpenNLP是一个用于自然语言处理的机器学习工具。
-
Java机器学习库
Java ML为开发人员提供了几种机器学习算法。
-
Neuroph
在Neuroph GUI的帮助下,Neuroph使得使用Java开源框架设计神经网络成为可能。
如果Java有真正的垃圾回收,那么大多数程序在执行完后都会把自己从内存中删除。——Robert Sewell
Java代码的示例片断如下:
Java代码的示例片断
适合初学者的Java课程:
-
供初学者在线学习的五个最好的Java编程课程
https://javarevisited.blogspot.com/2018/05/top-5-java-courses-for-beginners-to-learn-online.html
如果你是一名计算机学科的毕业生,或者是想学习Java并寻找一些很棒的资源的人,那么请来这里吧。
R语言
官网
R语言是由Ross Ihaka和Robert Gentleman开发,1995年推出第一个版本。目前它由R开发核心团队维护。R语言是S编程语言(以统计和绘图为目的)的一种实现,它被用来辅助开发统计软件和数据分析。
R语言被开发人员大量地用于人工智能编程,主是是因为它具有以下两个特点:
-
R语言擅长处理大量数据的基本特性,相比带有未经优化的NumPy包的Python语言来说,更有优势。
-
使用R语言,你可以以各种编程模式工作,如函数式编程、矢量计算和面向对象编程。
R语言可供使用的一些AI编程包有:
-
Gmodels,提供了用于模型拟合的多个工具的集合。
-
Tm,作为一种文本挖掘应用的框架。
-
RODBC,作为R语言的ODBC接口。
-
OneR,用于实现One Rule机器学习分类算法,适用于机器学习模型。
R语言因其如下特点/功能,在数据挖掘人员和统计人员中被广泛采用:
-
各种各样的库和包,以扩展其功能。
-
积极支持的社区。
-
能够与C、C++和FORTRAN一起工作
-
多个软件包帮助功能扩展。
-
支持生成高质量的图形
一个有趣的R语言应用例子:
使用R语言制作2019新冠肺炎(Covid-19)交互式地图:
https://www.r-bloggers.com/covid-19-interactive-map-using-r-with-shiny-leaflet-and-dplyr/
使用R语言制作2019新冠肺炎(Covid-19)交互式地图
Prolog
Prolog是Programming in Logic(逻辑编程)的简称,Prolog语言最初出现于1972年。它为人工智能开发,特别是自然语言处理提供了一个令人兴奋的工具。Prolog语言最适合创建聊天机器人,ELIZA是用Prolog创建的第一个聊天机器人。
第一个成功的聊天机器人,图源medium
要理解Prolog,你必须熟悉指导它工作的一些基本术语:
-
Facts(事实)定义了真实的声明。
-
Rules(规则)定义了有附加条件的声明。
-
Goals(目标)定义了根据知识库确定的报表提交的位置。
-
Queries(查询)定义如何使你的声明真实,以及如何对事实和规则进行最终分析。
Prolog提供了两种实现人工智能的方法,这两种方法已经在实践中使用很长时间了,并且在数据科学家和研究人员中广为人知:
-
符号方法(Symbolic Approach):包括基于规则的专家系统、定理证明、基于约束的方法。
-
统计方法(Statistical approach):包括神经网络、数据挖掘、机器学习等。
Lisp
用来创建一个有着N维输入和M个输出单元的单层感知器的Lisp代码
Lisp是List Processing的简称,它是仅次于Fortran的第二古老的编程语言。Lisp被称为人工智能的创始之父之一,由约翰·麦卡锡(John McCarthy)于1958年创建。
Lisp是一种语言,它能让你做到别人告诉你不可能做到的事情。——Kent Pitman
Lisp作为一种实用的面向数学符号处理的编程语言,它很快成为开发人员的人工智能编程语言的选择。Lisp如下的一些特性,使其成为机器学习人工智能项目的最佳选择之一:
-
快速原型创建
-
动态对象创建
-
垃圾回收
-
灵活性
随着其他与之竞争的编程语言的重大改进,Lisp特有的一些特性也应用到其他语言中。采用了Lisp开发的一些著名项目包括Reddit和HackerNews。
就Lisp而言,你知道它是世界上最美丽的语言,至少在Haskell出现之前是这样。——Larry Wall
Haskell
官网
Haskell发布于1990年,以著名数学家Haskell Brooks Curry的名字命名,它是一种纯函数式和强静态类型的编程语言,经常和延迟计算和较短的代码搭配使用。
Haskell被认为是一种非常安全的编程语言,与其他编程语言相比,它在错误处理方面提供了更大的灵活性。在Haskell中很少发生错误。即使它们确实发生了,大多数非语法错误都是在编译阶段,而不是运行时捕获的。Haskell提供的一些功能包括:
-
强大的抽象能力
-
内置的内存管理
-
代码可重用性
-
易于理解
SQL、Lisp和Haskell是我见过的仅有的编程语言,在这些语言中,人们花在思考上的时间比写代码的时间要多。
-
Philip Greenspun
Haskell的特性有助于提高开发人员的工作效率。Haskell与其他编程语言非常相似,只是由一个小众的开发团队使用。抛开这些挑战不谈,Haskell可以证明它与其他竞争语言一样适合人工智能开发,并且越来越多地被开发社区采用。
Julia
Julia是一种高性能、通用的动态编程语言,适合创建几乎任何应用程序,尤其非常适合数据分析和计算科学。能够与Julia一起工作的各种工具包括:
-
流行的编辑器,如Vim和Emacs。
-
集成开发工具,如Juno和Visual Studio。
Julia源代码的目录结构
Julia提供的下列特性,使其在人工智能编程、机器学习、统计和数据建模中成为一个不可或缺的选项:
-
动态类型系统
-
内置的包管理器
-
能够进行并行和分布式计算
-
宏和元编程能力
-
支持多个调度
-
对C语言函数的直接支持
Julia是为消除其他编程语言的弱点而构建的,它可以与TensorFlow.jl、MLBase.jl、MXNet.jl等工具集成,用于开发机器学习应用程序,这些工具充分利用了Julia提供的可伸缩性。
Google Trend – Julia的用户数随时间变化图:
图源:Google trends
2019Julia开发大会的介绍视频:https://www.youtube.com/user/JuliaLanguage
有了以上几种人工智能编程语言可供选择,人工智能工程师和科学家们可以选择适合他们项目需要的语言。每一种人工智能编程语言都有各自的优缺点。
随着这些语言的不断改进,很快人工智能的开发就会变得比现在更加轻松和高效,更多人就可以加入到这股创新浪潮中来。好的社区支持使得新人们的生活更加美好,社区对扩展计划的贡献使每个人的编程工作生活更加轻松。
原文:https://towardsdatascience.com/top-programming-languages-for-ai-engineers-in-2020-33a9f16a80b0
本文为 CSDN 翻译,转载请注明来源出处。
— 推 荐 阅 读 —
点个“在看”,升职加薪喔⬇️
原文链接:https://blog.csdn.net/sinat_32849897/article/details/105213251