Python速度那么慢,为什么还经常用于机器学习?

python 在机器学习时,运行计算时,调用numpy 库,这个库速度非常快,和c语言的一个级别。现在运算量大的 机器学习 算法,都用 gpu,tpu 等硬件提速,如果靠cpu,无论采用什么编程语言,都不可能 达到要求,类似 比特币挖矿,都用矿机,用cpu 挖就赚不到钱,比电费多不了多少。机器学习 采用硬件提速 也是这个道理。所以和上边采用的编程语言 关系不大。 python 编程速度快,算法编程实现是,可以大大节约 开发人员的时间,减少软件错误。

python,是最适合机器学习的,所以被广泛采用。

python,只所以在桌面软件,服务器等大型软件上,采用的少,主要原因是 和 c以及java 相比,python 不利于代码的保密。而机器学习,不需要将算法代码,发布给用户,所以没有这方面问题。

Python是机器学习最好的编程语言之一,和R语言一样,很快将会成为学术和研究领域统治者。但为什么Python在机器学习领域如此受欢迎?

Mike Driscoll等五位Python专家和机器学习社区人士分享了他们的观点,下面就让我们一睹为快。

编程是一项社交活动 ,Python社区已经认识到了这一点

Glyph Lefkowitz(@ glyph)Python网络编程框架Twisted的创始人,在2017年荣获PSF社区服务奖

人工智能是一个覆盖面很广的词汇,它包含了当前计算机科学研究中最先进的技术领域。

曾有一段时间,我们普遍认为基本图遍历东西就是AI。那时候,Lisp是人工智能的主要语言,不仅仅是因为它是一种更高级的语言,还因为研究人员更容易用它来做快速原型。我认为目前Python已经一定程度上快要取代Lisp,除了Python也是高级语言以外,它还拥有出色的第三方库生态系统,以及对底层操作系统的良好兼容性。

如果你不这么认为,那么允许我再描述的清楚一些。我不打算精确的描述Python在程序设计架构中的位置,只是说Python和Lisp都处于相同的语言类别,它们在资源回收、内存安全、模块、名称空间和高级数据结构上有很多相似之处。

对于机器学习或者说对于大家谈论更多AI而言,我有更清晰的答案。 NumPy及其生态系统的存在使得研究人员可以进行高性能的数据处理,从而提高工作效率。机器学习需要大量的数据处理,你懂的。

Python社区致力于为非程序员提供指南和生态系统支持,这无疑增加了其在数据科学和计算科学这两个姐妹学科中的使用。大量的统计科学家、天文学家、生物学家和商业分析师已经成为Python程序员,并且为社区贡献新的代码。编程可以说是一种社交活动,Python社区比任何其他语言都认同这一点。

机器学习是一个集成度很高的学科,因为任何AI /机器学习系统都需要从现实世界中提取大量数据并作为训练数据输入到系统中,Python大量库函数构建的生态系统让它能更好的访问和转换数据。

Python允许用户关注真正的问题

Marc-Andre Lemburg(@malemburg)PSF联合创始人兼eGenix首席执行官

首先,对于没有受过计算机科学培训的技术人员,Python非常容易理解。其次,当你需要集成外部库文件时,它没那么复杂,非常容易上手。

在Numeric(现在是NumPy)发布之后,Python增加了IPython 编辑器(现在是Jupyter 编辑器)、matplotlib和许多其他工具,这些编辑器让开发更加直观。

与其他领域一样,Python是一种理想的集成语言,它将底层技术封装起来,允许用户关注真正的问题,而不是花时间在实现细节上。除了为用户提供更方便的功能之外,对于那些想要在底层集成外部库的工程师,Python作为一种“胶水”语言同样表现出色,这主要得益于Python可以通过C API接口被友好访问。

对于数学和面向数据的人来说,Python非常容易使用

Sebastian Raschka(@rasbt)研究人员和Python机器学习的作者

我认为有两个主要原因,它们是非常相关的。第一个原因是Python非常容易阅读和学习。

我认为大多数从事机器学习和人工智能的人员都希望以最方便的方式解决问题,重点是研究和应用技术,编程只是一个让你到达那里的工具。编程语言学习起来越舒服,进入门槛就越低,尤其是对于那些数学和统计背景的技术人员而言。

Python可读性是极好的,这有助于优化和更新代码,这在机器学习和AI领域是非常重要的。人工智能和机器学习工程师经常需要尝试不同的实现方法,这需要编程语言既要能实现复杂算法又要保持语言透明,Python毫无疑问在这一点做的非常好。

第二个主要原因是,Python本身就是一种非常易于访问的语言,我们在其之上有很多优秀的库,这使得我们的工作变得更容易。没有人愿意花时间从头开始重新实现基本算法(除了机器学习和人工智能的基础研究)。大量Python库帮助我们专注于比重新发明轮子更令人兴奋的事情。

Python也是一种优秀的封装语言,它集成了C / C ++算法和CUDA / cuDNN以提高算法性能,这也就是为什么现有的机器学习和深度学习库在Python中高效运行的原因。这对于机器学习和AI领域的工作是非常重要的。

总而言之,我会说Python是一种伟大的语言,它可以让研究人员和从业者专注于机器学习和AI,而不是其他的事情,这确实很棒!

Python具有对科学计算有吸引力的功能Luciano Ramalho(@ramalhoorg)ThoughtWorks的技术负责人和PSF的同事

最重要和最直接的原因是NumPy和SciPy库支持scikit-learn这样的项目,它目前几乎是机器学习的事实标准工具。

首先NumPy,SciPy,scikit-learn和其他许多库被创造出来的原因是Python有一些功能对科学计算非常有吸引力。 Python有一个简单而一致的语法,可以让软件工程师以外的人更容易使用编程。

另一个原因是运算符重载,它使代码可读和简洁。然后是Python的缓冲协议(PEP 3118),这是外部库在处理类似数组的数据结构时可与Python高效互操作的标准。最后,Python为科学计算提供了丰富的库生态系统,吸引了更多的科学家参与丰富这个系统。

Python是严格和一致的Mike Bayer(@zzzeekRed Hat的高级软件工程师,SQLAlchemy的创始人)

当我们开发算法时,我们一定希望把优化的算法放入库以便保留起来,就如同scikit-learn,然后我们分享我们是如何组织和处理数据并继续迭代。你瞧,我们就是这么干的,不是吗?

高级脚本语言非常适合人工智能和机器学习,因为我们可以快速更新并重试。我们创建的代码大部分代表实际的数学和数据结构,而不是模板。

像Python这样的脚本语言就很好,因为它是严格和一致的,每个人都可以更好地理解对方的Python代码,相反的,其他语言则会有混淆和不一致的编程范例。

IPython编辑器等工具的可用性很好,使得我们可以在全新领域迭代和分享我们的算法。 Python强调了工作的核心,简化了我们如何给计算机指令,自动完成任何你不需要考虑的事情,这显然是极好的。

2022-01-26

2022-01-26