为什么Python会成为人工​智能​(AI)主要开发​语言​

2018-07-18 20:45:09 电话机器人

为什么人工智能(AI)选择了Python语言?

今天IT培训网就来为大家详细解读一下!


让我们先了解现在所处的时代吧,现在正处于人工智能时代,你可以看到各种人工智能的产品遍布你周围,你家里有扫地机器人,有各种智能家居,你去超市有无人刷脸超市,路上有无人驾驶的汽车,天上飞的有无人机,等等这些无不在说明一件事,人工智能时代已经来临了,而且在不远的几年内,不超过5年,机器人将会走进千家万户。

所有人都将会是人工智能产品的使用者,维护者和研发者,人工智能将会出现一个金字塔模型,有5%左右的人工智能专家、科学家处于金字塔顶端,而95%甚至更多的人都将会是人工智能的技术员,都是人工智能工程师、人工智能应用工程师和人工智能工具用户。

这么一个人工智能时代,这么多的人都将会是人工智能的技术员,那么有没有对应的一门语言来匹配这个时代呢?

想要回答这个问题,我们先要明确几件事情:这门语言得足够简单,简单到小学生都能学会才行;这门语言的工具或者库得足够丰富,丰富到你随意可以找到你想要的工具或者库来实现你的功能;这么语言让你写的代码得足够少,少到随便写两行代码就可以实现强大的功能,能符合这些要求的,目前为止只能找到一门语言,那就是Python。

英文意思是大蟒蛇的意思,怪不得有本Python技术书的作者是巴西人,他说自己之所以坚定的选择Python,是因为他小时候经常梦到未来世界将由一条大蟒蛇(Python)统治。


当时这本书的出版时间是2004年,我之前觉得这哥们挺可怜,做个梦都能梦到这么恐怖的场景,但今天看来,也许他只是像黑客帝国的程序员安德森一样,不小心穿越到未来,并且窥探了世界的真相。

Python之所以能奠定人工智能领域老大的地位,还得从几个厉害的产品来看看。

01

谷歌的TensorFlow,是2015年谷歌开源的一个人工智能平台,一个深度学习框架,可被应用到语言识别,图像识别等多项机器深度学习的领域,它可以小到一部智能手机,大到数千台数据中心服务器的各种设备上来运行。

谷歌旗下的阿尔法狗(AlphaGO)正是用了深度学习的原理来学习围棋棋谱的,于2016年3月以4:1的成绩打败了围棋世界冠军、职业九段棋手李世石,2017年5月以3:0的成绩打败了排名世界第一的围棋冠军柯洁。


而且2016年末2017年初,阿尔法狗在中国棋类网站上以“大师”(Master)为注册帐号与中日韩数十位围棋高手进行快棋对决,连续60局无一败绩,从此,围棋界公认阿尔法围棋的棋力已经超过人类职业围棋顶尖水平。

02PyTorch框架,Facebook于2017年初将其开源,发布一周年之后,在Github网站上,十佳开源项目排名,PyTorch排名第一。

PyTorch也是一个深度学习框架,可以很快上手,轻松实现自己的想法,可以用tensor(张量)的思维来思考代码,一切操作皆tensor,一切tensor能做的,PyTorch都能做,而且做的跟tensor一样,这个框架也是一样跟TensorFlow一样强大。

03当前还有其他深度学习框架如Keras、Caffe、Theano等,都能轻松解决各种人工智能的学习问题。

Python拥有如此多的深度学习框架,这是别的语言所不具备的,同时Python还具备了以下更多优点:

1、Python最大的优点是开发效率极高,拥有各种丰富的库,很多开发都是直接使用别人做好的轮子(库)就行,这就使得开发的周期极短,效率极高。

2、Python的语法及其简单、易学,而且世界范围内,Python正在成为中、小学编程入门教学的首选语言。在中国,Python即将列入高考,中国的中小学生已经在学Python了。

3、Python是跨平台的,在不同平台开发的Python程序,可以轻松移植到不同平台,移植性好。

04Python的定位很明确,就是要做一种简单、易用但专业、严谨的通用组合语言,直白点说就是要做“胶水语言”,能让普通人很容易上手,把各种程序元件拼到一起即可使用,能协调运作。正是因为这个定位,Python始终把语言本身的优美一致放在奇迹妙招前面,始终把开发者的效率放在CPU的效率前面,始终把横向拓展能力放在纵深能力前面,长期坚持这些战略,为Python带来了其他语言望尘莫及的丰富生态。

当然,Python也有其缺点,它语法上自成一派,让很多老手感到不习惯;“裸” Python的速度很慢,在不同的任务上比C 语言大约慢数十倍到数千倍不等;(bbs.cnitedu.cn)由于全局解释器锁(GIL) 的限制,单个Python 程序无法在多核上并发执行;

Python 2 和 Python 3 两个版本长期并行,很多模块需要同时维护两个不同的版本,给开发者选择带来了很多不必要的混乱和麻烦;由于不受任何一家公司的控制,一直以来也没有一个技术巨头肯死挺 Python。

但是Python可以和其他语言相互配合得很好,为了解决Python执行速度慢的问题,很多程序员就用C来解决。正是由于 Python 语言本身慢,所以大家在开发被频繁使用的核心程序库时,大量使用 C 语言跟它配合,结果用 Python 开发的真实程序跑起来非常快,因为很有可能超过 80% 的时间系统执行的代码是 C 写的。

更重要的是Python的包装能力、可组合性、可嵌入性都很好,可以把各种复杂性包装在Python模块里,暴露出漂亮的接口。很多时候,一个程序库本身是用C/C++写的,但你会发现,直接使用C或者C++去调用那个程序库,从环境配置到接口调用,都非常麻烦,反而隔着一层,用其Python包装库更加优雅,又快又漂亮,这些特点到了人工智能领域中,就成了Python的强大优势。

最重要的是现在各大巨头公司都已经在使用Python来搞人工智能了,Google、Facebook、华为、阿里、百度、京东等公司都在人工智能领域有所作为了。