五位專家跟你講講為啥Python更適合做AI/機器學習
摘要: 為什麼Python會在這股深度學習浪潮中成為編程語言的頭牌?聽聽大牛如何解釋吧!
原文: http://click.aliyun.com/m/43988/
1.Python網路編程框架Twisted的創始人Glyph Lefkowitz(glyph):
編程是一項社交活動——Python社區已經認識到了這一點!
人工智慧是一個全面的技術術語,通常意味著當前計算機科學研究中最先進的領域。
有一段時間,我們理所當然的認為基本圖遍歷是AI。那時候,Lisp是人工智慧的專屬語言,僅僅是因為研究人員更容易用它來做快速原型。我認為Python已經在很大程度上取代了它,因為除了類似的高層次功能之外,它還擁有出色的第三方庫生態庫和框架以及操作系統設施的完美集成。
Lispers可能會反對我的看法,所以我應該說清楚,我沒有對Python在應用層次中的位置做出精確的陳述,只是說Python和Lisp都處於相同的語言類別中,像內存安全、模塊、名稱空間和高級數據結構。
在更具體的機器學習意義上,這是人們最近說的關於AI的最多的領域,我認為還有更具體的答案。NumPy及其相應的生態系統的存在使得研究人員可以對高級別內容進行研究,並進行高性能的數字處理。如果不是有非常強的數字處理需求,機器學習是沒有任何意義的。
Python社區致力於為非程序員提供友好的介紹和生態系統支持,這確實增加了其在數據科學和計算科學的應用。無數的統計工作人員、天文學家、生物學家和商業分析師已經成為Python程序員,並且他們對自己的工具也做了些許的改進。編程基本上成為了一種社交活動,Python社區比JavaScript以外的任何其他語言都承認這一點。
機器學習是一個特別集成度很高的學科,因為任何AI/機器學習系統都需要從現實世界中提取大量數據作為訓練數據或系統輸入,因此Python的框架庫生態系統意味著它通常可以很好地訪問和轉換數據。
2.PSF聯合創始人兼eGenix首席執行官Marc-Andre Lemburg(@malemburg)
Python允許用戶關注真正的問題
對於沒有受過計算機科學培訓的科學家來說,Python非常容易理解。當你嘗試驅動你需要執行研究的外部庫時,它可以幫助你消除許多必須處理的事項。
在Numeric(現在是NumPy)開始開發之後,增加了IPython筆記本(現在是Jupyter筆記本)、matplotlib和許多其他工具以使事情更加直觀,Python讓科學家主要考慮解決問題的方法,而不是去考慮那麼多推動這些解決方案所需的技術。
與其他領域一樣,Python是一種理想的集成語言,它將技術輕鬆綁定在一起。Python允許用戶關注真正的問題,而不是花時間在實現細節上。除了為用戶提供更方便的功能之外,Python還可以作為開發與外部庫進行低級集成的理想平台。這主要是由於Python可以提供一個非常完整的API訪問。
3.研究人員和Python機器學習的作者Sebastian Raschka(@rasbt):
對於數學和面向數據的人來說,Python非常容易使用。
我認為Python更適合做AI有兩個主要原因。第一個原因是Python非常容易理解和學習。
我認為大多數從事機器學習和人工智慧的人員都希望以最快捷的方式實現自己的想法。人工智慧的重點是研究和應用程序,編程只是一個讓你到達那裡的工具。對於需要更多的數學和以數據為導向的人來說,編程語言學習起來越舒服,進入壁壘越低。Python也是非常容易理解的,這有助於保持最新的機器學習和AI的現狀,例如,閱讀演算法的代碼實現時。嘗試人工智慧和機器學習的新思路往往需要實現相對複雜的演算法,語言越簡單,調試就越容易。
第二個主要原因是,雖然Python本身就是一種非常易於訪問的語言,但我們在其之上有很多優秀的庫,這使得我們的工作變得更容易。沒有人願意花時間從頭開始重新實現基本演算法(除了研究機器學習和人工智慧)。大量已經存在的Python庫幫助我們專註於更令人興奮的事情。
Python也可以用於處理高效的C/C ++演算法和CUDA/cuDNN實現的優秀包裝語言,這就是為什麼現有的機器學習和深度學習庫在Python中高效運行的原因。這對於機器學習和AI領域的工作是非常重要的。
總而言之,我會說Python是一種偉大的語言,它可以讓研究人員和從業者專註於機器學習和AI,並且比其他語言更少分心。
4.ThoughtWorks的技術負責人Luciano Ramalho(@ramalhoorg):
Python對科學計算有吸引力。
最重要和最直接的原因是NumPy和SciPy庫支持scikit-learn這樣的項目,因為它目前幾乎是所有機器學習任務的標準工具。
創建NumPy,SciPy,scikit-learn和其他許多庫的原因是因為Python有一些功能使其對科學計算非常有吸引力。Python有其簡單而一致的語法,可以讓軟體工程師以外的人更易於使用編程。
另一個原因是運算符重載,它使代碼可讀和簡潔。然後就是Python的緩衝協議(PEP 3118),這是外部庫在處理類似數組的數據結構時與Python高效互操作的標準。最後,Python為科學計算提供了豐富的庫生態系統,吸引了更多的科學家並創造了良性循環。
5.Mike Bayer,Red Hat的高級軟體工程師和SQLAlchemy的創建者:
Python是嚴格和高度一致性的。
我們正在Python這個領域中開發我們的庫。我們將有一定希望保留和優化的演算法放入一個庫中,如scikit-learn。然後我們繼續迭代並分享關於我們如何組織和思考數據的筆記。
高級腳本語言非常適合人工智慧和機器學習,因為我們可以快速移動並重試。我們創建的大部分代碼代表的是實際的數學和數據結構,而不是模板。
像Python這樣的腳本語言更好,因為它是嚴格的和高度一致性的。每個人都可以更好地理解彼此的Python代碼。
IPython筆記本等工具的可用性使得我們可以在全新的水平上迭代和分享我們的數學和演算法。Python強調了我們正在努力完成的工作的核心,並且完全最小化了我們如何給計算機指令的所有其他內容,這就是它應該如何實現的,自動完成任何你不需要考慮的事情。
本文由阿里云云棲社區組織翻譯。
文章原標題《Why Deep Learning Has Not Superseded Traditional Computer Vision》
作者:阿里云云棲社區
譯者:虎說八道,審校:。
更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎
推薦閱讀:
※為什麼要使用 Python 生成器?該如何使用 Python 生成器?
※機器學習和計算機視覺方向的CS碩士研究生,應該往python還是MATLAB發展?
※運維人都想要的基於Python開發的100+Stars的CMDB開源項目
※C 語言和 Python,該從哪個入門編程?
※解構國內首個函數計算(從概念、入門再到實戰)