半監督學習

 最近的一段時間一直在學習半監督學習算法,目前,國內的南京大學周志華老師是這方面的泰斗,寫了很多這方面牛的文章,可以參考一下他的主頁:http://cs.nju.edu.cn/zhouzh/。在國內的學術界周老師一直是我比較欽佩的人之一。下面貼出來的文章出自周老師之手,通俗易懂。受益匪淺。。

1. 引言

      在傳統的監督學習中,學習器通過對大量有標記的(labeled)訓練例進行學習,從而建立模型用於預測未見示例的標記。這裏的“標記”(label)是指示例所對應的輸出,在分類問題中標記就是示例的類別,而在迴歸問題中標記就是示例所對應的實值輸出。隨着數據收集和存儲技術的飛速發展,收集大量未標記的(unlabeled)示例已相當容易,而獲取大量有標記的示例則相對較爲困難,因爲獲得這些標記可能需要耗費大量的人力物力。例如在計算機輔助醫學圖像分析中,可以從醫院獲得大量的醫學圖像作爲訓練例,但如果要求醫學專家把這些圖像中的病竈都標識出來,則往往是不現實的。事實上,在真實世界問題中通常存在大量的未標記示例,但有標記示例則比較少,尤其是在一些在線應用中這一問題更加突出。例如,在進行 Web 網頁推薦時,需要用戶標記出哪些網頁是他感興趣的,很少會有用戶願意花大量的時間來提供標記,因此有標記的網頁示例比較少, Web上存在着無數的網頁,它們都可作爲未標記示例來使用。顯然,如果只使用少量的有標記示例,那麼利用它們所訓練出的學習系統往往很難具有強泛化能力;另一方面,如果僅使用少量“昂貴的”有標記示例而不利用大量“廉價的”未標記示例,則是對數據資源的極大的浪費。因此,在有標記示例較少時,如何利用大量的未標記示例來改善學習性能已成爲當前機器學習研究中最受關注的問題之一。目前,利用未標記示例的主流學習技術主要有三大類[Zhou06],即半監督學習(semi-supervisedlearning)、直推學習(transductive learning)和主動學習(active learning)。這三類技術都是試圖利用大量的未標記示例來輔助對少量有標記示例的學習,但它們的基本思想卻有顯著的不同。在半監督學習[ChapelleSZ06][Zhu06]中,學習器試圖自行利用未標記示例,即整個學習過程不需人工干預,僅基於學習器自身對未標記示例進行利用。直推學習[Vapnik98][Joachims99]與半監督學習的相似之處是它也是由學習器自行利用未標記示例,但不同的是,直推學習假定未標記示例就是測試例,即學習的目的就是在這些未標記示例上取得最佳泛化能力。換句話說,半監督學習考慮的是一個“開放世界”,即在進行學習時並不知道要預測的示例是什麼,而直推學習考慮的則是一個“封閉世界”,在學習時已經知道了需要預測哪些示例。實際上,直推學習這一思路直接來源於統計學習理論[Vapnik98],並被一些學者認爲是統計學習理論對機器學習思想的最重要的貢獻 1 。其出發點是不要通過解一個困難的問題來解決一個相對簡單的問題。V. Vapnik認爲,經典的歸納學習假設期望學得一個在整個示例分佈上具有低錯誤率的決策函數,這實際上把問題複雜化了,因爲在很多情況下,人們並不關心決策函數在整個示例分佈上性能怎麼樣,而只是期望在給定的要預測的示例上達到最好的性能。後者比前者簡單,因此,在學習過程中可以顯式地考慮測試例從而更容易地達到目的。這一思想在機器學習界目前仍有爭議,但直推學習作爲一種重要的利用未標記示例的技術,則已經受到了衆多學者的關注。主動學習[SeungOS92][LewisG94][AbeM98]和前面兩類技術不同,它假設學習器對環境有一定的控制能力,可以“主動地”向學習器之外的某個“神諭”(oracle) 2 進行查詢來獲得訓練例的標記。因此,在主動學習中,學習器自行挑選出一些未標記示例並通過神諭查詢獲得這些示例的標記,然後再將這些有標記示例作爲訓練例來進行常規的監督學習,而其技術難點則在於如何使用儘可能少的查詢來獲得強泛化能力。對比半監督學習、直推學習和主動學習可以看出,後者在利用未標記示例的過程中需要與外界進行交互,而前兩者則完全依靠學習器自身,正因爲此,也有一些研究者將直推學習作爲一種半監督學習技術來進行研究。本章的主旨是介紹半監督學習中的協同訓練(co-training)這一風範(paradigm),因此,對直推學習和主動學習不再做更多的介紹,僅在第 2 節對半監督學習的概況做一簡要描述。

