今天,我们将探究人工智能/机器学习项目中使用的不同编程语言。除此之外,我们还将学习编程语言在人工智能/机器学习项目中的使用。
让我们言归正题,先从了解市场情况的一条新闻来开始。
新闻报道称,熟练的人工智能/机器学习专业人员市场缺口很大。下图显示了市场对人工智能/机器学习专业人才需求呈上升趋势。
以上招聘信息并未披露完整的情况。根据最近的报告,人工智能/机器学习专利增长了34%。Apple、Google、Microsoft等众多科技巨头纷纷在人工智能领域上投入了巨资。
现在,让我们来看一些事实和新闻。据CNBC报道,人工智能领域不久将裁员180万人;但另一方面,人工智能/机器学习也将在市场上增加230万个工作岗位。
所以说,此时正是你在人工智能/机器学习领域开始职业生涯的好时机。掌握这一领域的技能将会助你打下结实的基础,以便能够在组织中高效地工作。
在人工智能/机器学习领域中,你所需的核心技能之一就是编程技能。到目前为止,有数以千计的编程语言。别担心,你无需学习所有的编程语言。
但并非所有的编程语言都同等重要。在数以千计的编程语言中,只有少数能够幸存下来并为社区服务。伯克利大学的专家们进行了一场有趣的讨论,讨论的是为什么有些编程语言能够存活下来,而有些编程语言则会消亡。他们提出了一些促使编程语言消亡的观点:
Python编程语言自推出以来,在特性和流行度这两个方面都得到了长足的发展。下图展示了它的增长轨迹。
Python之所以人气暴涨是因为它的灵活性、可伸缩性和简单性,以及广泛的特性与库。Python专注于敏捷开发。人工智能和机器学习专业人士喜欢Python,是因为它的简单性。他们不必费时费力地为复杂的机器学习问题编写代码。
如果你想深入人工智能/机器学习领域,Python是你必须学习的第一门语言,也是数据科学、人工智能和机器学习中最受欢迎的编程语言。Python有许多库可以解决大多数数据科学、人工智能和机器学习的问题,例如AIMA、Pybrain、Numpy等。
Python在Web开发领域也得到了广泛的应用。
R编程是一种专门用于解决数值/统计问题的语言。它刚推出时并没有那么受欢迎。然而,数据科学、机器学习和人工智能的发展极大地提高了它的知名度。这是因为数据科学、人工智能和机器学习需要大量的数字特征和库,而这些正是R的“武器库”所具备的。
C和C++也被用于许多机器学习和深度学习库的开发。
C++让你在运行时和性能上占有一席之地。你可以安全地使用它的模板,并将其用于API的泛化。
Java是一种编程语言,它触及了IT行业的许多领域,包括人工智能和机器学习。你可以使用Java虚拟机技术来创建单一版本的应用程序。在Java支持的机器上运行它不会有任何问题。
Java对大型项目(这在人工智能/机器学习中是必不可少的)有良好的支持,易于可视化,调试方便,用户交互体验流畅。得益于它庞大的在线社区,你可以很容易地在网上寻找到帮助。
一些著名的Java应用程序包括:
JavaScript是一种流行的语言,用于编写在线程序和交互式Web应用程序。然而,它已经进入了人工智能/机器学习的世界,并且越来越受欢迎。
你可以找到许多JS库来执行人工智能/机器学习任务。其中一些比较流行的库是:
Julia兼容所有主流硬件,如IBM、Intel、ARM和Nvidia。你会发现它的语法类似于Python、R和MatLab,而且它像C++一样有很高的速度。它消除了在一种语言中对模型估计的需要,并且由于它的易用性和速度快,而产生了对另一种语言的需要。许多大公司利用Julia来完成他们的项目。
2016年,开发者利用Julia的深度学习解决方案,在印度农村地区进行更好的眼科诊断。
这份名单上最后一种语言是Haskell。它于1990年一经问世,就是一种健壮的静态类型语言。有一些著名的组织在他们的项目中使用Haskell,但它在学术界更受欢迎。
Haskell语言为嵌入式领域特定语言提供了支持,这对人工智能研究至关重要。Haskell也非常适合抽象数学,并支持用于开发人工智能算法的高效库。它使用常见的代数结构,如幺半群和模块来提高机器学习算法的效率。
译注:在抽象代数此一数学分支中,幺半群是指一个带有可结合二元运算和单比特的代数结构。幺半群在许多的数学分支中都会出现。在几何学中,幺半群捉取了函数复合的概念;更确切地,此一概念是从范畴论中抽象出来的,之中的幺半群是个带有一个对象的范畴。幺半群也常被用来当做计算机科学的坚固代数基础;在此,变换幺半群和语法幺半群被用来描述有限状态自动机,而迹幺半群和历史幺半群则是做为进程演算和并行计算的基础。幺半群的研究中一些较重要的结论有克罗恩-罗德斯定理和星高问题。
Haskell在概率编程方面也非常出色,这对于人工智能/机器学习开发人员在迭代的编译阶段快速识别错误非常重要。
学习编程语言有很多好处。掌握编程语言,将会增加你在人工智能/机器学习领域找到工作的机会。除此之外,你还可以将该技能应用到其他各种领域,如数据科学、企业软件开发、Web开发等等。
你不需要同时学习人工智能/机器学习中所有的编程语言。先学习一种语言,然后再跳到另一种语言。在掌握一种编程语言之后,再学习领一种编程语言就不难了。我们建议你从Python开始学习的旅程。