如何進行機器學習框架選擇
人工智慧正值發展熱頭,為了開發和部署人工智慧應用程式,湧現出了很多機器學習框架。這些框架直接跨越開發、測試、最佳化和生產等流程,為開發人員提供了一個很好的研發捷徑。有的框架注重自身的可用性,有的框架側重於生產部署和引數最佳化,它們都有各自的優缺點,這也增加了研發人員選擇的難度。
目前,處於最佳框架列表榜首的有: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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何進行框架的選擇框架
- 機器學習入門(二):工具與框架的選擇機器學習框架
- Node.js 和 Python之間如何進行選擇?Node.jsPython
- 機器學習之模型選擇機器學習模型
- 關於社保行業框架的選擇。。。行業框架
- 機器學習 特徵工程之特徵選擇機器學習特徵工程
- 如何選擇機器學習分類器?機器學習
- 如何進行 Python效能分析,你才能如魚得水?Python
- Mac、Windows、Linux三大作業系統,如何進行選擇?MacWindowsLinux作業系統
- 介面測試框架選擇框架
- (轉)為什麼選擇機器學習策略機器學習
- 如openGauss、PolarDB、OceanBase等選擇開源
- 為什麼選擇Guice框架GUI框架
- 如何選擇一個Flex框架Flex框架
- 理解pytorch幾個高階選擇函式(如gather)PyTorch函式
- 如何選擇註冊公眾號的型別?如何進行新媒體運營型別
- 換ip服務如何進行挑選
- 手把手擼套框架-ORM框架的選擇框架ORM
- 為什麼選擇Cynefin框架? – zwischenzugs框架
- Signal:更多前端框架的選擇前端框架
- 我們是如何選擇框架的?框架
- 框架選擇的7個原則框架
- 如何選擇前端框架:ANGULARVSEMBERVSREACT前端框架AngularReact
- 機器學習筆記——模型選擇與正則化機器學習筆記模型
- 機器學習研究與開發平臺的選擇機器學習
- 機器學習之特徵選擇和降維的理解機器學習特徵
- 機器學習中,有哪些特徵選擇的工程方法?機器學習特徵
- 從模型選擇到超參調整:如何為機器學習專案選擇演算法模型機器學習演算法
- 前端框架的選擇——前端各大框架特點的分析前端框架
- 如何進行雲端儲存架構框架設計?架構框架
- 通過 Spring 框架如何進行JDBC操作呢?Spring框架JDBC
- mysql 行格式選擇_Mysql 行格式MySql
- 為什麼機器學習會選擇Python語言?機器學習Python
- 學機器學習要選擇 Python 的13個原因機器學習Python
- 怎樣選擇適合自己php框架PHP框架
- Flask VS Django,選擇哪個框架好?FlaskDjango框架
- Element UI框架中巧用樹選擇器UI框架
- 初學 golang 選擇這兩個框架Golang框架