五种重要的 AI 编程语言
推荐:使用NSDT场景编辑器助你快速搭建 3D 应用场景
简而言之:决定从哪种语言开始可能会令人生畏。
不用担心!本文将解释 AI 中使用的最流行编程语言背后的基础知识,并帮助您决定首先学习哪种语言。对于每种语言,我们将描述它的基本特征,它做得好的地方,它不足的地方,以及哪种工作最常使用它。
人工智能编程语言的基本路线图
AI 中最重要的五种编程语言是 Python,C++,R,MATLAB 和 Java。在我们深入研究它们之前,让我们先探索一下要先学习哪个。
对于大多数人来说,第一个要学习的编程语言是 Python。它易于学习,适应性极强,并且有许多专门用于机器学习的库。由于这些原因以及更多原因,它是 AI 中事实上的编码语言。接下来要学习什么取决于您的职业目标。
在 Python 之后,你应该学习:
C++:如果你想在机器人、自动驾驶汽车或硬件领域工作。
R:如果你想在学术界或金融业工作。
马特实验室:如果你最终在一家仍在使用 MATLAB 的公司工作(你应该说服该公司转向 Python)。
爪哇岛:如果要构建可扩展的 AI 基础结构。
最后一点建议:不要试图同时学习两种语言。首先专注于擅长 Python。在你达到极限后,根据你的职业目标进行扩展。
请继续阅读,更深入地了解 Python 和其他 AI 编程语言。
您需要了解的五种编程语言
Python
适用于 AI 的最佳全能编程语言。
这是什么? Python 是一种流行的通用编程语言,相对容易学习。它的简单性有助于 AI 开发,AI 社区已采用 Python 作为其事实上的语言。
它做得好吗?Python 之所以流行有几个重要原因。
很简单:与其他编码语言相比,Python 具有简单的语法(您将键入用于创建程序的单词、符号和表达式)。这意味着您将有更多时间投入到重要的事情上:查看数据和调整模型。
用途广泛:您的操作系统支持 Python,无论您使用的是 iOS、Windows 还是 Linux。更重要的是,你不需要修改太多的 Python 程序来让它跨平台运行。
它是开源的:任何人都可以适应、更新或添加到 Python 底层的代码中。因此,Python 社区的许多成员都构建了框架和库,使其几乎可以适应任何机器学习或数据科学任务。
缺点是什么?Python 在执行复杂的数学和统计函数时有局限性。与 C++和 Java 等语言相比,它的运行速度也很慢(见下文)。
是为谁准备的? 我们再说一遍:Python 是机器学习和数据科学中最流行的编程语言。如果你的工作涉及构建机器学习模型和处理大量数据,Python 适合你。但是,如果您从事数据分析、AI 基础设施工作,或者计划在核心 AI 工作之外进行更密集的编程,则可能需要专攻第二语言。继续阅读以了解更多信息。
C++
适用于 AI 基础设施的最佳编程语言。
这是什么? C++ 是通用应用程序中最流行的语言之一。它是 Windows,iOS 和 Linux 等操作系统的支柱;像 Spotify 和 Photoshop 这样的应用程序;像 YouTube 这样的网站;以及视频游戏、银行系统等。对于任何从事自动驾驶汽车或机器人工作的人来说,它也是一门必不可少的语言。
它做得好吗?C++是一种编译语言:它不需要解释器程序,这会增加处理开销。实际上,用 C++编写的程序既快速又高效。
缺点是什么? C++程序的运行可能很有效,但编写它们很复杂——有一个大写的 C 和两个加号。用 C++编写程序需要时间,调试它通常需要更多时间,每次调整超参数时重写它花费的时间比您想象的要多。众所周知,C++很难学。如果你的目标是成为一名数据科学家,那么学习 C++就像学习驾驶直升机,然后只用它来在杂货店购物。
是为谁准备的?C++不太适合大多数数据科学家或机器学习工程师,但它对于人工智能中的某些学科至关重要。
如果你的角色涉及构建或维护人工智能基础设施——其他人用来部署模型或分析数据的核心软件库——那么你绝对应该学习 C++。
大多数从事机器人和自动驾驶汽车的团队都使用 C++作为他们的生产代码,因为它的速度和效率。
芯片和硬件行业的大多数工作都需要 C++。
如果你想参与开源社区,学习 C++是很重要的。许多最流行的 Python 框架和工具包都是用 C++编程的。
R
用于数据分析的最佳编程语言。
这是什么? R 是专门为统计分析而构建的。
它做得好吗? R 是由统计学家为统计学家开发的。它擅长在数据中查找模式并从模型输出中获取见解。出于显而易见的原因,R 还吸引了将其用于统计分析、数据可视化和类似项目的机器学习工程师和数据科学家。与 Python 一样,它是开源的,社区已经为 AI 任务创建了许多框架和库。
缺点是什么?在复杂性方面,初学者会发现 R 比 Python 更难学习。与 Python 相比,R 具有更多用于处理数字的内置功能,但在处理一次使用太多数据的项目时,它也往往会滞后。R?更像啊!
是为谁准备的? R 是数据分析、数据科学和邻近职业的绝佳工具,但它经常被学者使用。如果您找到一份从事财务工作的工作,并且对于在其旧软件中使用它的团队,您可能还需要学习 R。
MATLAB
一种曾经流行的 AI 编程语言,已被 Python 黯然失色。
这是什么? MATLAB 不仅仅是一种编程语言,它是一个由五部分组成的系统,由语言、开发环境、图形可视化工具、数学库和用于用其他语言编写程序的界面组成。MATLAB 专注于矩阵计算。如果您不熟悉矩阵,矩阵是数字数组,并且能够很好地计算它们对于许多机器学习和数据科学应用程序至关重要。
它做得好吗?MATLAB 非常适合处理数值数组。它也非常适合许多其他数学运算,并且具有用于实现机器学习模型的内置功能。这些功能使其比 Python 更具优势,Python 需要用于数学函数和模型实现的附加工具包和框架。在速度方面,它在许多操作中都快速且轻松地超过了 Python。
缺点是什么?MATLAB 的最大缺点是成本:您必须支付费用才能访问系统,并且可能需要支付额外的功能,具体取决于您的目标。这种进入壁垒在一定程度上导致了 MATLAB 在 AI 构建者中的受欢迎程度下降;毕竟,Python 是免费和开源的。最后,与 Python 相比,MATLAB 的语法很难学习。
是为谁准备的?一些雇主和人工智能团队更喜欢 MATLAB,因为他们是传统用户,或者他们的目标需要更多的数学魅力。有趣的事实:Andrew Ng 最初的机器学习课程是使用 MATLAB 教授的。当 Andrew 和他在 DeepLearning.AI 和斯坦福大学的团队在 2022 年对机器学习专业化进行现代化改造时,其中一个关键的升级是切换到 Python。
Java
一种快速、通用的编程语言,可用于构建可扩展的 AI 基础架构。
这是什么? Java 在很多方面与 Python 相似:它是流行的,开源的,并且有许多专门用于机器学习和数据科学的框架和工具包。Java 要老得多,因此它得到了许多组织的遗留支持。它在技术上也比 Python 更复杂。这意味着它比 Python 和 R 更难学习,但它可以更有效地执行程序。
它做得好吗?Python 可以做的所有事情,Java 也可以做得很好——在某些情况下,也许更好。例如,它具有用于数据科学、分类、深度学习等的框架。Java 比 Python 有更多的规则,这使得破解或滥用代码变得更加困难。它可用于构建用于部署机器学习模型的完整堆栈、后端、大规模基础结构。
缺点是什么?Java 的学习曲线比 Python 更陡峭(尽管没有 C++那么陡峭)。用 Java 编写程序也比 Python 花费更多的时间,并且由于它们的复杂性,这些程序通常需要更多的调试。这些减速带会减慢机器学习模型的快速原型制作速度。最后,在开发以 AI 为中心的工具方面,Java 的社区并不像 Python 那样活跃,因此 Java 对于范围更窄的机器学习和数据科学任务很有用。
是为谁准备的?如果不是因为它的复杂性,Java 可能是主要的 AI 编码语言。但是,您可能只需要在构建 AI 基础架构或部署机器学习产品的角色时才需要学习它。对于初学者来说,Python 是一个更安全的选择。与此同时,您仍然可以每天早上在杯子里享受 java。
吴恩达关于学习编程的提示
学习编码的最好方法之一是承担编码项目。吴恩达建议,从小处着手,一个项目你可以在业余时间完成一两个星期。目标不是构建一个改变世界的应用程序,而是将您的知识付诸实践并从错误中吸取教训。
在处理项目时,编码人员通常会使用 Google 或 Stack Overflow 来查找适合其需求的预先编写的代码行。这是一种高效的工作方式,您也可以随意这样做。但是,不要只是复制和粘贴你找到的东西,Andrew Ng 说。相反,请自己重新键入。这样做的身体行为将为你的大脑建立肌肉记忆,帮助你内化概念和语法。继续这样做,您将成为发布其他人复制的代码的人!
在 2020 年给他的时事通讯《The Batch》读者的一封信中,吴恩达写道:
“当你试图掌握一种编程技术时,请考虑以下做法:
阅读一行代码,然后自己输入。(在打字时不查看参考代码即可执行此操作的奖励积分。
了解算法,然后尝试自己实现它。
阅读研究论文并尝试复制已发表的结果。
学习一段数学或定理,并尝试从一张白纸开始自己推导它。
结论
编码是人工智能建设者的一项基本技能。事实上,吴恩达(Andrew Ng)将编码比作读写能力:“代码是人机交流最深层次的形式。随着机器在日常生活中变得越来越重要,这种沟通变得越来越重要。
那么,你应该学习哪种语言呢?对于大多数机器学习工程师和数据科学家来说,最好的选择是 Python。它易于学习,快速实施,并且有大量为 AI 量身定制的附加组件。你可能会想学习一点 Python,然后学习一点 R,一点 Java,等等,以便更加通用。我们建议不要这样做。在你改变之前,专注于获得一个好的 Python。
版权声明: 本文为 InfoQ 作者【3D建模设计】的原创文章。
原文链接:【http://xie.infoq.cn/article/e0b4ecdb516e7b6c6151b83b8】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论