溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

為什么Python更適合人工智能

發(fā)布時間:2020-07-02 14:04:41 來源:億速云 閱讀:334 作者:清晨 欄目:編程語言

這篇文章將為大家詳細講解有關為什么Python更適合人工智能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

去年,當?shù)禺a(chǎn)大佬潘石屹要把學習Python作為生日禮物送給自己的時候,微博上還多是一陣調(diào)侃之聲??赡苷怯∽C了Python程序員們常常掛在嘴邊的“人生苦短,就學Python”的口頭禪,時年56歲的小潘同學要再一次抓住“青春”的尾巴吧。

為督促自己學習,小潘還在微博專門設置了一個#潘石屹用Python解決100個問題#的話題,鼓勵全民圍觀,監(jiān)督他的Python學習計劃。顯然,幾個月的堅持,讓小潘同學的Python學習有了初步的成果。5月16號,他在參加完NCT全國青少年編程能力等級測試 Python 編程一級考試后,曬出了99分的優(yōu)秀成績單。

為什么Python更適合人工智能

至于為啥要學Python,樸實的潘總在接受媒體采訪時表示,人到50歲以后一定要學點新東西,以防止老年癡呆。

但為什么選擇要學一個自己完全不懂的Python語言,這還是他在請教了李開復之后得到的啟發(fā):Python語言是現(xiàn)在全世界使用最多的一個編程語言,也是非常成熟的一個語言。

最主要的呢?

未來社會是一個人工智能的社會,學習Python是打開人工智能時代的鑰匙。

Python對于人工智能很重要,對很多關注AI的人們來說想必是個基本常識,但是對于大部分并非專業(yè)從事編程的人,比如我來說,Python到底有多重要,其實還是一頭霧水的。

于是我默默地拿起了一本《Python編程:從入門到實踐》……

額,短期學會有點不太現(xiàn)實。我還是本著謙虛好學的態(tài)度,梳理下專業(yè)人士的觀點,來盡可能地搞清楚“Python之于AI”是一種怎樣的存在吧?

Python為何能這么流行?

衡量一門編程語言受歡迎程度的重要指標,可以參考其在Stack Overflow(一家IT問答社區(qū))上面的標簽數(shù)量。下圖是近10年來全世界最主要的幾種編程語言在社區(qū)平臺的問答帖子中的標簽數(shù)量的趨勢圖。

為什么Python更適合人工智能

從2012年之后,Python就一直處在穩(wěn)步上升的趨勢,與此相對照的是其他主流編程語言,除了R語言一直處于停滯不前的狀態(tài),其他編程語言則是在不同程度地穩(wěn)步下降。

這一指標確實很好地印證了Python的流行程度和普及度。根據(jù)專業(yè)人士的說法,Python具有以下優(yōu)點:

一、Python的成熟和易用。

實際上,從1991年,van Rossum向全世界發(fā)布了第一個版本的Python至今已經(jīng)有30歲的高齡了。但Python卻沒有因為這種計算機時代略顯“古老”的年齡而走向衰敗,反而因為Python在可用性和功能性上面取得的平衡,讓越來越多的程序員開始使用這一語言。

一方面簡單易用,一方面又可以用來開發(fā)大型的應用程序,這兩個因素結(jié)合,正是 Python在上世紀90年代逐漸取得成功的原因?,F(xiàn)在,Python語言已經(jīng)形成一個龐大的成熟社區(qū),一旦人們在編寫Python代碼遇到任何問題,都可以從中找到有用的答案。

二、Python對于初學者非常友好。

從一開始,Python就提供了清晰而明確的語法,使得發(fā)人員更容易閱讀和理解代碼,這是眾多程序員喜歡上Python的主要理由。

為什么Python更適合人工智能

用三種語言來顯示“Hello World!”為例,相比起C語言和Java,Python更符合人類直覺的語言形式,對新手而言也更加友好,只需要一句“print”(發(fā)布)就可以了。

用van Rossum的原話來說就是,一門編程語言不僅要告訴計算機該做什么,還要便于在開發(fā)者之間傳遞思想。那還有什么比使用一種 “符合人性”的編程語言來實現(xiàn)更好的思想交流呢?

第三,Python的功能足夠強大。

經(jīng)過如此久的迭代開發(fā),Python早已擁有各種各樣的支持庫。用一個形象的比喻來說,Python就像是編程界的“瑞士軍刀”,可以在各種各樣的場合里用到。比如處理矩陣和向量數(shù)據(jù)的NumPy、做技術和工程方面的計算的SciPy、數(shù)據(jù)處理和分析的Pandas以及支持數(shù)據(jù)可視化的Matplotlib等等支持庫。

需要注意的是,正是Python在支持庫上面的功能擴展,與AI技術發(fā)展息息相關。這些正是我們接下來要討論的問題。

為什么Python更適合人工智能?

我們知道第三次人工智能浪潮的興起得益于機器學習,特別是深度學習算法的成功。而訓練一個AI算法模型就需要為其喂養(yǎng)大量的數(shù)據(jù)。在前期的AI發(fā)展中,“有多少智能就有多少人工”就是這一AI訓練過程的典型描述。在這一過程中,Python因其有強大的數(shù)據(jù)處理的生態(tài)庫,因而能夠為其提供數(shù)據(jù)的訪問和轉(zhuǎn)換,實現(xiàn)AI算法的快速“喂養(yǎng)”。

