五种重要的 AI 编程语言

news2024/11/17 13:24:12
推荐:使用 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。

原文链接:五种重要的 AI 编程语言 (mvrlink.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/934802.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何通过开源项目学习编程?

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

[LitCTF 2023]Flag点击就送!

进入环境后是一个输入框,可以提交名字 然后就可以点击获取flag,结果回显提示,需要获取管理员 可以尝试将名字改为admin 触发报错,说明可能存在其他的验证是否为管理员的方式 通过抓包后,在cookie字段发现了 特殊的东西…

服务器安全-修改默认ssh端口

防火墙先打开指定端口,要不修改后连不上(端口需要在65535之内) firewall-cmd --list-ports firewall-cmd --add-port54111/tcp --permanent firewall-cmd --reload-------------------- 先让两个端口同时存在,等配置成功后关闭22端口 vim /etc/ssh/sshd_config重启sshd service…

2023年最新版Windows环境下|Java8(jdk1.8)安装教程

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【JavaSE_primary】 jdk1.8的下载和使用总共分为3个步骤: jdk1.8的下载、jdk1.8的安装、配置环境变量。 目录 一、jdk1.8下载…

GUI GUIDER生成的GUI移植到雅特力MCU平台过程详解(ST/GD/国民/极海通用)

好记性不如烂笔头,既然不够聪明,就乖乖的做笔记,温故而知新。 本文档用于本人对知识点的梳理和记录 一、前言 上一篇我们有介绍NXP GUI Guider工具如何制作和调试GUI,GUI神器 NXP GUI GUIDER开发工具入门教程https://blog.csdn.n…

寄存柜让物品存储变得更简单

寄存柜是一种提供临时性物品寄存服务的设备,通常用于超市、商场、机场、火车站、学校、影院、体育馆等公共场所为用户提供便捷的寄存服务。 寄存柜的种类: 1.行李寄存柜:专门用于旅行者寄存行李和物品的柜子,通常位于机场、火车站…

【Cortex-M3权威指南】学习笔记3 - 存储系统

目录 存储系统存储器映射存储器各种访问属性存储器的缺省访问许可位带操作非对齐数据传输互斥访问端模式 存储系统 存储器映射 CM3 预定义存储器映射简图(CM3 的地址空间是 4GB ) 片上 SRAM:大小 512MB,拥有 1MB 位带区&#xff…

SAP MTS案例教程STO公司间采购前台操作

目录 本章介绍 2 STO主数据操作 3 新增公司间物料(部件公司) 3 新增公司间供应商(整机公司) 9 新增公司间客户(部件公司) 13 STO 计划MRP相关操作 17 新增STO公司间采购订单(整机公司) 17 部件公司计划…

uvm_sequence_library 中添加sequence类型的两种方式

uvm_sequence_library是从uvm_sequence扩展而来的,它是一个容纳了一系列其它sequences类型的容器,在启动时,它会根据模式从这系列sequences中选择并执行它们。如果处于UVM_SEQ_LIB_RAND模式,它的select_rand属性将会随机并作为选择…

集合框架-(Collection/Map)

1.单列集合 1.1基础概要 集合中存储的是对象的地址信息,想要输出对象的信息,需要在具体的类中重写toString()方法 Collection代表单列集合,每个元素数据只包含一个值 List集合:添加的元素可以是有序、可…

时序预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机时间序列预测(多指标评价)

时序预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机时间序列预测(多指标评价) 目录 时序预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机时间序列预测(多指标评价)效果一览基本描述程序设计参考资料 效果一览 基本描述 MATLAB实现DBN-SVM深度置信网络结合支持向量机…

11. 盛最多水的容器(c++题解)

11. 盛最多水的容器(c题解) 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大…

【linux进程概念】

目录: 冯诺依曼体系结构操作系统进程 基本概念描述进程-PCBtask_struct-PCB的一种task_ struct内容分类组织进程查看进程 fork()函数 冯诺依曼体系结构 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺…

[C++] STL_vector 迭代器失效问题

文章目录 1、前言2、情况一:底层空间改变的操作3、情况二:指定位置元素的删除操作4、g编译器对迭代器失效检测4.1 扩容4.2 erase删除任意位置(非尾删)4.3 erase尾删 5、总结 1、前言 **迭代器的主要作用就是让算法能够不用关心底…

【业务功能篇85】微服务-springcloud-Nginx-反向代理-网关

Nginx域名 1.hosts文件 在c:/window/system32/drivers/etc/hosts文件,我们在这个文件中添加 192.168.56.100 msb.mall.com注意如果是没有操作权限,那么点击该文件右击属性,去掉只读属性即可 通过这个域名访问到Nginx服务 2.Nginx的方向代…

[GDOUCTF 2023]EZ WEB

进入环境有一个点击标签,点击 后触发提示,flag就在附近 习惯性查看源码,得到路径提示 访问后,得到源码,源码中存在三个路由,前两个都是GET方式,已经访问过了,最后一个PUT是什么请求…

MQ-整体回顾

one 异步、解耦、削峰 two 深入理解核心编程模型及消息应用场景 主要通过多了QUEUE进行交换消息 虚拟机的消息是不能发到另外虚拟机的Queue上的 生产者创建connection建立连接通过connection声明channel信道通过channel声明队列声明好队列后发送消息消费者拿到connectio…

SketchBook软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 SketchBook是一款由Autodesk公司开发的绘画和绘图软件,它适用于各种操作系统和平台,如Windows、macOS、iOS和Android等。 SketchBook是一款专业的绘图软件,旨在满足各种绘画和绘图需求。它提…

无涯教程-聚类算法 - K-Means

K-均值聚类算法计算质心并进行迭代,直到找到最佳质心为止,它假定群集的数目是已知的,它也称为扁平聚类算法。通过算法从数据中识别出的簇数以K均值中的" K"表示。 在该算法中,将数据点分配给群集,以使数据点…

Linux page migration源码分析

目录 概述 __unmap_and_move函数 step1: Lock the page to be migrated step2: Insure that writeback is complete. step3: Lock the new page that we want to move to. step4: All the page table references to the page are converted to migration entries. st…