陳 康,向 勇,喻 超
(1.中國電信股份有限公司廣東研究院 廣州 510630;2.廣州優億信息科技有限公司 廣州 510630)
機器學習是人工智能的一個核心研究領域。1997年Mitchell T M在“Machine Learning”一書中給出了機器學習的經典定義“計算機利用經驗改善系統自身性能的行為”[1]。人類具有學習能力,其學習行為背后具有非常復雜的處理機制,這種處理機制就是機器學習理論。機器學習主要研究如何使用計算機模擬和實現人類獲取知識(學習)過程,創新、重構已有的知識,從而提升自身處理問題的能力。機器學習的最終目的是從數據中獲取知識。
近年來,大數據吸引了越來越多的關注。從各種各樣的數據(包括結構化、半結構化和非結構化數據)中快速獲得有價值信息的能力,就是大數據技術。傳統數據分析技術著重于用預先設定的適當統計方法對數據進行分析,以求發現數據的功能和價值;與傳統數據分析相比,大數據技術的其中一個核心目標是要從體量巨大、結構繁多的數據中挖掘出隱藏在背后的規律,從而使數據發揮最大化的價值。從大量結構繁多的數據中挖掘隱藏規律,對人工操作而言,幾乎無能為力,必須與機器學習相結合,由計算機代替人去挖掘信息,獲取知識。大數據技術的目標實現與機器學習的發展必然密不可分。
業界對大數據的特征也進行了歸納,主要包括以下4點(“4個 V”):數據體量巨大 (volume)、數據類型繁多(variety)、數據價值密度低(value)、有很多實時數據要求快速處理(velocity)。由于這幾大特征,大數據的發展從研究方向、評測指標以及關鍵技術等方面對機器學習都提出了新的需求和挑戰。
在整個機器學習的發展歷程中,一直有兩大研究方向。一是研究學習機制,注重探索、模擬人的學習機制;二是研究如何有效利用信息,注重從巨量數據中獲取隱藏的、有效的、可理解的知識。學習機制的研究是機器學習產生的源泉,但隨著大數據時代各行業對數據分析需求的持續增加,通過機器學習高效地獲取知識,已逐漸成為當今機器學習技術發展的主要推動力。
大數據時代的機器學習更強調“學習本身是手段”,機器學習成為一種支持技術和服務技術,如何基于機器學習對復雜多樣的數據進行深層次的分析,更高效地利用信息成為當前機器學習研究的主要方向。機器學習越來越朝著智能數據分析的方向發展,并已成為智能數據分析技術的一個重要源泉。另外,在大數據時代,隨著數據產生速度的持續加快,數據的體量有了前所未有的增長,而需要分析的新的數據種類也在不斷涌現,如文本的理解、文本情感的分析、圖像的檢索和理解、圖形和網絡數據的分析等,機器學習研究領域涌現了很多新的研究方向,很多新的機器學習方法被提出并得到了廣泛應用。比如,考慮如何利用未標識數據的半監督學習 (semi-supervised learning)[2,3],有效解決訓練數據質量問題;提高學習結果的泛化能力的集成學習(integrated learning)[4];在不同的領域進行知識遷移的遷移學習(transfer learning)等,吸引了廣泛的研究和興趣。
機器學習要成為大數據時代的有效分析方法,還應特別解決可擴展性問題,即如何處理大規模數據的問題,這時需要考慮采用并行化的方法。大數據時代的特點及要求如下。
(1)大量的數據實例
在很多領域,如互聯網和金融領域,訓練實例的數量是非常大的,每天匯合幾十億事件的數據集是很常見的。另外,越來越多的設備包括傳感器,持續記錄觀察的數據可以作為訓練數據,這樣的數據集可以輕易地達到幾百TB。有效處理大數據集的比較好的方式是組合服務器群的存儲和帶寬。最近提出的幾個計算框架如MapReduce和DryadLINQ,讓大數據集的計算變得更加容易。這些框架通過簡單的、天然可并行化的語言原語將編程框架和使用高容量存儲及執行平臺的能力有效地組合在一起。
(2)輸入數據的高維度
機器學習的應用包括自然語言、圖形或者視頻,這些應用中的數據實例是由很多數量的特征來表示的,遠遠超過了目前常見的能夠輕松處理的特征量級別。在特征空間進行并行計算是可以將計算擴展得更豐富的表示方法,還可以加入一些在特征空間進行迭代運算的算法。
(3)模型和算法的復雜性
一些高準確性的學習算法,基于復雜的非線性模型或者采用昂貴的計算子程序。在這兩種情況下,將計算分配到多個處理單元是大數據學習算法的關鍵點。某些領域的數據在一些基本的特征上是非線性結構,在這些應用中采用高度非線性表示方法比采用簡單的算法在性能上要好很多。這類算法的一個共同特征是計算復雜性,單臺機器的學習過程可能會非常慢。采用并行多節點或者多核處理,可提高在大數據中使用復雜算法和模型的計算速度。
(4)計算時間的限制
很多應用,如自動導航或智能推薦等,都需要進行實時預測。在這些情形下由于推理速度的限制,需要推理算法的并行化。決定系統計算時間的因素一般有兩個:一是單任務的處理時間,該情況下計算時間的縮短可以通過提高系統單機的處理能力和吞吐量來解決;另一個因素是時延,在絕大多數應用場合,任務由多個相互關聯的進程組成,不同進程的處理時間長短不一,任務整體的處理實際有待于各個進程的結果,如某一進程處理時間延長會造成時延,整個任務的處理速度會隨著時延的增加快速下降。例如,自動導航需要基于多個傳感器做出路徑規劃的決策;智能推薦需要綜合用戶的特征分析、歷史記錄等。處理能力、吞吐量和時延的限制并不總是兼容,但對于兩者來說,采用高度并行化的硬件(如GPU或者FPGA等)十分有效。
(5)預測級聯
有些應用要求順序、互相依賴的預測,這些應用具有高度復雜的聯合輸出空間,并行化在這種情形下可以大大提高推理的速度。很多現實中的問題如物體追蹤、話音識別以及機器翻譯,都要求執行一系列互相依賴的預測,形成預測級聯。如果一個級聯作為一個推理任務,就會有一個很大的聯合輸出空間,因為計算復雜性的增加,通常會導致非常高的計算成本。在預測任務之間的互相依賴性通常是通過對單個任務進行階梯式的并行化以及自適應的任務管理來實現的。
(6)模型選擇和參數掃描
調整學習算法的超參數以及統計重要性評估要求多次執行學習和推理,這些過程屬于所謂的可并行化應用,本身就非常適合并發執行。在參數掃描中,學習算法在配置不同的同一個數據集上運行多次,然后在一個驗證集上進行評估;在統計重要性測試過程中如交叉驗證或者bootstraping中,訓練和測試在不同的數據子集上重復執行,執行的結果匯合在一起以進行接下來的統計重要性測試。在這些任務中,并行平臺的用途是非常明顯的。
大數據的價值發現好比大海撈針,從數據中挖掘出價值,而不是被大量數據所淹沒。這要求服務于大數據的機器學習技術在以下各個方面能有較好的適應能力。
(1)泛化能力
通常期望經訓練樣本訓練的機器學習算法具有較強的泛化能力,也就是能對新輸入給出合理響應的能力,這是評估機器學習算法性能的最重要指標。機器學習最基本的目標是對訓練數據中的實例進行泛化推廣。不管有多少數據,在測試時要再次看到那些同樣的實例是非常不可能的。在訓練數據上表現好是很容易的,只需要記住那些實例。在機器學習中最一般的錯誤是在訓練數據上進行測試,然后錯誤地認為成功了。這樣選擇的分類器如果在新數據上進行測試,輸出的結果可能不會比隨機的猜測更好。
(2)速度
在機器學習中,和速度有關的參數有訓練速度和測試速度,這兩者是互相關聯的。有的算法能夠取得很好的訓練速度,但測試速度卻很慢;而有的算法恰恰相反。所以一個很重要的研究方向是如何協調這兩者之間的關系,開發出在訓練速度和測試速度方面表現都很好的機器學習算法。
(3)可理解性
很多功能強大的機器學習算法基本上都是“黑盒子”,對用戶而言,只能看到輸出結果,卻不知道為什么是這樣的結果。隨著數據量的增加、問題復雜度的提高,人們在得到結果的同時更加希望了解為什么得到這樣的結果。
(4)數據利用能力
人們收集數據的能力越來越強,收集的數據類型也越來越多,不僅包括有標識的數據,還有大量未標識的數據以及那些含有大量噪聲、不一致、不完整的臟數據、平衡數據。如果還是像以前一樣簡單地丟棄臟數據,在信息過程中只使用已標識數據,不使用未標識數據,那么就會造成數據的很大浪費,而且學習到的模型的泛化能力會面臨很大的問題。所以研究并開發能夠有效利用所有這些數據的機器學習方法具有非常重要的實際意義。
(5)代價敏感
面向算法研究的機器學習原型系統在向實際可用的機器學習系統轉換時,會面臨更多、更復雜的內外部因素的影響。這其中一個重要的因素就是在現實世界中,不同的領域中不同誤判結果間代價的平衡性,有的誤判結果可能會導致很嚴重的后果,而有的則影響很小。大數據分析的精髓就在于綜合各種內部、外部數據對一個事物進行360°的刻畫和解讀,涉及的因素更多。近年來,代價敏感的學習算法就是這方面的一個有效的解決方案。在這類算法中,通過引入代價信息來度量誤判的嚴重性,不同的代價參數代表不同的損失,最終的目標是最小化總的代價而不是總的錯誤。
(6)知識的遷移性
如何將從一個任務中學習到的知識遷移到其他任務中,以提高其他相關任務的學習性能。比如,監督學習的公式化中包括學習函數,在很多大數據場景中,可能會需要學習一系列相關的函數,比如用戶互聯網社交關系判斷函數以及用戶實際生活社交關系判斷函數。雖然在這兩種情況下判斷函數會有所不同,但它們還是有很多共同點的。
(7)數據隱私性
如何在獲得數據分析成果的同時,保護數據的隱私。
當前,機器學習研究與應用中最常用的關鍵技術有:半監督學習、集成學習(含Boosting、Bagging等算法)、遷移學習、貝葉斯網絡、決策樹、統計學習理論與支持向量機、隱馬爾可夫模型、神經網絡、k近鄰方法、序列分析、聚類、粗糙集理論、回歸模型等。其中在大數據分析中,半監督學習、集成學習、遷移學習和概率圖模型(probabilistic graphical model,PGM)等技術尤為重要。
按照傳統的機器學習理論框架,機器學習可以分為有監督學習和無監督學習兩類。在有監督學習中,利用的是已標識數據,而無監督學習中只利用未標識數據。在大數據時代,隨著數據采集技術和存儲技術的發展,獲取大量未標識數據是很容易的。但如果要獲得大量的已標識數據,因為需要領域人才的參與,非常耗時耗力,而且也是一個很容易出錯的過程。所以,在現實世界中,未標識數據的數量遠大于已標識數據的數量,如果這些未標識數據不能得到很好的利用,學到的模型的泛化能力可能會很差,還會造成數據的浪費;而如果像無監督學習一樣只使用未標識數據,就會忽視已標識數據的價值。半監督學習就是研究如何綜合利用少量已標識數據和大量未標識數據,獲得具有良好性能和泛化能力的學習機器。
半監督學習利用的數據集X={x1,x2,…,xn}(n=l+u)可以分為兩部分:一部分是有標識的數據集Xl={x1,…,xl},這部分數據集中的樣本點xi的類別標識yi已經給出;另一部分是無標識數據集Xu={xl+1,…,xl+u},這部分數據集中樣本點的類別標識未知。與實際情況相符,一般假設u>>l,即無標識數據遠遠多于有標識數據。半監督學習的工作原理主要基于3個假設:半監督光滑假設、聚類假設以及流型假設[5]。
半監督光滑假設是指如果在高密度區的兩個點是相近的,即由一個高密度路徑相連,那么它們對應的輸出也是相近的;如果兩個點被一個低密度區域分隔,那么對應的輸出不一定是相近的,適用于分類和回歸學習任務。聚類假設是指屬于同一個聚類的數據實例,很有可能具有相同的分類標識。根據這個假設,可以利用未標識數據更準確地找到每個聚類的邊界。聚類假設并不是指每個分類都形成一個單一的、緊湊的聚類,只表示不太可能在同一個聚類中觀察到屬于兩個不同分類的數據。流型假設是指高維的數據大致上分布在一個低維的流型上。很多統計方法和機器學習算法中的一個主要問題是所謂的維數災難問題,這個問題對生成式模型的半監督學習有很大影響,而流型假設為這個問題的解決提供了一個很好的基礎。如果數據正好分布在低維的流型中,那么機器學習算法就可以在這個低維的空間中進行,從而避免維數災難的問題。
半監督學習方法包括基于生成式模型的半監督學習、基于低密度劃分的半監督學習、基于圖的半監督學習以及基于不一致性的半監督學習。基于生成式模型的半監督學習方法利用了聚類假設,未標識數據所屬類別的概率被看成一組缺失參數,采用最大期望算法對生成式模型的參數進行極大似然估計?;谏墒侥P偷陌氡O督學習方法具有簡單、直觀的特點,在訓練數據特別是有標識數據很少時,可以獲得比判別式模型更好的性能。但在模型假設與數據分布不一致時,使用大量的未標識數據來估計模型參數會降低學到模型的泛化能力。所以需要尋找合適的生成式模型,這需要大量的相關領域的知識?;诘兔芏葎澐值陌氡O督學習方法也基于聚類假設,要求決策邊界盡量通過數據較為稀疏的區域,以免把聚類中稠密的數據點分到決策邊界兩側?;趫D的半監督學習方法基于流型假設,假設所有的樣本點(包括已標識與未標識)以及之間的關系可以表示為一個無向圖的形式,圖的節點為數據樣本點,而邊則體現了兩個樣本點之間的相似度關系。基于圖的半監督算法的優化目標就是要保證在已標識點上的結果盡量符合而且要滿足流型假設要求?;诓灰恢滦缘陌氡O督學習方法利用了聚類假設和流型假設,使用兩個或多個學習機器,通過在不同視圖下的數據集進行學習的兩個分類器之間的交互來提高分類器的精度,未標識樣例被分類器逐步標識,選出確信度最高的樣例加入訓練集,不斷重復,直到未標識集全部標識為止,更新模型。
根據以上的討論,半監督學習可以利用未標識數據來提高學習的性能。但在實際應用中,很難測試到底哪些假設(光滑假設、聚類假設、流型假設)是成立的,如果選擇了錯誤的算法,那么學習算法的性能有可能很差。在這種情況下 ,安全的半監督學習算法具有很大的應用前景,在任何情況下,至少能夠獲得和監督學習同樣的性能。通過維護多種類型學習器的一個后驗分布,貝葉斯建模提供了一個可行的方案。這種方案面臨的挑戰是需要在假設和學習器中定義一個智能的先驗分布,并為不同類型的半監督學習器定義貝葉斯公式,以便可以定義一個合適的似然函數。其他的安全的半監督學習算法還可以通過開發頑健的基于圖的方法來獲得,或者不做那么嚴格的假設,使得這些假設在更多、更復雜的數據集中都可以被滿足。
另外,以上討論的半監督學習算法只是利用了已標識數據和未標識數據之間的關系,還有很多其他類型的關系并沒有得到很好的利用,這在大數據時代尤為突出。比如,假設希望為社交網絡中的人預測分類標識或者數字型數值等,那么社交網絡中人與人之間的朋友關系或者共同的興趣愛好、相近的地理位置、點擊了同一個廣告等關系,都可以用來提高半監督學習的性能。將這些信息集成到半監督學習的算法中具有非常重要的實際意義。
在現實生活中,一群人經常能比一個人做出更好的決策,特別是當群體中的每個人都有不同見解時。對于機器學習來說,這個道理同樣適用。集成學習就是這樣的機器學習方法,通過將多個不同的學習系統的結果進行整合,可以獲得比單個學習系統更好的性能。在集成學習中,即便是采用更簡單的學習系統,也可以獲得更好的性能。另外,集成學習的架構本質上就具有易于并行的特性,為在處理大數據時提高訓練和測試效率提供了很好的基礎。自集成學習的概念提出,集成學習在很多領域得到了快速的發展和廣泛的應用。
傳統的機器學習的原理是搜索,通過搜索所有可能函數構成的假設空間集合,找出一個最逼近未知函數的近似函數。一般來說,傳統機器學習的輸出結果都會面臨3個方面的問題:統計、計算和表示上的問題。在搜索一個由巨大的訓練數據集構成的假設空間時,就會面臨統計上的問題。由于可用的訓練數據很多,就會存在多個具有相同準確度的不同假設,但傳統的機器學習算法必須在這些不同的假設中挑選一個。選擇哪一個都面臨著很大的風險,雖然這些輸出在訓練數據上的表現相同,但在新的數據上的表現可能有很大的差距。如果采用集成學習中那種簡單、平等的投票機制進行選擇,就可以降低這樣的風險。在學習算法不能保證在假設空間中找到一個最好的輸出結果時,就面臨計算上的問題,常出現在因為計算的復雜性而不得不采用啟發式方法時,找到的結果有可能是局部最優的,如果利用加權方法,將各種局部最優的結果整合起來作為輸出,可以有效降低這種局部最優的風險。最后,當假設空間沒有包含可以逼近未知函數的假設時,就面臨表示上的問題。如果可以給每個假設賦予不同的權重,并進行簡單的投票方式,就有可能找到一個非常逼近未知函數的近似函數。
通過以上的分析,可以看到集成學習可以解決傳統機器學習中的很多問題。在大數據時代,由于數據體量大、數據結構復雜、數據的質量參差不齊,以上這些問題可能更加突出,所以集成學習必定會成為大數據分析強有力的工具。
一個集成學習算法包括多個基本學習器(經常稱作弱學習器),基本學習器通常在訓練數據上運用傳統的機器學習算法(如決策樹、神經網絡或其他的學習算法)而生成的。同構集成學習采用單個基本學習算法生成相同類型的基本學習器,異構集成學習則采用多個不同的學習算法生成不同類型的基本學習器。在異構集成學習中,因為沒有單個相同的基本學習算法,所以有很多學者更傾向于稱這些學習器為組件學習器。集成學習的泛化能力遠遠超過了基本學習器的泛化能力,這恰恰是集成學習的優勢,即可以提高那些僅僅比隨機猜測好一點的弱學習器的性能,將其變成可以做出準確預測的強學習器。根據基本學習器生成的方法,可以將集成學習分為兩類:一類是順序的集成學習方法,基本學習器是按次序生成的,這類算法利用基本學習器之間的相關性,整體的性能通過減小殘余錯誤的方式來提高,一個典型的例子是Boosting;另一類是并行集成學習方法,基本學習器是并行生成的,這類算法利用基本學習器之間的獨立性,通過綜合多個獨立的基本學習器,可以大大減小學習的錯誤,一個典型的例子是Bagging。
Boosting算法的核心是弱學習假設[6],即假設基本學習器在基于給定的訓練數據上只產生一個比隨機猜測好一點的弱結果。Boosting算法只能通過不斷地調用基本學習算法從訓練數據中學習,如果基本學習器只是簡單地重復調用,并利用相同的訓練數據集,這種方式不可能產生好的結果。Boosting的基本思路是為基本學習器選擇合適的訓練數據集,使得每次調用基本學習器都可以從數據中得到一些新的信息。這可以通過選擇以前的基本學習器表現差的數據集,對這些數據集進行加強學習,這樣基本學習器可以輸出比之前更好的結果。
Bagging由Breiman提出[7],其兩個主要的組件是bootstrap和aggregation。Bagging的最關鍵環節是如何獲得盡可能獨立的基本學習器。在給定一個訓練數據集時,一個可行的方案是將訓練數據分成多個不重疊的訓練數據子集,并對這些子集進行抽樣,然后在每個抽樣的數據集上訓練出一個基本學習器。最終的學習結果是對多個學習器的學習結果進行多數投票而產生的。Bagging采用bootstrap分布來生成不同的基本學習器。具體地,在給定一個包含m個訓練實例的訓練數據集時,抽樣生成m個訓練實例,有些原始的訓練實例可能會出現不止一次,而有些可能在抽樣中根本就不出現。重復這樣的過程T次,就可以得到T個含m個數據實例的抽樣。然后,針對每個抽樣數據集運用基本的學習算法,就可以訓練得到一個基本學習器。在基本學習器輸出結果的聚集時,Bagging采用最常用的策略(即投票)來聚集分類結果,利用求平均值來聚集回歸結果。
在生成一系列的基本學習器后,集成學習通過組合這些基本學習器的方式來獲得更強的泛化能力,而不是從中選擇一個最佳的基本學習器。所以這種組合的方法是直觀重要的,會直接影響集成學習的性能。目前提出的組合方法有很多,主要介紹平均法和投票法。
平均法對于數值型輸出結果是常用的組合方法,包括簡單平均法、加權平均法。簡單平均法又稱算術平均法[8],因為簡單易用在現實應用中得到了廣泛的使用。但其有效性是基于假設單個學習器的錯誤是不相關的,而在集成學習中因為單個學習器在相同的問題上進行訓練,所以這個假設在集成學習中常常是不成立的。加權平均法給每個基本學習器賦予不同的權重,然后進行平均,不同的權重意味著不同的重要性。簡單平均法是加權平均法的一個特例,但加權平均法的性能并不是明顯優于簡單平均法的性能。這是因為在現實世界中,數據通常有很大的噪聲,所以估計的權重經常是不可靠的。特別是在一個大的集成學習中,有很多權重系數需要估計,這很容易導致過度擬合問題;而簡單平均法不要估計任何的權重系數,所以不太可能存在這方面的問題。一般來說,對有近似性能的基本學習器使用簡單平均法是適合的;基本學習器各有優劣勢時,采用加權平均法可以獲得更好的性能。
投票法是對于非數值型輸出結果的常用組合方法,包括多數投票法、最大投票法以及加權投票法。多數投票法是最常用的一種投票法,每個基本學習器投票選出一個分類標識,集成學習最終輸出的分類標識是超過半數投票的分類標識,如果沒有分類標識的得票數超過半數,集成學習就不會有任何的輸出結果。與多數投票法不同,最大投票法選擇獲得最多票數的分類標識作為最終的輸出結果,并不要求輸出結果必須獲得超過半數的選票,所以不可能出現沒有輸出結果的情況。在出現得票數相同的分類標識時,任意選擇一個作為輸出??紤]到每個基本學習器具有不同的性能,加權投票法給那些性能好的基本學習器更多的投票權。
以上討論的集成學習方法的預測效果顯著優于單個基本學習機,但它們存在一些缺點:與基本學習機相比,其預測速度明顯下降,且隨著基本學習機數目的增多,它們所需的存儲空間也急劇增多,這對于在線學習更是一個嚴重問題。那么是否可以利用少量的基本學習機就可以達到更好的性能呢?國內的學者周志華等人提出“選擇性集成”為這個問題給出了肯定的答案。理論分析和試驗研究表明,從已有的基本學習機中將作用不大和性能不好的基本學習機剔除,只挑選一些基本學習機用于構建集成則可以得到更好的預測效果。限于篇幅,不對選擇性集成展開討論。
大數據給很多領域帶來了很大的挑戰,其中之一就是如何處理大量的不確定性數據,這些數據普遍存在于電信、互聯網、科學計算、經濟、金融等領域中,如何從這些不確定性數據中獲取知識是大數據分析的一個重要任務。概率圖模型是概率論與圖論相結合的產物,是概率分布的圖形化表示,概率圖模型為捕獲隨機變量之間復雜的依賴關系、構建大規模多變量統計模型提供了一個統一的框架[9]。概率圖模型在統計學、計算學以及數學等很多領域都是研究熱點,如生物信息學、通信理論、統計物理、組合優化、信號和圖像處理、信息檢索和統計機器學習等。
概率圖模型一方面用圖論的語言直觀揭示問題的結構,另一方面又按照概率論的原則對問題的結構加以利用,降低推理的計算復雜度。概率圖模型中的一個核心概念是因子分解,根據一個底層圖的結構,一個概率圖模型由一組概率分布所構成。概率圖通過圖形的方式來捕獲并展現所有隨機變量的聯合分布,通過分解成各因子乘積的方式來實現,每個因子只和部分變量有關。概率圖模型主要包括貝葉斯網絡、馬爾可夫網絡和隱馬爾可夫模型。限于篇幅,以下只詳細介紹貝葉斯網絡的主要原理及特性。
貝葉斯網絡又稱為信念網、概率網或者因果網,用于表示變量之間的依賴關系,并為任何全聯合概率分布提供自然、有效、簡明規范的一種有向無環圖結構[10]。通過貝葉斯網絡,可以采用系統化以及本地化的方法將某種情形的概率信息構建成一個有機的整體。貝葉斯網絡還提供了一系列的算法,通過這些算法可以自動地對這些信息推導出更多隱含的意思,為在這些情形下進行決策提供基礎。從技術層面看,隨著隨機變量的不斷增加,通過概率論和統計學中傳統的表格及方程來表示這些變量的聯合概率分布是不可行的,貝葉斯網絡則為這些聯合概率分布提供了一個非常緊湊的表示方法。貝葉斯網絡的一個主要特征是可保證數據的一致性和完整性,這是因為對于任意的貝葉斯網絡,有且只有一個概率分布滿足這個貝葉斯網絡的各種限制條件。貝葉斯網絡的另一個特征是,在很多情況下要明確地生成聯合概率分布在計算上是不可行的,而在貝葉斯網絡中可以通過高效率的算法來計算這些概率。這些算法的效率以及準確性與貝葉斯網絡的拓撲以及相關的查詢是十分相關的。貝葉斯網絡還具有非常靈活的學習機制,可以模擬人類的學習方式和認知過程,靈活地對結構和參數進行相應的修正與更新。所以,貝葉斯網絡是目前最為常用的概率圖模型。
在大數據環境下,大量新的數據在大量不同的新的領域(如新聞、電子商務、圖片、視頻、博客、播客、微博、社交網絡等)呈爆炸性增長,要在這些新的領域應用傳統的機器學習方法,就需要大量有標識的訓練數據。基于這些有標識的訓練數據,運用統計學習的理論,傳統的機器學習通??梢垣@得很好的性能。但是,如果對每個領域都標識大量訓練數據,會耗費大量的人力與物力。所以,如果有了大量其他領域的不同分布下的有標識的訓練數據,能否利用從這些訓練數據中學習到的知識幫助在新環境中的學習任務?其實人類是具有這種學習能力的,即在多個任務之間進行知識遷移的能力,在碰到新的學習任務時,人類會從以前學習的經驗中認知并運用相關的知識。新的學習任務和以前的經驗相關性越大,就越容易掌握新的任務。知識在不同場景之間遷移轉化的能力被稱作遷移學習[11]。這正是傳統機器學習所缺乏的,其根本原因在于傳統的機器學習一般假設訓練數據與測試數據服從相同的數據分布,即學習的知識和應用的問題具有相同的統計特征。當學習和應用的場景發生遷移后,統計特征往往會發生改變,這將大大影響統計學習的效果。提高機器學習能力的一個關鍵問題就在于,要讓機器能夠繼承和發展過去學到的知識,這其中的關鍵就是讓機器學會遷移學習。
遷移學習可以通俗地解釋為,一個會下象棋的人可以更容易地學會下圍棋;一個認識桌子的人可以更容易地認識椅子;一個會騎自行車的人更容易學會騎摩托。遷移學習一個有代表性的定義是,給定一個源領域和學習任務以及一個目標領域和學習任務,遷移學習的任務是通過利用源領域和學習任務的知識來提高在目標領域的學習性能。在這里,源領域和目標領域是不同的,或者源學習任務和目標學習任務是不同的,當兩者都一樣時,就是傳統意義上的機器學習問題。
遷移學習的目標是利用源任務中的知識來提高目標任務中的學習性能,這可以通過3個方面來度量。
·在目標任務中僅僅采用了遷移的知識,還沒有進行任何進一步的學習之前,與沒有采用知識遷移的算法相比所能獲得的初始性能提升。
·在利用了遷移知識之后,對目標任務進行充分學習所需要的時間。
·與沒有知識遷移的情況相比,在目標任務中能夠獲得的最終的性能到底有多少提高。
如果遷移方法降低了性能,稱為負遷移。在遷移方法研究中的一個主要挑戰是在適當相關的任務中生成正遷移,同時在不太相關的任務之間盡量避免負遷移。當一個代理將從一個任務中的知識運用到另一個任務中時,經常需要將一個任務中的特征映射到其他任務的特征中,以指定任務之間的對應關系。在遷移學習的很多工作中,通常由人來提供這種映射,但可以設計一些方法自動地執行這些映射。
根據遷移學習的定義,遷移學習分為:歸納遷移學習、直推遷移學習以及無監督遷移學習[11]。在歸納遷移學習中,源領域和目標領域可以是相同的或者是不同的,但是目標任務和源任務肯定是不同的。在這種情況下,需要利用目標領域的部分已標識數據來歸納用于目標領域中的目標預測模型。另外,根據在源領域中已標識數據和未標識數據的不同情況,歸納學習可以進一步分成兩種:第一種是在源領域中有很多可用的已標識數據;第二種情況是在源領域中沒有可用的已標識數據。這和自學習的情況有些類似。歸納遷移學習的一個例子是Tradaboost算法,其基本思路是將源領域數據和目標領域數據混合在一起訓練,然后通過類似AdaBoost的結構來調整權重和計算錯誤率實現遷移學習。已經有很多研究對歸納遷移學習進行了探討,這些研究工作可以分為基于實例、基于特征、基于參數以及基于關系的知識遷移。
直推遷移學習研究的是不同領域中相同的學習任務之間的知識遷移[12],一般情況是原始領域中有大量標識數據可供利用,而目標領域只有無標識數據可供利用。在這里,源領域和目標領域的不同又包括兩種情況:一種是源領域的特征空間和目標領域是不同的;另一種是兩個領域的特征空間相同,但輸入數據的邊緣分布概率不同。“直推”的意思和傳統機器學習中是有區別的。在傳統的機器學習中,直推學習是指在訓練階段,所有的測試數據都是可用的,學習到的模型無法重用到新的數據中;而在這里是強調學習任務必須相同,目標領域中只需要有部分可用的為標識數據。在直推遷移學習中,只有基于實例的知識遷移以及基于特征的知識遷移兩種實現方案。在無監督遷移學習中,源領域和目標領域可以是相同的或者是不同的,目標任務和源任務是不同的,只是相關的。在這種遷移方法中,源領域和目標領域都沒有可用的已標識數據,所以遷移難度最大。目前這方面的研究也很少,只有基于特征的遷移實現方案。
給定一個目標任務,任何遷移方法的有效性依賴于源任務以及源任務是如何與目標任務相關的。如果它們之間有很強的關系并且能夠被遷移方法很好地利用,目標任務的性能可以通過遷移大大提高。但是,如果源任務和目標任務沒有足夠的相關性,或者遷移方法并沒有很好地利用這種關系,目標任務的性能不僅得不到提高,還有可能降低,即產生負遷移。從理論上來說,一個遷移方法在適當相關的任務之間應該生成正遷移,而在任務不是很相關時則應避免負遷移,但在實際中是很難同時達到這些目標。具有防護措施避免負遷移的遷移方案,通常會因為這種措施對正遷移產生一些小的影響。相反,那些激進的遷移方案在產生很大的正遷移效應時,通常對負遷移沒有任何防護。
避免負遷移的一個方案是在學習目標任務時,盡量識別并拒絕源任務中的有害知識。這種方案的目標是讓有害信息的影響最小化,這樣遷移的性能至少可以不差于沒有遷移的情況。在極端的情況下,學習代理可以完全丟棄遷移的知識,另外一些方法則可以有選擇地拒絕部分知識并選擇部分知識。如果有不止一個源任務,而是一套可選的源任務,那么就有更大的可能性避免負遷移。在這種情況下,避免負遷移的問題就成為如何選擇最好的源任務。沒有對負遷移進行較多防護的遷移方法在這種情形下可以很有效,只要選擇的最佳源任務是一個很好的選擇。
人類具有天生的方法在多個任務之間進行知識遷移,即在碰到新的學習任務時,會從以前學習的經驗中認知并運用相關的知識。新的學習任務和以前的經驗相關性越大,就越容易掌握新的任務。傳統的機器學習算法,通常只是解決一些孤立的任務。遷移學習試圖通過將在一個或多個源任務中學習到的知識進行遷移,將它們用在相關的目標任務中以提高其學習性能。這些能夠進行知識遷移的技術,標志著機器學習向人類學習的道路上又前進了一步。
大數據時代的數據絕大多數是大量無標識的數據和少量有標識數據的組合,半監督學習方法是處理該類數據的有效方法;隨著數據量的激增,單一學習器的學習成果和效率難以滿足要求,通過多個學習器整合后的集成學習方法能較有效地獲取學習的結果;概率圖模型通過圖形可視化的方式為多種結構的大數據分析提供了簡單有效的分析模型;而通過遷移學習,已有的學習成果能不斷積累并衍生引用到未知的領域。當然,與大數據相關的機器學習研究領域還有很多,如大規模機器學習的算法并行化,這也是未來機器學習的一個重點方向,有待在后續實際工作中不斷研究探索。
1 Tom Mitchell. Machine Learning. McGraw Hill Higher Education,1997
2 Olivier C,Bernhard S,Alexander Z.Semi-Supervised Learning.The MIT Press,2006
3 Zhu X J.Semi-Supervised Learning Literature Survey.Madison:University of Wisconsin,2008
4 Zhou Z H.Ensemble Methods:Foundations and Algorithms.Boca Raton,FL:Chapman&Hall/CRC,2012
5 梁吉業,高嘉偉,常瑜.半監督學習研究進展.山西大學學報,2009,32(4):528~534
6 Freund Y,Schapire R E.A decision theoretic generalization of online learning and application to boosting.Journal of Computer and System Sciences,1997,55(1):119~139
7 Breiman L.Bagging predictors.Machine Learning,1996,24(2):123~140
8 張春霞,張講社.選擇性集成算法綜述.計算機學報,2011(8)
9 Koller D,Friedman N.Probabilistic Graphical Models:Principles and Techniques.The MIT Press,2009
10 Darwiche A.Modeling and Reasoning with Bayesian Networks.Cambridge University Press,2009
11 Pan JL,YangQ.A surveyon transferlearning.IEEE Transactions on Knowledge and Data Engineering(IEEE TKDE),2010,22(10):1345~1359
12 Bahadori M T,Liu Y,Zhang D.Learning with minimum supervision:a generalframework for transductive transfer learning.IEEE International Conference on Data Mining(ICDM),2011