自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

開發(fā)人工智能為什么要用Python?

開發(fā) 后端
大家一定看膩了諸如Python簡單易用、靈活性高之類好像說了很多,又好像什么都沒說的介紹。我們說點接地氣的——風(fēng)頭正勁的Python。

現(xiàn)在Python很熱,熱到什么地步?

[[411879]]

我經(jīng)常在App里看到有一條視頻廣告,形式略有不同,但總的來說角色就兩個,一個很兇的主管和一個很困擾的下屬,很兇的主管布置了一個很急的活,困擾的下屬撓耳撓腮,委屈說用電子表格根本不可能趕得出來,很兇的主管這時更兇了,啪啪啪一通操作,說用Python只要5分鐘就出來了,還不快去學(xué)!

我覺得這條廣告最有意思的地方,在于兩個角色都西裝革履,一看就很不程序員,更像是習(xí)慣一臉嚴肅坐在CBD里吹冷氣的商務(wù)人士,以前我以為這是廣告策劃的一個Bug,每次看到這里都被這反差萌逗樂,直到有一天,有位做金融的朋友問我說Python好不好學(xué),我才知道Python真的已經(jīng)火出圈了。

先說一點,雖然現(xiàn)在不管圈里圈外,只要說到做數(shù)據(jù)分析、機器學(xué)習(xí)甚至人工智能,好像已經(jīng)言必稱Python,不過,這些領(lǐng)域并非天生就得是Python,別的不說,就說人工智能。

人工智能領(lǐng)域出了很多語言,如果你早個幾年學(xué)習(xí)人工智能,可能連Python的影子都看不見,大家一般推薦的都是LISP、Prolog,哪怕是業(yè)內(nèi)人士看這些語言都是又古老又偏門,尤其是Prolog,好像除了人工智能就沒別的地方能見到,但是Prolog做規(guī)則推導(dǎo)有奇效,大家也就一直沿用下來了。

現(xiàn)在呢?現(xiàn)在不怎么提了,一來是因為基于統(tǒng)計的機器學(xué)習(xí)一直占據(jù)了人工智能的頂流位置,規(guī)則推導(dǎo)說得不多,二來是Python迅速崛起,人稱“人工智能第一語言”,就連規(guī)則推導(dǎo)都可以用Python來做。

另一個例子是數(shù)據(jù)分析,早前都是R語言的天下,后來是R和Python兩分天下,現(xiàn)在人工智能的東風(fēng)一起來,R完全無法招架Python 迅猛發(fā)展的勢頭,所以這些前浪就理所當(dāng)然被拍在了沙灘上。

但是,這是結(jié)果,現(xiàn)在我們要問的是:為什么Python能成為“人工智能第一語言”呢?

 

01 Python有哪些優(yōu)點

現(xiàn)在Python很熱,所以介紹Python的文章特別多,大家一定也看膩了諸如Python簡單易用、靈活性高之類好像說了很多,又好像什么都沒說的介紹。我們說點接地氣的。

在我來看,Python最大的優(yōu)點就是“拎包入住”。

如果大家去租房,一定能看到一個詞,叫“拎包入住”,這個詞經(jīng)常作為租屋的重要賣點,也反映出消費者對租屋的一個重要需求。

什么叫拎包入住?租房行業(yè)對這個詞的準(zhǔn)確定義有爭議,很多人在糾結(jié)家私家電齊全到底是不是等同于拎包入住,不過意思是清楚的,我作為租客,啥都不用準(zhǔn)備,只需要把行李拉過來就可以住下了,這就是拎包入住。

換句話說,有不少租屋是達不到拎包入住的標(biāo)準(zhǔn)的,本來我只是要滿足“住”的需要,可是因為租屋條件有欠缺,導(dǎo)致我不得不先客串一回裝修師傅,需要先做一些其它的準(zhǔn)備,然后才能做我想要做的事。

好了,說回編程語言。很多人喜歡從語言風(fēng)格、語法設(shè)計甚至語法糖等等角度來比較編程語言的優(yōu)劣,不過,我更看重另一樣?xùn)|西:生態(tài)環(huán)境。

以前我們說C++多么多么爆紅,后來又說Java多么多么爆紅,現(xiàn)在又輪到了Python,到底這些“網(wǎng)紅語言”的成功背后靠的是什么?真的只是因為編程語言自身的優(yōu)秀設(shè)計嗎?

