當前位置:
首頁 > 最新 > 人工智慧之機器學習篇——並行機器學習

人工智慧之機器學習篇——並行機器學習

並行機器學習

經過多年的發展,互聯網已獲得巨大的成功。由此,人們可以在不同時間與地域獲取自己希望獲得的數據。隨著數據量的激增,如何有效獲得並通過機器學習技術來更好地利用這些數據已成為信息產業繼續興旺發展的關鍵。因此,機器學習演算法和技術就成為解決這類問題的有力工具。

在中小規模問題上,機器學習已經從理論研究階段逐漸上升到了實際應用階段。但是在大規模的實際應用中,特別是在大數據環境下的大數據體量大、結構多樣、增長速度快、整體價值大而部分價值稀疏等特點,對數據的實時獲取、存儲、傳輸、處理、計算與應用等諸多方面提出了全新挑戰。傳統的面向小數據的機器學習技術已很難滿足大數據時代下的種種需求,並且使用單個計算單元進行運算的集中式機器學習演算法難以在在大規模的運算平台上執行。因此,在大數據時代,突破傳統的思維定式和技術局限,研究和發展革命性的、可滿足時代需求的並行機器學習的新方法和新技術,從大數據中萃取大價值,具有重要的學術和應用價值。

目前,機器學習應用非常廣泛的很多領域都已經面臨了大數據的挑戰。如互聯網和金融領域,訓練實例的數量是非常大的,每天會有幾十億事件的數據集。另外,越來越多的設備包括感測器,持續記錄觀察的數據可以作為訓練數據,這樣的數據集可以輕易的達到幾百TB。再如亞馬遜或者淘寶上的商品推薦系統。每天都很多用戶看到了很多推薦的商品,並且點擊了其中一些。這些用戶點擊推薦商品的行為會被亞馬遜和淘寶的伺服器記錄下來,作為機器學習系統的輸入。輸出是一個數學模型,可以預測一個用戶喜歡看到哪些商品,從而在下一次展示推薦商品的時候,多展示那些用戶喜歡的。類似的,在互聯網廣告系統中,展示給用戶的廣告、以及用戶點擊的廣告也都會被記錄下來,作為機器學習系統的數據,訓練點擊率預估模型。在下一次展示推薦商品時,這些模型會被用來預估每個商品如果被展示之後,有多大的概率被用戶點擊。從這些例子我們可以看出來,這些大數據之所以大,是因為它們記錄的是數十億互聯網用戶的行為。而人們每天都會產生行為,以至於百度、阿里、騰訊、奇虎、搜狗這些公司的互聯網服務每天收集到很多塊硬碟才能裝下的數據。而且這些數據隨時間增加,永無止境。傳統機器學習技術在大數據環境下的低效率以及大數據分散式存儲的特點使得並行化的機器學習技術成為了解決從大規模、海量數據中學習的重要途徑。

由此可見,並行機器學習是隨著「大數據」概念和「雲計算」的普及而得到迅速發展的。大數據給並行機器學習帶來了需求;雲計算給並行機器學習帶來了條件。所謂並行機器學習,就是在並行運算環境下(例如雲計算平台),利用大量運算單元合作完成機器學習任務,通過擴大時間單位內使用的運算單元規模,減小整個任務的完成時間,其主要目的有二:

(1) 處理在單個運算單元上在可容忍的時間範圍內無法解決的超大規模問題;

(2) 充分利用多運算單元的優勢,提高機器學習效率,減小整個任務的完成時間。

在大數據環境下進行並行機器學習演算法的研究在近年來得到了高度的關注和快速的發展。從目前主要技術進展來看,並行機器學習演算法的研究在以下一些方面取得了重要的成果。

第一,並行化編程技術的研究。目前比較流行的研究是通過MapReduce、MPI、CUDA、OpenMP等並行編程模型對傳統的機器學習技術進行並行化的改造和拓展,出現了如並行聚類演算法、並行分類演算法、並行關聯規則挖掘演算法和神經網路並行化演算法等等。由於各種並行化技術的通用性和效率不一樣,不同的機器學習演算法在並行化的過程中必須結合自身特點以及被處理問題的特點而選擇合適的並行化技術。在雲計算時代,雲計算平台為機器學習演算法的並行化提供了強大的並行與分散式處理平台。因此結合雲計算平台在大數據環境下開展並行與分散式機器學習演算法的研究與應用已經成為了機器學習領域的一個重要方向。一個典型的例子就是Zhao等人於2009年最早提出了適用於大數據聚類的多節點並行K均值演算法PKMeans,給出了基於Hadoop雲平台的並行聚類演算法的具體並行方法和詳細策略。