舉個例子,機器學習或者深度學習的算法模型所要處理的數(shù)據(jù)實際上都是矩陣和向量。而NumPy則正好支持維度數(shù)組與矩陣運算,結(jié)合Python內(nèi)置的math和random庫,可以輕松通過簡單代碼實現(xiàn)矩陣的轉(zhuǎn)置、求逆、求和、叉乘、點乘和分解等功能。

而且,NumPy在實現(xiàn)層對矩陣運算做了大量的并行化處理,通過數(shù)學運算的精巧,而不是讓用戶自己寫多線程程序,來提升程序效率。有了Python這種強大的數(shù)據(jù)計算和處理能力,開發(fā)者就可以把工作重心放在模型和算法上,不用操心運行的問題了。

就像上面所說,Python其實也是AI技術的“瑞士軍刀”。對于AI訓練所需要的數(shù)據(jù)獲取、分析、建模等流程也都可以通過Python的各類支出庫來解決。

為什么Python更適合人工智能

(用Python訓練和使用一個logistic Regression模型)

比如,像requests、scrapy這類網(wǎng)絡爬蟲庫,可以從網(wǎng)絡上獲得源源不斷地海量數(shù)據(jù);像scipy、pandas、matplotlib以及剛剛介紹的NumPy,幫助開發(fā)者進行科學計算、數(shù)據(jù)處理、繪圖以及矩陣計算等操作;而像nltk、keras、sklearn這類用于建模的支持庫,即可用于NLP、DL的模型搭建,實現(xiàn)一個完整的AI算法模型。

此外,Python也可以用于處理高效的C/C ++算法,以及CUDA/cuDNN的包裝語言,這讓現(xiàn)有的機器學習和深度學習庫可以在Python中高效運行的原因之一。

總體而言,Python成為一門理想的集成語言,可以讓開發(fā)者關注真正的問題,而不是花很多時間在細節(jié)實現(xiàn)上。

Python語言十全十美嗎?

當然不是,像任何一門編程語言一樣,Python也會有自身的缺陷。

首先,Python的執(zhí)行速度不夠快。由于Python是一門解釋型語言。編程語言和機器語言之間需要解釋器的翻譯,而Python是一次執(zhí)行一個任務,因而需要每翻譯一行程序敘述就立刻運行,然后再翻譯下一行再運行,這樣就導致Python要比像C、Java這類編譯型語言執(zhí)行速度慢的原因。

但對于現(xiàn)在的服務器算力來說,Python速度的劣勢幾乎沒有什么影響,因為對于開發(fā)者而言根本察覺不到明顯的延時。此外,還可以通過和C語言的結(jié)合,將需要優(yōu)化速度的應用轉(zhuǎn)換為編譯好的擴展語言,并在系統(tǒng)中使用Python腳本將這部分應用連接起來,以提高程序的整體效率。

其次,Python源代碼加密困難。Python不像編譯型語言的源程序會被編譯成目標程序,而是會直接運行源程序,因此對源代碼加密比較困難。

此外,Python不太適用于移動開發(fā)。Python在設計時并沒有考慮到移動開發(fā),因而還不支持在非x86硬件平臺上編譯代碼,而且Python的測試套件很容易在移動平臺崩潰。隨著移動設備的數(shù)量和流量開始遠遠超過PC設備,Python也應該要努力進化以支持移動平臺了。

為什么Python更適合人工智能

盡管Python在未來幾年內(nèi)會依然興盛,但是一些潛在的競爭對手也正在成長——Rust、Go以及Julia。這些語言都各自超過Python的優(yōu)點,也能修補Python的薄弱環(huán)節(jié),正在成為Stack Overflow近幾年受歡迎趨勢上升很快的三種語言,但是零點幾的份額還不足以挑戰(zhàn)Python。

然而總體上,Python因其開放的開源社區(qū)以及全球最多的開發(fā)者生態(tài),使其成為近十年來最成功的編程開發(fā)語言之一。

如果列舉Python的廣泛應用,我們可以列舉出一系列的名單。包括人工智能學習框架如Google的TensorFlow、Facebook的PyTorch、開源社區(qū)的神經(jīng)網(wǎng)絡庫Karas以及云計算開源平臺OpenStack等使用python實現(xiàn)。此外,Python還在Web開發(fā)、操作系統(tǒng)運維、金融大數(shù)據(jù)分析和圖形GUI上面都是強大的支持工具。

為什么Python更適合人工智能

(MIT研究員在通過Python代碼跑出黑洞圖片后,沒有報錯時的小興奮)

如果這些領域還是離我們的日常生活太過遙遠的話,我們不妨就記住Python這樣的一個小應用吧。

還記得去年媒體瘋傳的那張黑洞照片嗎?這張據(jù)說用了2年時間拍攝而成的黑洞照片,其實并不是一個望遠鏡拍攝到的,而是采用了遍布全世界的望遠鏡連接起來,共同拍攝而成的。那么來自多個望遠鏡拍攝的數(shù)據(jù)的處理就需要用到Python。

簡單來說,人類看到的第一張真實的黑洞照片,其實是用Python合成的。如果今后有人問起Python能做什么,你還能記得這個知識點就可以了。

關于為什么Python更適合人工智能就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI