2018年最流行的深度學習框架及學習建議

本文中,為了評估 2018 到底哪些框架比較流行,作者從領英職位需求、谷歌搜索熱度、Medium 文章數、arXiv 論文數和 GitHub 活躍度等方面審視不同的框架。

2018年最流行的深度學習框架及學習建議

深度學習仍然是機器學習領域最熱門的技術。深度學習框架變化迅速,僅僅五年前 Theano 還一枝獨秀,而最近出現了各種各樣的框架,它們都有不同的特性。在本文中,為了評估 2018 到底哪些框架比較流行,作者從領英職位需求、谷歌搜索熱度、Medium 文章數、arXiv 論文數和 GitHub 活躍度等方面審視不同的框架。

我想尋找值得關注的框架,於是就開發了這個排行榜。Python 語言是深度學習使用的熱門語言,因此我主要關注能兼容 Python 的框架。我使用了來自 7 個不同類別的 11 個數據源,並用來評估框架使用、用戶興趣和流行度。

數據地址:https://www.kaggle.com/discdiver/deep-learning-framework-power-scores-2018

2018年最流行的深度學習框架及學習建議

2018.09 by Jeff Hale顯然,TensorFlow 是絕對贏家,還有一些令人驚訝的發現。我們一起來看一下~


角逐者

我們考慮的這些框架都已經開源,它們主要都使用 Python,一些可以兼容 R 或其他語言。

2018年最流行的深度學習框架及學習建議

TensorFlow 是絕對冠軍。在 GitHub 活躍度、谷歌搜索、Medium 文章數、亞馬遜書籍和 arXiv 論文這些數據源上,它所佔的比重都是最大的。它還擁有最多的開發者用戶,以及出現在最多的在線職位描述中。

2018年最流行的深度學習框架及學習建議

Keras 具備「一個為人類而非機器設計的 API」。它在幾乎所有評估中都是第二流行的框架。Keras 的後端可以基於 TensorFlow、Theano 或 NLTK。如果你是剛入門深度學習的新手,使用 Keras 是不錯的選擇。

2018年最流行的深度學習框架及學習建議

PyTorch 是第三流行的框架,也是第二流行的獨立框架。它比 TensorFlow 出現時間晚,但發展迅速。PyTorch 允許定製化,而 TensorFlow 不能。PyTorch 是由 Facebook 支持開發的。

2018年最流行的深度學習框架及學習建議

Theano 由蒙特利爾大學於 2007 年開發,是最老的 Python 深度學習框架。現在它的流行度下降了很多,其開發者和維護者宣佈將停止更新維護 Theano。不過,Theano 仍然頻繁出現在職位描述中。

2018年最流行的深度學習框架及學習建議

MXNet 由 Apache 孵化。它和 Theano 的得分很接近,目前處於第四流行的深度學習庫。它擁有大量貢獻者、搜索結果、相關書籍和學術文章。但是它的使用率比去年有所下降,搜索它的用戶也不是很多。

2018年最流行的深度學習框架及學習建議

CNTK 是微軟推出的認知工具包。它的推出旨在與谷歌、Facebook 競爭,但並沒有獲得特別多的使用。

FastAI 基於 PyTorch 構建。其 api 受到 Keras 的啟發,所需代碼甚至還更少。FastAI 正為今年 10 月的 1.0 版本發佈而經歷重寫,FastAI 背後的男人 Jeremy Howard 曾經是 Kaggle 比賽冠軍以及 Kaggle 主席。

你可能會問為什麼 FastAI 會在這個名單上,職業開發者對它沒什麼需求,它的使用也不廣泛。但是,它通過免費在線課程平臺 fast.ai 獲得了大批用戶。同時,FastAI 也很強大易用,它的使用率可能會很快增長。

Caffe 不在本名單中,因為它之前更新到 Caffe2,2018 年 3 月 Caffe2 被融合進 PyTorch。


評估準則

為了全面地評估深度學習框架的流行程度,我選擇以下類別和角度為它們進行評分:

在線職位描述

KDnuggets 使用調查

谷歌搜索熱度

Medium 文章數量

Amazon 書籍數量

arXiv 論文數

GitHub 活躍度

支持本次評分的數據都在今年 9 月 16 號收集完,原數據地址為:https://docs.google.com/spreadsheets/d/1mYfHMZfuXGpZ0ggBVDot3SJMU-VsCsEGceEL8xd1QBo/edit?usp=sharing

