GitHub上最好的機器學習開源項目有哪些?


想提高機器學習技能?何不看看 GitHub 上最流行的開源機器學習項目呢?本文介紹了 GitHub 上最流行的 5 個開源機器學習項目。

機器學習是當前最熱的技能。今年早些時候,Stack Overflow 發布了一項涉及大量開發者的調查結果,機器學習專家的收入僅次於 DevOps 專家。

機器學習正處於鼎盛時期,但對新手來說,開源通常有點讓人疑惑。因此,今天,我們就來了解一下 GitHub 上最頂尖的五個開源項目,看看該領域的發展情況以及你能夠幫助做些什麼。畢竟,開源項目的成功取決於全世界開發者和程序員的協作!

說明:該列表指特定項目,而非庫或框架的集合。因此,幾個排序結果是比較隨意的,全憑個人愛好。

讓我們開始吧!

1. TensorFlow – 76.2K

TensorFlow 排在首位絲毫不會讓人驚訝。它是目前 GitHub 上最流行和傑出的機器學習項目。

TensorFlow 最初是谷歌機器智能研究組織中的谷歌大腦團隊的一部分,它是一個開源的軟體庫,可使用數據流圖進行數值計算。它具備易用的 Python 介面和簡單直接的其他語言介面,來構建和執行計算圖。

「我們開源 TensorFlow 是希望為世界上每個人構建一個機器學習平台。」Jeff Dean 今年早些時候說道。TensorFlow 1.0 快速、靈活,且對大量超出其初始設計的應用是生產就緒的。它還包括適合 Java 和 Go 的實驗性 API、用於目標檢測和定位的新型安卓 demo,以及基於相機的圖像風格化。

近日,谷歌發布了 TensorFlow 1.4.0 版本。GitHub 地址:https://github.com/tensorflow/tensorflow/releases/tag/v1.4.0。

2. scikit-learn – 22.7K

第二個是 scikit-learn,機器學習 Python 模塊。scikit 包括大量簡單高效的數據挖掘和數據分析工具。scikit 的基本動機是「為了科學」(For Science)!它對不同的語境(context)都有高度的可使用性和可復用性。此外,它構建了著名的數據科學工具,如 NumPy、SciPy 和 matplotlib。

今年早些時候,我們和 Groupon 公司軟體工程主管 Adam Geitgey 進行了交談,話題關於開發者如何涉足機器學習領域。

Geitgey 說:「肯定要先學 Python。Python 是目前最流行的機器學習編程語言,適合解決大部分機器學習問題(不包含深度學習)。你只需要安裝幾個 Python 庫:scikit-learn、NumPy 和 pandas。這些工具都是免費的,且可以很好地協同運行。」

3. PredictionIO – 10.6K

PredictionIO 是這個列表中的新來者,這就使得其高排名更加令人印象深刻。上個月,阿帕奇軟體基金會發布了 PredictionIO。PredictionIO 建立在一個當前最佳的開源堆棧上。這個機器學習伺服器的設計目的是讓開發者和數據科學家可以在任何機器學習任務中創建有預測能力的引擎。

開發者可以通過全棧和可用模板創建可部署的應用,而不需要將各種底層技術拼湊起來。PredictionIO 是直接建立在 Spark 和 Hadoop 上的,因此它允許開發者使用自定義模板快速建立和部署一個引擎作為生產就緒網頁服務。它是用 Scala 編寫的。

PredictionIO 吝嗇於簡化數據基礎架構管理。你可以無縫地將你實現的機器學習模型納入自己的引擎。PredictionIO 還能通過系統式處理和預製評估方法對機器學習建模進行加速。

4. SWIFT AI – 5K

Swift AI 在 GitHub 長期備受好評。Swift AI 是一個完全用 Swift 編寫的高性能深度學習庫,支持所有蘋果平台。這對 MacBook 用戶來說是個好消息!

無可否認,Swift 的 repo 有點少,特別是跟 TensorFlow 相比。然而,Swift AI 確實為喜歡使用 Swift 編寫神經網路的用戶提供了引以為豪的工具。其中,NeuralNet 類包含一個全連接前饋神經網路。NeuralNet 支持深度學習,具備靈活性,並可用於性能關鍵應用程序。

5. GoLearn – 4.7K

