欢迎光临散文网 会员登陆 & 注册

六星源课堂:开发人工智能为什么要用Python?

2022-04-19 09:58 作者:六星源课堂  | 我要投稿

虽然现在不管圈里圈外,只要说到做数据分析、机器学习甚至人工智能,好像已经言必称Python,不过,这些领域并非天生就得是Python,别的不说,就说人工智能。

人工智能领域出了很多语言,如果你早个几年学习人工智能,可能连Python的影子都看不见,大家一般推荐的都是LISP、Prolog,哪怕是业内人士看这些语言都是又古老又偏门,尤其是Prolog,好像除了人工智能就没别的地方能见到,但是Prolog做规则推导有奇效,大家也就一直沿用下来了。

现在呢?现在不怎么提了,一来是因为基于统计的机器学习一直占据了人工智能的顶流位置,规则推导说得不多,二来是Python迅速崛起,人称“人工智能第一语言”,就连规则推导都可以用Python来做。

但是,现在我们要问的是:为什么Python能成为“人工智能第一语言”呢?

现在Python很热,所以介绍Python的文章特别多,大家一定也看腻了诸如Python简单易用、灵活性高之类好像说了很多,又好像什么都没说的介绍。我们说点接地气的。

在我来看,Python最大的优点就是“拎包入住”

如果大家去租房,一定能看到一个词,叫“拎包入住”,这个词经常作为租屋的重要卖点,也反映出消费者对租屋的一个重要需求。

什么叫拎包入住?租房行业对这个词的准确定义有争议,很多人在纠结家私家电齐全到底是不是等同于拎包入住,不过意思是清楚的,我作为租客,啥都不用准备,只需要把行李拉过来就可以住下了,这就是拎包入住。

换句话说,有不少租屋是达不到拎包入住的标准的,本来我只是要满足“住”的需要,可是因为租屋条件有欠缺,导致我不得不先客串一回装修师傅,需要先做一些其它的准备,然后才能做我想要做的事。

好了,说回编程语言。很多人喜欢从语言风格、语法设计甚至语法糖等等角度来比较编程语言的优劣,不过,我更看重另一样东西:生态环境。

以前我们说C++多么多么爆红,后来又说Java多么多么爆红,现在又轮到了Python,到底这些“网红语言”的成功背后靠的是什么?真的只是因为编程语言自身的优秀设计吗?

我认为,一款编程语言是否流行,设计当然是很重要的因素,但生态环境的成熟可能是更为直接的原因。我们经常能听到的一个关于编程的问题是,A语言早就已经过时了,现在已经有了新兴的B语言,为什么现在还要用A语言开发项目呢?

这个问题通常有两种可能,一种是项目已经用A语言做了大量开发,替换成B语言又得高楼平地起,另一种是B语言还太新,某个专业领域还没有可用的或者好用的库,同样也得高楼平地起。这两种都可以归结为同一个原因:使用B语言并不能拎包入住。

02 数据科学方向的热门Python包介绍

都知道Python在人工智能、大数据方向很热,但是,真的有任务来了,究竟该用哪些包呢?很多介绍Python的教程,是真的就只介绍Python的语法,语法当然很重要,要想使用Python,首先当然得掌握语法。

但是,前面我们也进行了介绍,Python的优势在于拥有许多成熟的包,让你可以“拎包入住”,也即可以专注于任务本身,所以,我们要用Python,不但需要掌握Python的语法,同时也要了解都有哪些好用的Python,都可以用来做什么。

Python好用的包非常多,覆盖领域也是五花八门,都列出来反而显得凌乱,这里我们只介绍数据科学和人工智能方向用得多的包。

首先是pandas。这是数据分析用得非常多的包,尤其擅长各种格式化数值分析,前面提到的Python广告只说用Python,并没有说明该使用什么包,不过,既然是替代电子表格进行数据分析,想必肯定会用到pandas。

接着是scikit-learn,这个包写法很多,也有人喜欢简写为sklearn。这是个著名的机器学习包。scikit-learn非常好用,推荐大家都试一试,尤其是觉得机器学习数学很难,一看到机器学习几个字就产生抵触心理的同学。

为什么这么说呢?我们都知道,机器学习不是一种方法,而是一个大框,里面堆满各种算法模型,譬如线性模型、树形模型、支持向量机模型、以及现在在机器学习领域非常热门的神经网络模型。

每一种模型背后都依靠一套复杂的数学逻辑来支撑模型运作。在很多人看来,光是看懂机器学习模型的数学表达式就已经十分费劲,需要很深的数学功底,更不用说手推公式和实战中使用了。于是,很多人觉得机器学习“可远观而不可亵玩焉”。

当然,这里面有几个理解误区。是不是需要很深的数学功底才能明白机器学习模型的原理呢?未必,机器学习确实用到很多数学知识,不过,我经常和大家分享的一个观点是:不妨把数学看作只是一种语言,是一门外语,机器学习的运行原理,是用这门外语来描述,所以我们不太容易看懂。

那怎么办呢?跨国交流我们可以找翻译,同样,只要有人看懂了机器学习这里的数学语,然后“翻译”成中文,也就方便大家看得懂了。

另一个误区就是得把机器学习模型的数学原理都学懂弄通了,最好能手推一遍公式,然后才能知道怎么使用。这个理解符合我们长期以来形成的按部就班的印象,不过,就我看来,使用机器学习和开车很像,没必要要求司机都学会造车了才能开车,况且,造车和开车很可能还是并不相同的两条学习曲线,毕竟老技工未必就是老司机。

如果只是想用机器学习解决问题,完全可以另辟蹊径积累经验。方法是什么呢?就是使用scikit-learn,这个包把常用的热门的机器学习模型统统做了非常良好的封装,我们完全可以像调用黑盒函数一样,操作各种机器学习模型来解决实际问题。

最后就是PytorchTensorflowKeras这几个网红深度学习包,Python这一轮走势长红,这几个深度学习包居功甚伟,在背后贡献了大量流量。

现在是深度学习时代,大家都知道深度学习能解决很多以前无解的问题,可是理论设计出来的模型,还得编程实现才能使用。怎么实现呢?就用这几个包,它们把深度学习的各个部件都已经封装好了,使用者只需要像拼装乐高积木一样,把部件拼装成完整的模型。

现在大家应该感到Python真是个宝藏男孩,应该就能更为理解,为什么开发人工智能要用Python,一项人工智能的工程可能涉及到多个环节,而如果选择使用Python,它可以给你提供一条龙服务。

以上就是本次分享的全部内容,想要学习编程的小伙伴们,欢迎前往六星源课堂,获取更多技能与教程~


六星源课堂:开发人工智能为什么要用Python?的评论 (共 条)

分享到微博请遵守国家法律