我使用了 plotly 數據可視化庫和 Python 的 Pandas 庫來探索並展示各框架的流行度,對於交互性的 plotly 圖表,請看 Kaggle Kernel:https://www.kaggle.com/discdiver/deep-learning-framework-power-scores-2018


在線職位描述

深度學習框架在目前的職場中有著什麼樣的需求?我搜索了領英的職位描述,具體而言為 Simply Hired、Monste 和 Angel List。

2018年最流行的深度學習框架及學習建議

TensorFlow 在職位描述中明顯要比其它框架出現得更多,所以如果你希望從事深度學習,最好還是學習這個框架。

我搜索職位描述的方法是採用「machine learning」+「框架名」,所以 TensorFlow 就是採用「machine learning TensorFlow」來搜索的。我其實還採用了其它搜索方法,但還是這種搜索方法給出的結果更好。此外,額外的關鍵詞對於區分不同框架而言是非常有必要的,因為我最初還嘗試在這個分析中加入 Caffe 庫。


使用情況

KDnuggets 是一個流行的數據科學網站,他們調查了世界各地數據科學家的軟件庫使用情況,他們會向用戶問道:

在過去的 12 個月中,你在實際項目上會使用哪些分析、大數據、數據科學和機器學習工具?

以下展示了大家對框架的偏好程度:

2018年最流行的深度學習框架及學習建議

Keras 在使用總量上非常驚人,它幾乎和 TensorFlow 一樣。所以說美國老闆對員工的 TensorFlow 技能有壓倒性的需求,而在國際上 Keras 使用的頻率同樣也非常高。

僅有這一個類別是包含國際數據的,因為其他類別加入國際數據可能會非常麻煩。KDnuggets 做這一份報告已經好幾年了,我在這個分析中只用了今年的數據,但我們需要注意 Theano、MXNET 和 CNTK 相比於去年在使用上有所滑落。


谷歌搜索熱度

在最大的搜索引擎上度量各框架的搜索熱度,這也是一個非常好的流行度衡量方法。我們在 Google Trends 中搜索過去幾年的搜索熱度歷史,雖然它並不提供具體的搜索數值,但還是能提供相對圖表。

2018年最流行的深度學習框架及學習建議

截至 2018 年 9 月 15 日,TensorFlow 平穩佔據 78% 的搜索比重。PyTorch 接近 Keras,而其它框架的搜索量在 3 左右或低於 3。

下面我們來簡要看一下搜索量隨著時間的變化,以瞭解更多歷史背景。下面的表格展示了近兩年的谷歌搜索情況。

2018年最流行的深度學習框架及學習建議

TensorFlow 藍色、Keras 紅色、PyTorch 黃色、Theano 綠色。TensorFlow、Keras 和 PyTorch 的搜索量在 2016 年末和 2017 年增長迅速。有趣的是,它們在最近幾個月增長緩慢。我們可以從中看到某種季節性,暑假下降寒假上升。

谷歌搜索趨勢只允許同時對比五項,因此其它庫在另外一個表上進行對比。所有這些結果都是在美國區域的搜索結果。儘管搜索關鍵詞 Theano 和 Keras 還有其它意思,但那些意思主要是在美國以外使用。


Medium 文章數

我計算了多個出版物類型,出現較早的框架在出版方面比較有優勢,未來排行榜將關注出版物數量的變化。下面來看 Medium 文章。

2018年最流行的深度學習框架及學習建議

這次出現了新的冠軍。從 Medium 文章提及量來看,Keras 超越 TensorFlow,但也算勢均力敵。FastAI 的表現也超出以往。我猜測出現上述結果的原因是 Keras 和 FastAI 對新手比較友好。深度學習新人對它們有很大興趣,而 Medium 是一個教程論壇。

下面我們來看哪些框架在亞馬遜上的實體書比較多。


亞馬遜書籍

我在亞馬遜 Books->Computer Science 分類下搜索了每個深度學習框架,結果如下:

2018年最流行的深度學習框架及學習建議

TensorFlow 又一次奪得冠軍。MXNET 相關書籍的數量超出預期,且多於 Theano。PyTorch 的書相對較少,但這有可能是因為該框架還比較年輕。該評估標準對年頭久的庫較為有利,因為出版書籍需要時間。

或許 Theano 在學術論文方面會比較好吧。


