在我看來,機器學習這個領域,從業者(特指技術類從業者,不包括資本類玩家)一定會分成三個不同的群體:
1.學術研究者
他們的工作是從理論上詮釋機器學習的各個方面,試圖找出「這樣設計模型/引數為什麼效果更好」,並且為其他從業者提供更優秀的模型,甚至將理論研究向前推進一步。
能夠做到這一步的人,可以說鳳毛麟角,天賦是繞不過去的大山,機遇和努力也缺一不可。
對於這些人,其實也輪不到我們來建議,在長期的研究中他們都有自己喜好的工具和方法,甚至有一言不合就自己開發工具甚至開發語言的(比如lecun……)。
題主應該不屬於這一層。
2.演算法改進者
他們也許無法回答出「我的方法為什麼work」,也許沒有hinton,lecun那樣足以載入史冊的重大成果,但是卻能根據經驗和一些奇思妙想,將現有的模型玩出更好的效果,或者提出一些改進的模型。這些人通常都是各個機器學習巨頭公司的中堅力量或者成長中的獨角獸,使用什麼模型對他們來講也不是問題,根據所處的環境,通常都有固定的幾個選擇。他們其實也並不怎麼需要關心「我該用什麼框架」,重要的是什麼框架能夠快速地把想法實現出來。所以你會看到caffe和theano和mxnet和torch都一樣有大批的使用者,仍然在貢獻大量的新演算法的實現。在這個層面,insight和idea才是重要的東西,各種工具的區別,影響真的沒那麼大。可能會讓乙個結果早得到或者晚得到幾天或者幾周,卻不可能影響「有沒有成果」。
這也造成了另外乙個結果:最最新,最最前沿的成果往往還是用caffe或者theano做出來,發*****,然後tensorflow才開始復現這些成果。搞不好很長一段時間之內也許tf上面都不會出現原生的新奇玩意兒。因為那些正在努力嗷嗷**文的大中牛們時間非常寶貴,沒有太多心思重新學習一種框架。
不過沒關係,題主(至少目前)應該不屬於這一層。
3.工業實現者
這些人基本上不會在演算法領域涉入太深,也就是了解一下各個演算法的實現,各個模型的結構。他們更多地是根據**去復現優秀的成果,或者使用其他人復現出來的成果,並且試圖去在工業上應用它。
這個層次的人數是最多的,涉及的因素也非常複雜。但是在框架選擇上,其實完全可以用最單純的原則:哪個人多用哪個。
至於除錯的方便性或者效能或者最新演算法的實現能力,其實都與使用者數量相關。
人多了貢獻**的人就會更多,遇到問題時候能討論的人也就更多,出現新的成果時,在這個框架上進行實現的的也就越多,同樣的,為這個框架開發各種外圍工具的人也會更多。目前這個階段,tf的靠山最厚實,功能雖然還不強大,更新也還不夠快,但是確實人氣已經攢得很足了,一些外圍的包裝比如tflearn也實現了很多最新的成果。所以從目前來看,投身tf不會是乙個壞選擇,找工作的時候你遇到用tf的公司的可能性也是非常非常高的。
至於mxnet,
@lau phunter
的答案說的很好,這個年代早就不是勝者通吃的時候了,即使tf有google撐腰,也不可能「消滅」其他幾個框架,更何況每個框架都有自己出彩的地方。現在流行的這幾個框架都有一些演算法改進層次的高手大牛支援著,他們很可能會繼續使用正在用的框架。哪怕只有他們支援,也足夠撐起乙個框架的生命力了,更何況他們的號召力還頗為可觀。
深度學習框架
近一年來,深度學習的風起雲湧,產生了許多令人興奮的成果,同時,深度學習框架也是百家爭鳴。經過這一年的觀察,tensorflow 似乎成為了一種潮流,並且越來越多的框架開始為 keras 提供支援,它可能會成為一種標準。今後選擇keras框架作為深度學習的目標。keras 被認為是構建神經網路的未來,...
深度學習初探(二)深度學習框架
theano 是最早的深度學習框架之一,是乙個基於 python 語言 定位底層運算的計算庫,theano 同時支援 gpu 和 cpu 運 算。由於theano 開發效率較低,模型編譯時間較長,同時開發人員轉投tensorflow 等原因,theano 目前已經停止維護 scikit learn ...
TensorFlow深度學習框架
tensorflow支援python和c 兩種程式語言,再複雜的多層神經網路模型都可以用python來實現,如果業務使用其他程式設計也不用擔心,使用跨語言的grpc或者http服務也可以訪問使用tensorflow訓練好的智慧型模型。tensorflow 是乙個採用資料流圖 data flow gr...