2. 半監督學習

       一般認爲,半監督學習的研究始於 B. Shahshahani 和 D. Landgrebe 的工作[ShahshahaniL94],但未標記示例的價值實際上早在上世紀 80 年代末就已經被一些研究者意識到了[Lippman89]。D.J.Miller 和 H.S. Uyar [MillerU97]認爲,半監督學習的研究起步相對較晚,可能是因爲在當時的主流機器學習技術(例如前饋神經網絡)中考慮未標記示例相對比較困難。隨着統計學習技術的不斷髮展,以及利用未標記示例這一需求的日漸強烈,半監督學習纔在近年來逐漸成爲一個研究熱點。半監督學習的基本設置是給定一個來自某未知分佈的有標記示例集L={(x1, y1), (x2, y2), ..., (x |L|,y|L|)}以及一個未標記示例集U = {x1’, x2’, ... , x |U|’},期望學得函數f: X→Y可以準確地對示例x 預測其標記y。這裏xi, xj’ ∈X 均爲d維向量,yi∈Y爲示例xi的標記,|L|和|U|分別爲L和U的大小,即它們所包含的示例數。在介紹具體的半監督學習技術之前,有必要先探討一下爲什麼可以利用未標記示例來改善學習性能。關於這個問題,有不少研究者給出瞭解釋。例如,D.J. Miller 和 H.S. Uyar [MillerU97] 從數據分佈估計的角度給出了一個直觀的分析。他們假設所有數據服從於某個由 L 個高斯分佈混合而成的分佈,即

其中爲混合係數,爲參數。這樣,標記就可視爲一個由選定的混合成分mi和特徵向量xi以概率P(ci | xi, mi) 決定的隨機變量。於是,根據最大後驗概率假設,最優分類由式 2 給出:

其中:

       這樣,學習目標就變成了利用訓練例來估計P(ci = k | mj = j, xi)和P(mi = j | x)。這兩項中的第一項與類別標記有關,而第二項並不依賴於示例的標記,因此,如果有大量的未標記示例可用,則意味着能夠用於估計第二項的示例數顯著增多,這會使得第二項的估計變得更加準確,從而導致式 2 更加準確,也就是說,分類器的泛化能力得以提高。此後,T. Zhang和F. J. Oles [ZhangO00] 進一步分析了未標記示例在半監督學習中的價值,並指出如果一個參數化模型如果能夠分解成P(x, y | θ) = P(y| x, θ) P(x | θ) 的形式,那麼未標記示例的價值就體現在它們能夠幫助更好地估計模型參數從而導致模型性能的提高。

       實際上,只要能夠合理建立未標記示例分佈和學習目標之間的聯繫,就可以利用未標記示例來輔助提高學習性能。在[ShahshahaniL94][MillerU97]中,這一聯繫是通過對生成式模型(generativemodel)參數的估計來體現的,但在更一般的情況下就需要在某些假設的基礎上來建立未標記示例和目標之間的聯繫。目前,在半監督學習中有兩個常用的基本假設,即聚類假設(cluster assumption)和流形假設(manifold assumption)。
       聚類假設是指處在相同聚類(cluster)中的示例有較大的可能擁有相同的標記。根據該假設,決策邊界就應該儘量通過數據較爲稀疏的地方,從而避免把稠密的聚類中的數據點分到決策邊界兩側。在這一假設下,大量未標記示例的作用就是幫助探明示例空間中數據分佈的稠密和稀疏區域,從而指導學習算法對利用有標記示例學習到的決策邊界進行調整,使其儘量通過數據分佈的稀疏區域。聚類假設簡單、直觀,常以不同的方式直接用於各種半監督學習算法的設計中。例如, Joachims[Joachims99] 提出了TSVM算法 3 ,在訓練過程中,該算法不斷修改SVM的劃分超平面並交換超平面兩側某些未標記示例的可能標記,使得SVM在所有訓練數據(包括有標記和未標記示例)上最大化間隔(margin),從而得到一個既通過數據相對稀疏的區域又儘可能正確劃分有標記示例的超平面;N. D. Lawrence和 M. I. Jordan [LawrenceJ05] 通過修改高斯過程(Gaussian process)中的噪音模型來進行半監督學習,他們在正、反兩類之間引入了“零類”,並強制要求所有的未標記示例都不能被分爲零類,從而迫使學習到的分類邊界避開數據稠密區域; Grandvalet和Y. Bengio [GrandvaletB05] 通過使用最小化熵作爲正則化項來進行半監督學習,由於熵僅與模型在未標記示例上的輸出有關,因此,最小化熵的直接結果就是降低模型的不確定性,迫使決策邊界通過數據稀疏區域。

       流形假設是指處於一個很小的局部鄰域內的示例具有相似的性質,因此,其標記也應該相似。這一假設反映了決策函數的局部平滑性。和聚類假設着眼整體特性不同,流形假設主要考慮模型的局部特性。在該假設下,大量未標記示例的作用就是讓數據空間變得更加稠密,從而有助於更加準確地刻畫局部區域的特性,使得決策函數能夠更好地進行數據擬合。流形假設也可以容易地直接用於半監督學習算法的設計中。例如,J. Zhu 等人 [ZhuGL03] 使用高斯隨機場以及諧波函數來進行半監督學習,他們首先基於訓練例建立一個圖,圖中每個結點就是一個(有標記或未標記)示例,然後求解根據流形假設定義的能量函數的最優值,從而獲得對未標記示例的最優標記;D. Zhou 等人 [ZhouBLWS04] 在根據示例相似性建立圖之後,讓示例的標記信息不斷向圖中的鄰近示例傳播,直到達到全局穩定狀態。值得注意的是,一般情形下,流形假設和聚類假設是一致的。由於聚類通常比較稠密,滿足流形假設的模型能夠在數據稠密的聚類中得出相似的輸出。然而,由於流形假設強調的是相似示例具有相似的輸出而不是完全相同的標記,因此流行假設比聚類假設更爲一般,這使其在聚類假設難以成立的半監督迴歸中仍然有效[ZhouL05b][ZhouL07]。根據半監督學習算法的工作方式,可以大致將現有的很多半監督學習算法分爲三大類。第一類
算法以生成式模型爲分類器,將未標記示例屬於每個類別的概率視爲一組缺失參數,然後採用 EM算法來進行標記估計和模型參數估計,其代表包括[ShahshahaniL94][MillerU97] [NigamMTM00]等。此類算法可以看成是在少量有標記示例周圍進行聚類,是早期直接採用聚類假設的做法。第二類算法 是 基 於 圖 正 則 化 框 架 的 半 監 督 學 習 算 法 , 其 代 表 包 括 [BlumC01][ZhuGL03][BelkinN04][ZhouBLWS04][BelkinNS05]等。此類算法直接或間接地利用了流形假設,它們通常先根據訓練例及某種相似度度量建立一個圖,圖中結點對應了(有標記或未標記)示例,邊爲示例間的相似度,然後,定義所需優化的目標函數並使用決策函數在圖上的光滑性作爲正則化項來求取最優模型參數。第三類算法是協同訓練(co-training)算法。此類算法隱含地利用了聚類假設或流形假設,它們使用兩個或多個學習器,在學習過程中,這些學習器挑選若干個置信度高的未標記示例進行相互標記,
從而使得模型得以更新。在 A. Blum 和 T. Mitchell [BlumM98] 提出最早的協同訓練算法後,很多研究者對其進行了研究並取得了很多進展,使得協同訓練成爲半監督學習中最重要的風範(paradigm)之一,而不再只是一個算法。本章接下來的幾節就將對協同訓練進行進一步的介紹。

下個帖子將是半監督學習算法中比較具有代表性的算髮(Tri-training:http://www.cnblogs.com/liqizhou/archive/2012/05/11/2496162.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章