arXiv 論文

arXiv 是在線數據庫,大部分機器學習學術論文都會發表在 arXiv 上。我在該網站上搜索了每個框架,結果如下:

2018年最流行的深度學習框架及學習建議

同樣,TensorFlow 的學術論文較多。最大的意外是其它框架的學術論文總數不敵 TensorFlow。注意 Keras 在 Medium 和亞馬遜上的流行度比學術論文要高得多。PyTorch 在這塊表現也不好,應該還是因為出現時間較短的緣故。


GitHub 活躍度

GitHub 活躍度是框架流行度的另一個指標。我分別調查了 star、fork、watcher 和貢獻者數量,因為它們單獨的意義要比整體的組合的意義更大。

2018年最流行的深度學習框架及學習建議

很明顯,TensorFlow 是 GitHub 上最流行的框架,擁有大量活躍用戶。FastAI 還不錯,畢竟才誕生一年。有趣的是各個框架的貢獻者數量要比其它三個指標接近得多。

收集和分析這些數據之後,是時候總結一下了。


計算排行榜分數步驟

我用以下步驟創建排行榜得分:

將所有特徵縮放到區間 [0,1] 之間。

聚合職位描述和 GitHub 活躍度這兩個子類別。

根據下圖中的權重對類別進行加權。

2018年最流行的深度學習框架及學習建議

如上圖所示,在線職位描述和 KDnuggets 使用調查組成了分數的一半,而網頁搜索、出版物和 GitHub 關注度組成了另一半。這種分割應該是對不同類別最合適的平衡。

4. 為了方便理解,將加權後的得分乘 100。

5. 將每個框架的各類別得分相加,整合成最終的排行榜得分。

2018年最流行的深度學習框架及學習建議

Google Sheet 地址:https://docs.google.com/spreadsheets/d/1mYfHMZfuXGpZ0ggBVDot3SJMU-VsCsEGceEL8xd1QBo/edit#gid=0

下圖是對子類別進行加權相加之後的得分。

2018年最流行的深度學習框架及學習建議

Jupyter Notebook 地址:https://www.kaggle.com/discdiver/deep-learning-framework-power-scores-2018

下圖再次展示了最終的排行榜得分。

2018年最流行的深度學習框架及學習建議

2018.09 by Jeff Hale100 是最高分,在每一類中代表第一名。TensorFlow 得分接近 100,這也不足為奇,因為這一框架幾乎包攬了所有類別的第一名。點擊以下鏈接獲取圖中未顯示信息:https://www.kaggle.com/discdiver/deep-learning-framework-power-scores-2018


展望

TensorFlow 現在獨佔鰲頭,這種局勢短期內似乎不會改變。然而,考慮到深度學習世界中事物的發展速度,TensorFlow 被趕超也不是不可能。

時間會證明 PyTorch 是否會超越 TensorFlow,就像 React 超越 Angular 一樣。PyTorch 和 React 都是 Facebook 支持的靈活框架,用戶通常認為這兩個框架比谷歌的同類框架易用。

FastAI 能吸引課程之外的用戶嗎?它有大量的學生,使用 API 比 Keras 更容易。


給學習者的建議

如果你正考慮學習其中一種框架且具備 Python、numpy、pandas、sklearn 和 matplotlib 的技能,我建議你從 Keras 入手。該框架用戶基礎很大,在求職時非常有用,Medium 上有很多相關文章,API 也很易用。

如果你已經學過 Keras,那麼選擇下一個要學習的框架可能有點困難。我建議你去學 TensorFlow 或 PyTorch,而且要好好學,這樣才能做出良好的深度學習模型。

TensorFlow 顯然是為迎合需求而學習的框架,但 PyTorch 的易用性和靈活性使得它使用起來更加友好。

一旦掌握了這些框架,我建議你留意 FastAI。如果想同時學習基礎和高級深度學習技能,請查看 FastAI 的免費在線課程,FastAI 1.0 承諾幫助用戶輕鬆實施最新的深度學習策略並快速迭代。

無論你選擇了哪個框架,我希望你現在深入瞭解一下哪個框架需求量最大、使用最頻繁、最受關注。原文鏈接:https://www.kaggle.com/discdiver/deep-learning-framework-power-scores-2018。加米穀教育大數據培訓,專注於大數據人才培養,中秋國慶報名學習大數據特惠!


分享到:


相關文章: