想做AI,怎么選開發(fā)工具?這份上手指南送給你
現(xiàn)代人工智能給企業(yè)帶來了很多好處,同時也大大提升了機器的認知能力。作為計算機科學領域里的一項重要技術,人工智能正以***的速度迅速發(fā)展。一項研究成果從學術論文轉化為實際的產品僅需幾個月的時間。然而,過快的發(fā)展速度對于該領域中的新手來說則是一場災難。除了熟悉人工智能技術之外,從業(yè)人員還必須正確選擇技術平臺。本文重點介紹了人工智能在深度學習方面一些重要的可選項,包括每個工具包的主要優(yōu)缺點以及行業(yè)中各自的支持者。
機器學習和深度學習
當代人工智能技術可分為兩類:機器學習和深度學習。目前絕大多數使用的都是前一種,即機器學習。這其中包含了一些數據科學家最常用的算法:線性模型、k均值聚類、決策樹等等。雖然我們現(xiàn)在將它們作為人工智能的一部分,但這是數據科學家長期研究的成果。
在過去兩年里,人工智能的第二種技術受到了更多的關注和炒作:它是機器學習技術的一種專業(yè)化表現(xiàn),即神經網絡,也被稱為深度學習。深度學習正吸引著人們對人工智能或“認知”技術的關注,包括圖像識別、語音識別、自動玩游戲、自動駕駛車輛以及其他自主車輛。通常,這些應用需要大量的數據來饋送和訓練復雜的神經網絡。
機器學習的可選項
處理機器學習的工具包在每個常用的統(tǒng)計數據包中都有。常見的商業(yè)產品有SAS、SPSS和MATLAB。常用的開源工具有R和Python。大數據平臺Apache Spark和Hadoop也有自己的并行機器學習工具(Spark的MLLIB和Apache Mahout)。目前,由于存在類似于scikit-learn和Anaconda這樣的項目,Python正在成為行業(yè)數據科學***的編程語言。
深度學習的可選項
深度學習工具包的發(fā)展非常迅速。學術界和數據巨頭,如Google、百度、Facebook,已經在深度學習投入了很多年,他們擁有數套強大的可選方案。因此,新手們面對的選擇有很多!每個選擇都有著各自不同的優(yōu)勢和生態(tài)系統(tǒng)。
- TensorFlow:來自谷歌,用戶最多。它是由早期的框架構建而成的“第二代”深度學習庫。TensorFlow用的是Python語言,它還包含了TensorBoard,這個工具在調試和檢查網絡方面有很大的優(yōu)勢。 XLA編譯工具提供了模型的***執(zhí)行,而TensorFlow Mobile則為低功耗的移動設備提供了機器學習支持。
- MXNet:由Amazon Web Services牽頭開發(fā),使用用戶很多,支持許多種編程語言。 MXNet已被納入Apache Incubator,正式進入成為***Apache項目的快車道。
- Deeplearning4J:商業(yè)支持的深度學習框架,在Java環(huán)境中性能強大,對企業(yè)應用具有一定的吸引力。
- Torch:一個功能強大的框架,在Facebook和Twitter等公司中使用,但只能用Lua編寫,對其他編程語言的支持較少。
- PyTorch:派生自Torch,PyTorch將Torch帶入了熱門的Python數據科學生態(tài)系統(tǒng)之中。 發(fā)布于2017年,它的支持者中包括Facebook和Twitter。 PyTorch支持動態(tài)計算圖,這在TensorFlow中目前暫不不支持。
- CTNK:Microsoft在深度學習領域的產品,擁有Python和C++ API(Java API尚在實驗中)。
- Caffe:重點在計算機視覺應用領域。核心編程語言是C++,有Python接口。
- Theano:用Python編寫的最古老的深度學習框架之一。在學術界的使用很廣泛,但不適合生產使用。(譯者注,目前已停止更新)
這其中很多的深度學習框架的級別都比較低,開發(fā)人員使用起來并不方便,而高級庫對用戶更加友好,更受開發(fā)者的青睞。其中最重要的庫是Keras,它是用Python開發(fā)的,可創(chuàng)建能在TensorFlow、Theano、CNTK或Deeplearning4j上運行的深度學習應用程序。
蘋果公司在機器學習方面的貢獻也值得一提。與上述工具包不同,蘋果公司僅為模型提供了執(zhí)行框架。開發(fā)人員必須使用Caffe、Keras或scikit-learn等工具來訓練他們的模型,并進行轉換,這樣才能讓應用程序通過蘋果公司的CoreML來使用它們。
從哪里著手?
TensorFlow Github Star數量, 2017年2月。
如果你沒有明確的理由要選擇哪種方案,那么根據絕大多數開發(fā)人員的經驗,以及谷歌在人工智能領域中的聲譽以及Python生態(tài)系統(tǒng)的重要性,Keras和TensorFlow組合當仁不讓地成為***大的默認選擇。 TensorFlow快速增長的人氣值使其可以在短期內與大量的數據工具相兼容。例如,你可以參閱Databricks最近有關在Spark中TensorFlow和Keras對深度學習支持的公告。
同時,亞馬遜網絡服務公司對MXNet的強大支持,以及MXNet自身的增長速度和成為Apache項目,使其成為重要的備選方案之一。而微軟對Azure的強大支持使得CNTK成為該公司重要的成果。
深度學習是一個快速發(fā)展的領域,每個云提供商都將機器學習視為戰(zhàn)略目標。幸運的是,他們都選擇了開放源代碼。隨著深度學習的計算資源越來越集中在云和GPU上,開源的代碼對于想要研究深度學習的人來說是一個很好的消息。