如何進行機器學習框架選擇
人工智慧正值發展熱頭,為了開發和部署人工智慧應用程式,湧現出了很多機器學習框架。這些框架直接跨越開發、測試、優化和生產等流程,為開發人員提供了一個很好的研發捷徑。有的框架注重自身的可用性,有的框架側重於生產部署和引數優化,它們都有各自的優缺點,這也增加了研發人員選擇的難度。
目前,處於最佳框架列表榜首的有:MXNET、Keras、PyTorch、Tensorflow。這些機器學習框架都是資料科學家最常用的,一般用於影像識別、預測和推薦。資料科學家們一般會優先考慮那些能夠為他們簡化演算法過程的框架。公司一般傾向於將大量的時間花費在輔助工序上,例如:資料準備、轉移演算法到生產中、確定機器學習標準等。想要選擇正確的機器學習框架,你還需針對具體的問題而決定,例如:
-
是用於深度學習還是機器學習?
-
什麼樣的硬體、軟體或者雲服務適合擴充套件?
-
開發人工智慧應用的APT程式語言是什麼?
對於機器學習的最佳程式語言,最受歡迎的應該是Python和R。當然,僅次其後的Java、C++和Scala也是不錯的選擇。如果說最佳,Python必須是莫屬。原因很簡單,因為R是統計學家設計的語言,資料結構簡單。而 Python是計算機學家設計的,包含更豐富的資料結構,是一種更具實用性的程式語言。
深度學習和機器學習
深度學習和機器學習看似都屬於人工智慧領域,實則二者不在一個層次上。通俗來說,機器學習是一種實現人工智慧的方法,而深度學習是實現機器學習的技術。
深度學習本身並不是一種獨立的學習方法,其本身也會用到有監督和無監督的學習方法來訓練深度神經網路。目前深度學習發展火熱,但機器學習也不甘落後,雖然基於一種方法層面,但發展速度也不減深度學習。
機器學習框架和深度學習框架之間有區別。本質上,機器學習框架涵蓋用於分類,迴歸,聚類,異常檢測和資料準備的各種學習方法。深度學習框架涵蓋具有許多隱藏層的各種神經網路拓撲。這些層包括模式識別的多步驟過程。網路中的層越多,可以提取用於聚類和分類的特徵越複雜。
深度學習框架有:Caffe,CNTK,DeepLearning4j,Keras,MXNet、TensorFlow。深度學習框架專用於神經網路編碼,最佳的框架選擇推薦是TensorFlow。TensorFlow是可移植的機器學習和神經網路庫,有很強的執行性和伸縮性,但學習難度大。TensorFlow擁有各種各樣的模型和演算法,它們對深度學習非常重視,並且在具有GPU(用於訓練)或Google TPU(用於生產規模預測)的硬體上具有出色的效能。
機器學習框架有:Scikit-learning、Spark MLlib。機器學習的最佳框架選擇是Scikit-learn。SciKit-learn 是老牌的開源 Python 演算法框架,它與 TensorFlow 的主要區別是:TensorFlow 更底層。而 SciKit-learn 提供了執行機器學習演算法的模組化方案,很多演算法模型直接就能用。Scikit-learn是一個強大的、成熟的機器學習Python庫,包含各種各樣成熟的演算法和整合圖。
另外還有一種跨越這兩大類別的“長老級”框架:Theano。當然具體的框架選擇還是要基於所開發的資料型別和應用程式型別。
小專案vs大專案
在開發初期,AI應用程式開發人員會嘗試著執行幾個任務來確定哪一部分在小組資料上執行的最好。當研發者處理更大專案的大資料集時,框架的選擇是不一樣的。支援分散式體系結構的框架是一個很好的選擇,例如H2O或Apache Sparks MLlib。大型專案的伸縮性是一個大問題,對於深度學習來說也是如此。比如,AI開發人員想要進行圖示註冊,他們可以下載TensorFlow,並在桌面上執行同樣的演算法嘗試不同的工具。只要他們明確了哪種方法最可行,便可以嘗試大資料集。
開源有助於豐富社群
人工智慧技術正在進行當中,開源框架是一個顯而易見的事實。客戶端通常喜歡用開源的、可跨平臺的API。開發人員社群對開源框架提供了很大的支援。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542119/viewspace-2200317/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 機器學習之模型選擇機器學習模型
- 在機器學習專案中該如何選擇最佳化器機器學習
- (轉)為什麼選擇機器學習策略機器學習
- 學機器學習要選擇 Python 的13個原因機器學習Python
- 機器學習-學習筆記(二) --> 模型評估與選擇機器學習筆記模型
- 思考:開發者如何挑選最合適的機器學習框架?機器學習框架
- less學習三—父選擇器
- 機器學習中,有哪些特徵選擇的工程方法?機器學習特徵
- 為什麼機器學習會選擇Python語言?機器學習Python
- 機器學習筆記——模型選擇與正則化機器學習筆記模型
- [乾貨]如何從不均衡類中進行機器學習機器學習
- 進入IT行業,為什麼要選擇學習Python語言?行業Python
- jQuery 原始碼學習 (六) 選擇器jQuery原始碼
- 如何使用機器學習進行影像識別 | 資料標註機器學習
- 如何學習機器學習機器學習
- 機器學習處理問題如何選擇一個合適的演算法?機器學習演算法
- FPGA 學習 00 二選一多路選擇器FPGA
- 【2】使用MATLAB進行機器學習(迴歸)Matlab機器學習
- 用Python進行機器學習(附程式碼、學習資源)Python機器學習
- 透過NandGame網站學習選擇器NaNGAM網站
- css樣式選擇器學習筆記CSS筆記
- 如何對SAP Leonardo上的機器學習模型進行重新訓練機器學習模型
- 如何為機器學習進行資料標籤、版本控制和管理機器學習
- 轉行如何開啟機器學習之旅?機器學習
- 機器人想要什麼:利用機器學習有效地進行教學機器人機器學習
- 演算法太多挑花眼?教你如何選擇正確的機器學習演算法演算法機器學習
- [AI開發]深度學習如何選擇GPU?AI深度學習GPU
- Python VS Java如何選擇?Python學習分析!PythonJava
- 12.8學習日報(背景簡寫、選擇器繼承性、選擇器的權重)繼承
- 為什麼機器學習會選擇Python語言?很簡單!機器學習Python
- 演算法金 | 選擇最佳機器學習模型的 10 步指南演算法機器學習模型
- 機器學習—降維-特徵選擇6-4(PCA-Kernel方法)機器學習特徵PCA
- Node.js 和 Python之間如何進行選擇?Node.jsPython
- Storm框架:如何根據業務條件選擇不同的bolt進行下發訊息ORM框架
- 002---選擇器(標籤選擇器、類選擇器、id選擇器、偽類選擇器、萬用字元選擇器)字元
- TensorFlow.NET機器學習入門【8】採用GPU進行學習機器學習GPU
- 如何在裸金屬伺服器和獨立伺服器之間進行選擇?伺服器
- 如何學習Ubuntu用法?Linux運維版本選擇UbuntuLinux運維