基于Apache Spark的機器學習及神經網絡算法和應用

MarcelaSell 8年前發布 | 35K 次閱讀 Spark 神經網絡 算法 機器學習

使用高級分析算法(如大規模機器學習、圖形分析和統計建模等)來發現和探索數據是當前流行的思路,在IDF16技術課堂上,英特爾公司軟件開發工程師王以恒分享了《基于Apache Spark的機器學習及神經網絡算法和應用》的課程,介紹了大規模分布式機器學習在欺詐檢測、用戶行為預測(稀疏邏輯回歸)中的實際應用,以及英特爾在LDA、Word2Vec、CNN、稀疏KMeans和參數服務器等方面的一些支持或優化工作。

當前的機器學習/深度學習庫很多,用Spark支撐分布式機器學習和深度神經網絡,主要是基于兩點考慮:

大數據平臺的統一性。因為隨著Spark特性,分析團隊越來越喜歡用Spark作為大數據平臺,而機器學習/深度學習也離不開大數據。

其他的一些框架(主要是深度學習框架,如Caffe)對多機并行支持不好。

在某頂級支付公司的端到端大數據解決方案中,英特爾開發的Standardizer、WOE、神經網絡模型、Estimator、Bagging Utility等都被應用,并且ML管線也由英特爾改進。

稀疏邏輯回歸主要解決了網絡和內存瓶頸的問題,因為大規模學習,每次迭代廣播至每個Worker的的權重和每個任務發送的梯度都是雙精度向量,非常巨大。英特爾利用數據稀疏性,使用高級編碼緩存數據(使用稀疏格式緩存),壓縮數據通信,并對二進制值優化處理,最后得到的梯度是稀疏向量。

基于Apache Spark的大規模主題模型正在開發中(https://github.com/intel-analytics/TopicModeling)。

Spark上的分布式神經網絡,Driver廣播權重和偏差到每個Worker,這與稀疏邏輯回歸有類似之處,英特爾將神經網絡與經過優化的英特爾數學核心函數庫(支持英特爾架構加速)集成。

面向Spark的參數服務器的工作,包括數據模型、支持的操作、同步模型、容錯、集成GraphX等,通過可變參數作為系統上的補充,實現更好的性能和容錯性,相當于將兩個架構僅僅做系統整合(Yarn之上)。由于模型并行的復雜性,英特爾團隊目前也還沒有考慮模型并行的工作。

來自: http://www.thebigdata.cn/QiTa/29694.html

 本文由用戶 MarcelaSell 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!