我認為,一款編程語言是否流行,設(shè)計當(dāng)然是很重要的因素,但生態(tài)環(huán)境的成熟可能是更為直接的原因。我們經(jīng)常能聽到的一個關(guān)于編程的問題是,A語言早就已經(jīng)過時了,現(xiàn)在已經(jīng)有了新興的B語言,為什么現(xiàn)在還要用A語言開發(fā)項目呢?

這個問題通常有兩種可能,一種是項目已經(jīng)用A語言做了大量開發(fā),替換成B語言又得高樓平地起,另一種是B語言還太新,某個專業(yè)領(lǐng)域還沒有可用的或者好用的庫,同樣也得高樓平地起。這兩種都可以歸結(jié)為同一個原因:使用B語言并不能拎包入住。

Python的成功,同樣是因為能夠拎包入住。

回想一下前面的廣告,說用Python只要5分鐘就能把看似做不完的工作做完,為什么?

不是因為Python語言設(shè)計有多么多么精巧,別人要寫一萬行,Python只要一行就搞定,而是Python有非常成熟的生態(tài)環(huán)境,你扔一個任務(wù)過來,用Python不用從頭開始,只要找到對應(yīng)的庫,一句import加幾行代碼,可能結(jié)果就出來了。

從始至終,你都只需要關(guān)注任務(wù)本身,而不需要思考編程語言怎么處理實現(xiàn),沒什么雜七雜八的東西需要浪費時間。這就叫拎包入住。

 

開發(fā)人工智能為什么要用Python?

 

02 數(shù)據(jù)科學(xué)方向的熱門Python包介紹

都知道Python在人工智能、大數(shù)據(jù)方向很熱,但是,真的有任務(wù)來了,究竟該用哪些包呢?很多介紹Python的教程,是真的就只介紹Python的語法,語法當(dāng)然很重要,要想使用Python,首先當(dāng)然得掌握語法。

但是,前面我們也進行了介紹,Python的優(yōu)勢在于擁有許多成熟的包,讓你可以“拎包入住”,也即可以專注于任務(wù)本身,所以,我們要用Python,不但需要掌握Python的語法,同時也要了解都有哪些好用的Python,都可以用來做什么。

Python好用的包非常多,覆蓋領(lǐng)域也是五花八門,都列出來反而顯得凌亂,這里我們只介紹數(shù)據(jù)科學(xué)和人工智能方向用得多的包。

首先是pandas。這是數(shù)據(jù)分析用得非常多的包,尤其擅長各種格式化數(shù)值分析,前面提到的Python廣告只說用Python,并沒有說明該使用什么包,不過,既然是替代電子表格進行數(shù)據(jù)分析,想必肯定會用到pandas。

接著是scikit-learn,這個包寫法很多,也有人喜歡簡寫為sklearn。這是個著名的機器學(xué)習(xí)包。scikit-learn非常好用,推薦大家都試一試,尤其是覺得機器學(xué)習(xí)數(shù)學(xué)很難,一看到機器學(xué)習(xí)幾個字就產(chǎn)生抵觸心理的同學(xué)。

為什么這么說呢?我們都知道,機器學(xué)習(xí)不是一種方法,而是一個大框,里面堆滿各種算法模型,譬如線性模型、樹形模型、支持向量機模型、以及現(xiàn)在在機器學(xué)習(xí)領(lǐng)域非常熱門的神經(jīng)網(wǎng)絡(luò)模型。

每一種模型背后都依靠一套復(fù)雜的數(shù)學(xué)邏輯來支撐模型運作。在很多人看來,光是看懂機器學(xué)習(xí)模型的數(shù)學(xué)表達式就已經(jīng)十分費勁,需要很深的數(shù)學(xué)功底,更不用說手推公式和實戰(zhàn)中使用了。于是,很多人覺得機器學(xué)習(xí)“可遠觀而不可褻玩焉”。

當(dāng)然,這里面有幾個理解誤區(qū)。是不是需要很深的數(shù)學(xué)功底才能明白機器學(xué)習(xí)模型的原理呢?未必,機器學(xué)習(xí)確實用到很多數(shù)學(xué)知識,不過,我經(jīng)常和大家分享的一個觀點是:不妨把數(shù)學(xué)看作只是一種語言,是一門外語,機器學(xué)習(xí)的運行原理,是用這門外語來描述,所以我們不太容易看懂。

