本文讲述用于人工智能编程的顶级编程语言,AI工程师和相关从业者可从中选择适合他们项目所需要的语言,你Pick哪个呢?作者|gldmjD译者|苏本如,责编|冷艳的诺言头图
本文描述了用于人工智能编程的顶级编程语言,AI工程师和相关从业者可以从中选择适合其项目的语言。你选哪一个?
作者| gldmj D
译者|苏本如,编辑|冷艳的承诺
头部|视觉中国
制作人| csdn (ID: csdnnews)
以下是翻译:
人工智能已经成为我们日常生活中不可或缺的一部分。它被广泛应用于数百个实际场景中,极大地方便了人们的工作和生活。
随着近年来的发展,人工智能促进了企业的发展,这应该归功于底层编程语言核心的完善。
随着人工智能的蓬勃发展和编程语言的不断完善,对高效、熟练的程序员和工程师的需求激增。在人工智能开发领域,虽然有很多编程语言可以让你轻松上手,但没有一种可以成为人工智能编程的“一站式”解决方案,因为每种编程语言都有自己的独特性。不同的目的需要不同的语言。
接下来,我将列出一些最流行的人工智能编程语言,并一起看一看:
Python
Python是有史以来最强大的编程语言。——Pau Dubois
Python诞生于1991年。根据一项民意调查,超过57%的开发人员更喜欢Python而不是C作为开发人工智能解决方案的编程语言。Python易于学习,为程序员和数据科学家提供了更容易进入人工智能开发世界的途径。
Python是一个关于程序员需要多大自由度的实验。太多的自由会导致没有人能够读懂别人的代码;太少的自由会伤害语言的表达能力。——ssdqc van Rossum
使用Python,不仅可以获得优秀的社区支持和大量的库,还可以享受编程语言提供的灵活性。Python最有可能让您受益的一些特性是平台独立性和广泛的框架,可用于深度学习和机器学习。
用Python编程的乐趣应该是看到简洁可读的类,这些类使用简洁明了的代码(而不是一堆无聊琐碎的代码)来完成大量的操作。——ssdqc van Rossum
以下是Python代码示例:
Python代码示例片段
下面列出了一些Python最受欢迎的库:
TensorFlow用于解决机器学习的工作量和数据集的使用问题。Scikit-learn用于训练机器学习模型。PyTorch,用于计算机视觉和自然语言处理。Keras,作为高度复杂的数学计算和运算的代码接口。SparkMLlib类似于Apache Spark的机器学习库,使用算法和实用程序等工具,让每个人都可以轻松地进行机器学习。MXNet作为Apache的另一个库,用于简化深度学习工作流。作为定义、优化和评估数学表达式的库。强大的机器学习算法Pybrain。此外,对GitHub资源库贡献的分析表明,Python已经超越Java,成为第二大流行的编程语言。其实Stack Overflow认为它是“发展最快”的主流编程语言。
来源:十月
初学者Python课程:
初学3门免费Python课程:2020版https://hackernoon.com/3-free-Python-courses-for-初学者-2020版-J7c23y3uhackernoon.com网站提供最好的免费Python课程。如果你想扩展你的Python知识,请到这里来。
Python训练营:在https://www.udemy.com/course/complete-python-bootcamp/?学习Python语言和编码的训练营Lsnpublid=jvfxdtr 9v 80 ranaid=jvfxdtr 9v 80 ranmid=39197 ransiteid=jvfxdtr 9v 80-lb6twxsdountak 36 . 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可以证明它与其他竞争语言一样适合人工智能开发,并且越来越多地被开发社区采用。
zxdxbw
zxdxbw是一种高性能、通用的动态编程语言,适合创建几乎任何应用程序,尤其非常适合数据分析和计算科学。能够与zxdxbw一起工作的各种工具包括:
流行的编辑器,如Vim和Emacs。集成开发工具,如Juno和Visual Studio。
zxdxbw源代码的目录结构
zxdxbw提供的下列特性,使其在人工智能编程、机器学习、统计和数据建模中成为一个不可或缺的选项:
动态类型系统内置的包管理器能够进行并行和分布式计算宏和元编程能力支持多个调度对C语言函数的直接支持
zxdxbw是为消除其他编程语言的弱点而构建的,它可以与TensorFlow.jl、MLBase.jl、MXNet.jl等工具集成,用于开发机器学习应用程序,这些工具充分利用了zxdxbw提供的可伸缩性。
Google Trend – zxdxbw的用户数随时间变化图:
图源:Google trends
2019zxdxbw开发大会的介绍视频:https://www.youtube.com/user/zxdxbwLanguage
有了以上几种人工智能编程语言可供选择,人工智能工程师和科学家们可以选择适合他们项目需要的语言。每一种人工智能编程语言都有各自的优缺点。
随着这些语言的不断改进,很快人工智能的开发就会变得比现在更加轻松和高效,更多人就可以加入到这股创新浪潮中来。好的社区支持使得新人们的生活更加美好,社区对扩展计划的贡献使每个人的编程工作生活更加轻松。
原文:https://towardsdatascience.com/top-programming-languages-for-ai-engineers-in-2020-33a9f16a80b0
本文为 CSDN 翻译,转载请注明来源出处。
热 文 推 荐
☞软件欺诈的骗局揭露:“替罪羊”究竟是如何构建的?
☞遗留代码写的烂,我能怎么办?
☞Python 爬取疫情期间全球股市走向,笑不出来......
☞无代码时代来临,程序员如何保住饭碗?
☞从零开始构建:使用CNN和TensorFlow进行人脸特征检测
☞另一种声音:容器是不是未来?
☞探索比特币独特时间链、挖矿费用及场外交易的概念