進入前 5 名的還有 GoLearn,這是一個 Go 語言的相當齊全的機器學習庫。這個項目仍然處於活躍的開發狀態,正在尋求對用戶反饋感興趣的開發者。如果你用過 SciPy、WEPA 或 R,GoLearn 的機器學習模型對你來說不會陌生。它的數據使用平面表表示(和電子表格類似),用於訓練和預測。在開始一個新項目的時候,想要的工具總是比實際擁有的多得多。如果你希望擁有一個更好的項目,GoLearn 是一個不錯的選擇。

結論

不管你想要加入知名項目或還只是個新手,GitHub 上總有一個適合你的開源機器學習項目。這不僅能夠豐富你的簡歷,對整個社區來說也是好事。所以,趕快行動吧!


實踐層面的開源項目無非Tensorflow等開源框架,理論層面建議從語言學習和實踐兩方面入手,以下是關於Python語言學習和機器學習實踐的開源項目。尤其是《自上而下的學習路線: 軟體工程師的機器學習》項目非常詳細的包括了軟體工程師轉行機器學習這條路上需要學習和掌握的所有內容,推薦閱讀!

1、《Python進階》

這本書是《Intermediate Python》的中文譯本,作者將一些晦澀難懂的技術用比較清晰簡潔的方式呈現出來,不管是Python初學者還是老司機看完這本書之後都會感覺腦洞大開,這本書將Python編程語言的優點淋漓盡致地表現了出來。

(Github開源地址:https://eastlakeside.gitbooks.io/interpy-zh/content/)

2、《Python最佳實踐指南!》

為什麼推薦這份實踐指南?這份指南與官方文檔有什麼不同嗎?這份指南包含了作者非常強烈地主觀感受,不單單是Python的安裝、配置或者每個框架的使用,作者通過個人實踐,對自己比較看好的框架標註了強烈推薦,對一些需要注意的地方也進行了標註,基本相當於作者的實踐心得,閱讀過程中會感受到與作者的思想碰撞。

(Github開源地址:http://pythonguidecn.readthedocs.io/zh/latest/)

3、《神經網路與深度學習》相關代碼 Python 實現

該開源項目是對《神經網路與深度學習》一書中相關Python代碼的實現。建議先弄明白書中所講的神經網路、反向傳播等概念,再結合代碼實現,會有更深的理解。

(Github開源地址:https://github.com/mnielsen/neural-networks-and-deep-learning)

4、《自上而下的學習路線: 軟體工程師的機器學習》

該項目的作者是一名自學成才的移動端軟體開發者,後又轉型成為一名機器學習工程師,他在Github上公布了自己整個實踐過程中的學習方法、參考資料以及知識競賽等。內容非常全面且豐富,涉及的參考書籍就多達十幾本,還有一些博客資源。如果你正在思考如何轉型成為一名機器學習工程師,這個開源項目或許是最適合你的。(中文版本:https://github.com/ZuzooVn/machine-learning-for-software-engineers/blob/master/README-zh-CN.md)

16、《Python 之旅》

本書的作者起初並沒有想到要寫一本書,只是記錄了自己在學習Python過程中做的筆記,並對筆記進行了一定程度的加工和完善,發表在個人博客上。隨著筆記的增加,作者開始萌生寫一本書的想法,同時對知識進行了系統總結,希望能在自我鞏固的同時給廣大Python學習者一些建議。

以下是作者給出的基礎思維導圖:

全書共分為15章,完整電子版也可以從Github下載。(Github開源地址:https://github.com/ethan-funny/explore-python)


作為一個AI量化老司機,回答這個問題簡直義不容辭。

回到問題上,學習機器學習的最好方式就是源代碼,最好的不敢說,以下幾個都是深度學習比較流行的:

tensorflow:https://github.com/tensorflow/tensorflow

keras:https://github.com/keras-team/keras

pytorch:https://github.com/pytorch/pytorch

cntk : https://github.com/Microsoft/CNTK

chainer:https://github.com/chainer/chainer


推薦閱讀:

神經網路能否發現諸如π、e等無限不循環小數的內在規律?
能用計算機圖形學技術和機器學習等實現精細模仿人類畫手的漫畫/日式動畫風格渲染嗎?
SVM在線性不可分的情況下,利用核函數升維後就一定線性可分嗎?
語音識別中,聲學模型與語言模型扮演什麼角色?或者說是怎麼通過兩個模型進行語音識別的?
現在機器視覺這麼火,那機器聽覺被人忽視了?

TAG:GitHub | 機器學習 | 科技 |