第二,學習數據的並行化處理研究。面對超多樣本和超高維度的數據進行學習和挖掘,傳統的機器學習和數據挖掘方法無論是在處理時間上還是在求解性能上都失去了實際的應用價值。另一方面,傳統機器學習方法大多數都需要將學習樣本和挖掘對象裝載到內存中,然後再進行處理。但是在大數據環境下,大數據已經不可能在單一的存儲節點上進行集中存儲,這就給學習過程帶來了困難和挑戰,分散式存儲成為了必然的選擇。如何針對大數據本身的特徵進行高效分拆以及對分拆後的處理結果進行高效組裝,這是能夠有效利用並行化機器學習技術對大數據分拆後得到的小數據進行求解的關鍵。並行化機器學習技術的本質在於每一個並行運行的演算法處理一些可解的數據,因此大數據的分拆是並行化機器學習技術能夠在大數據環境下使用的前提。大數據的分拆問題可以理解為一個優化問題。隨機拆分、平均拆分、基於實驗設計方法的拆分等各種方法都可以在一定意義上為並行化的機器學習技術提供可解的數據輸入。然而,這些拆分方法不一定是最優的,如何對大數據進行最優分拆是一個困難問題。作為一種高效的全局最優化方法,計算智能優化方法一直以來都被研究者認為是能夠輔助機器學習技術提高性能的有效途徑。然而,面對大數據的分拆,由於傳統集中式的計算智能方法在處理時間上和規模容納上存在嚴重的效率瓶頸,分散式計算智能演算法成為了在大數據時代下實現問題優化的新途徑。通過分散式計算智能演算法,可以為大數據的最優分拆提供有效的手段,並使得大數據成為並行機器學習技術可解的數據輸入,最終將並行機器學習技術得到的結果進行高效組裝而實現對大數據應用問題的求解。分散式計算智能優化方法與並行機器學習技術進行有機結合,將是並行機器學習技術未來重要發展方向之一。

第三,並行演算法協同處理技術的研究。一些高準確性的學習演算法,基於複雜的非線性模型或者採用非常昂貴的計運算元程序。在這兩種情況下,將計算分配到單個處理單元是大數據機器學習演算法的關鍵點。單台機器的學習過程可能會非常慢,採用並行多節點或者多核處理,可提高在大數據中使用複雜演算法和模型的計算速度。但是如何在多個處理單元上對這些機器學習演算法進行協同成為了制約學習效率的關鍵因素。很多應用,如自動導航或智能推薦等,都需要進行實時預測。在這些情形下由於推理速度的限制,需要推理演算法的並行化。決定系統計算時間的因素一般有兩個:一是單任務的處理時間,該情況下計算時間的縮短可以通過提高系統單機的處理能力和吞吐量來解決;另一個因素是時延,在絕大多數應用場合,任務由多個相互關聯的進程組成,不同進程的處理時間長短不一,任務整體的處理實際有待於各個進程的結果,如某一進程處理時間延長會造成時延,整個任務的處理速度會隨著時延的增加快速下降。例如,自動導航需要基於多個感測器做出路徑規劃的決策;智能推薦需要綜合用戶的特徵分析、歷史記錄等。因此,如何對這些分布在不同處理單元的並行程序進行協同,提高學習效率,成為了並行機器學習演算法的一個重要研究內容。

並行機器學習技術因其作為解決大數據挖掘和學習的重要手段,得到各級政府部門和國內外IT廠商的高度重視。目前,多核技術和計算機集群技術的實現,使得單個任務在成百上千,甚至數萬個計算單元上同時運行變得可行。我們可用的計算資源在飛速發展。雖然單個計算單元運算能力的提高已經逐步陷入停滯狀態,尤其在PC機的處理器上,納米級的顆粒度已經難以逾越。但是新的處理器多核技術給我們帶了巨大的改變。在如今的個人電腦CPU市場,各大廠商都已經意識到這個領域的廣闊市場,將多核CPU作為主流產品,大幅提高了個人電腦的性能。而在大型機領域,近年來國內陸續上線多個超級計算中心,一台普通的超級計算機的運算單元數量已經增加到幾萬甚至更多。這些都給並行機器學習技術的研究、發展和應用提供了重要的支持。

目前,大規模並行化的機器學習演算法不僅在理論研究和演算法設計方面引起了學術界的廣泛關注,而且在軟體系統開發和產業應用方面已經由學術界和工業界形成了相應的成果,產生了積極的影響。例如中科院計算所開發了基於雲計算的並行分散式數據挖掘工具平台(PDMiner)。PDMiner開發實現了各種並行數據挖掘演算法,比如數據預處理、關聯規則分析以及分類、聚類等演算法。PDMiner在處理數據規模上可以支持TB級別、具有很好的加速比性能,可以有效地應用到實際海量數據挖掘中。此外,在PDMiner中還開發了工作流子系統,提供友好統一的介面界面方便用戶定義數據挖掘任務,並且開放了靈活的介面方便用戶開發集成新的並行數據挖掘演算法。清華大學設計了面向大規模文本分析的主題模型建模方法WarpLDA,可以實現數十億文本上的百萬級別主題模型學習[189]。微軟提出了用於圖數據匹配的Horton - Querying Large Distributed Graphs(http://research.microsoft.com/en-us/projects/ldg/)以及分散式機器學習開源工具包DMTK - Distributed Machine Learning Toolkit (https://github.com/Microsoft/DMTK);Google提出了適合複雜機器學習的分散式圖數據計算Pregel框架,但不開源;CMU提出了GraphLab開源分散式計算系統。百度的大規模機器學習技術搭建了一個容納萬億特徵數據的、分鐘級別模型更新的、自動高效深度學習的、高效訓練的點擊率預估系統。百度相關技術負責人表示:「百度的並行機器學習技術讓百度走在世界前列,甚至比谷歌做的還要好,谷歌目前做的是二分類、並行化,處理百億特徵,分鐘級別。這些,百度通過自己的創新也已達到,百度的技術可以容納百億數據特徵,讓特徵學習效率提升千倍,模型分鐘更新,訓練速度提升十倍。」

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

機器學習入門——使用python進行監督學習
概念解析:深入理解人工智慧和機器學習

TAG:機器學習 |