那怎么辦呢?跨國交流我們可以找翻譯,同樣,只要有人看懂了機器學(xué)習(xí)這里的數(shù)學(xué)語,然后“翻譯”成中文,也就方便大家看得懂了。這件事我自己做了些嘗試,寫了一本書叫《機器學(xué)習(xí)算法的數(shù)學(xué)解析和Python實現(xiàn)》,大家感興趣可以翻翻。

另一個誤區(qū)就是得把機器學(xué)習(xí)模型的數(shù)學(xué)原理都學(xué)懂弄通了,最好能手推一遍公式,然后才能知道怎么使用。這個理解符合我們長期以來形成的按部就班的印象,不過,就我看來,使用機器學(xué)習(xí)和開車很像,沒必要要求司機都學(xué)會造車了才能開車,況且,造車和開車很可能還是并不相同的兩條學(xué)習(xí)曲線,畢竟老技工未必就是老司機。

如果只是想用機器學(xué)習(xí)解決問題,完全可以另辟蹊徑積累經(jīng)驗。方法是什么呢?就是使用scikit-learn,這個包把常用的熱門的機器學(xué)習(xí)模型統(tǒng)統(tǒng)做了非常良好的封裝,我們完全可以像調(diào)用黑盒函數(shù)一樣,操作各種機器學(xué)習(xí)模型來解決實際問題。

最后就是Pytorch、Tensorflow和Keras這幾個網(wǎng)紅深度學(xué)習(xí)包,Python這一輪走勢長紅,這幾個深度學(xué)習(xí)包居功甚偉,在背后貢獻了大量流量。

現(xiàn)在是深度學(xué)習(xí)時代,大家都知道深度學(xué)習(xí)能解決很多以前無解的問題,可是理論設(shè)計出來的模型,還得編程實現(xiàn)才能使用。怎么實現(xiàn)呢?就用這幾個包,它們把深度學(xué)習(xí)的各個部件都已經(jīng)封裝好了,使用者只需要像拼裝樂高積木一樣,把部件拼裝成完整的模型。

篇幅有限,我就簡單介紹到這,當(dāng)然,Python的庫就像是一個工具倉庫,只要你想得到的工作,都可能已經(jīng)有不止一個成熟的Python庫可供選擇,譬如說一些細分的機器學(xué)習(xí)任務(wù),如自然語言處理NLP,就還有好幾個專門做NLP領(lǐng)域任務(wù)的Python包,又譬如說大數(shù)據(jù)用到的一些基礎(chǔ)組件,如Hadoop、Spark,同樣也有專門的Python對口服務(wù)。

現(xiàn)在大家應(yīng)該感到Python真是個寶藏男孩,應(yīng)該就能更為理解,為什么開發(fā)人工智能要用Python,一項人工智能的工程可能涉及到多個環(huán)節(jié),而如果選擇使用Python,它可以給你提供一條龍服務(wù)。

 

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2019-09-23 12:00:23

人工智能AI

2022-01-15 23:04:03

人工智能高等數(shù)學(xué)技術(shù)

2021-10-20 22:28:02

人工智能開發(fā)系統(tǒng)

2019-10-22 09:35:39

人工智能AI

2023-09-25 18:21:05

2022-04-21 16:34:33

人工智能網(wǎng)絡(luò)安全機器學(xué)習(xí)

2021-10-17 21:43:55

人工智能無人機網(wǎng)絡(luò)安全

2024-02-20 16:14:36

人工智能開源AI

2025-01-22 13:47:26

2022-06-01 13:36:16

人工智能物聯(lián)網(wǎng)

2019-04-25 09:20:26

人工智能AI開發(fā)者

2023-08-24 10:06:38

人工智能智能家居

2019-02-19 10:32:53

人工智能智慧警務(wù)大數(shù)據(jù)

2021-10-26 10:00:35

人工智能AI

2017-04-24 15:29:10

人工智能機器人程序員

2016-01-13 16:07:04

2018-05-16 13:35:51

人工智能

2023-08-22 13:56:02

人工智能邊緣計算

2021-04-12 10:28:51

機器學(xué)習(xí)人工智能AI

2020-04-15 09:56:29

人工智能技術(shù)SaaS
點贊
收藏

51CTO技術(shù)棧公眾號