机器学习笔记(十三)半监督学习
?
13.半監(jiān)督學(xué)習(xí)
這章介紹半監(jiān)督學(xué)習(xí)方法。
13.1未標(biāo)記樣本
先說兩個(gè)概念:
1)有標(biāo)記樣本(Labeled)
訓(xùn)練樣本集Dl={(x1,y1), (x2,y2),…, (xl,yl)},這l個(gè)樣本的類別標(biāo)記已知。
2)未標(biāo)記樣本(unlabeled)
訓(xùn)練樣本集Du={xl+1, x l+2,…, xl+u},u遠(yuǎn)大于l,這u個(gè)樣本的類別標(biāo)記未知。
監(jiān)督學(xué)習(xí)技術(shù)是基于有標(biāo)記樣本Dl的訓(xùn)練來構(gòu)建模型,未標(biāo)記樣本Du所包含的信息未被利用;如果有標(biāo)記樣本Dl樣例少的話,學(xué)得的模型泛化能力也不強(qiáng),因此需要考慮將未標(biāo)記樣本Du利用起來。利用Du學(xué)習(xí)模型的方法:
1)主動(dòng)學(xué)習(xí)(activelearning)
先用Dl訓(xùn)練出一個(gè)模型,然后用這個(gè)模型去Du樣本中選擇一個(gè)樣本,并和專家進(jìn)行交互將未標(biāo)記轉(zhuǎn)變?yōu)橛袠?biāo)記樣本,新標(biāo)記樣本重新訓(xùn)練模型…如此可大幅降低標(biāo)記成本,只需通過少量未標(biāo)記樣本通過專家來標(biāo)記就能改善模型,少的查詢獲得好的性能。
主動(dòng)學(xué)習(xí)就是要引入專家知識(shí),通過與外部交互來將部分未標(biāo)記樣本轉(zhuǎn)變?yōu)橛袠?biāo)記樣本。如果不通過外部標(biāo)記,還可以利用未標(biāo)記樣本,就是半監(jiān)督學(xué)習(xí)的研發(fā)范圍。
2)半監(jiān)督學(xué)習(xí)
基于一個(gè)事實(shí):未標(biāo)記樣本雖未直接包含標(biāo)記信息,但若它們與有標(biāo)記信息樣本是從同樣的數(shù)據(jù)源獨(dú)立同分布采樣而來,則它們所包含的關(guān)于數(shù)據(jù)分布的信息對(duì)建立模型是有幫助的。
半監(jiān)督學(xué)習(xí) (semi-supervised learning):讓學(xué)習(xí)器不依賴外界交互、自動(dòng)地利用未標(biāo)記樣本來提升學(xué)習(xí)性能。在現(xiàn)實(shí)任務(wù)中,未標(biāo)記樣本多、有標(biāo)記樣本少是一個(gè)比價(jià)普遍現(xiàn)象,如何利用好未標(biāo)記樣本來提升模型泛化能力,就是半監(jiān)督學(xué)習(xí)研究的重點(diǎn)。
要利用未標(biāo)記樣本,需假設(shè)未標(biāo)記樣本所揭示的數(shù)據(jù)分布信息與類別標(biāo)記存在聯(lián)系。
一是聚類假設(shè)(cluster assumption),假設(shè)數(shù)據(jù)存在簇結(jié)構(gòu),同一個(gè)簇的樣本屬于同一個(gè)類別。另一個(gè)是流形假設(shè)(manifold assumption),假設(shè)數(shù)據(jù)分布在一個(gè)流形結(jié)構(gòu)上,鄰近的樣本擁有相似的輸出值;鄰近程度用相似程度來刻畫,距離計(jì)算大概就是最基礎(chǔ)的。
流形假設(shè)可看作是聚類假設(shè)的推廣,不過流形假設(shè)對(duì)輸出值沒有限制,比聚類假設(shè)的適用范圍更廣,可用于更多的學(xué)習(xí)任務(wù)。二者的本質(zhì)是一樣的,都基于相似的樣本擁有相似的輸出這樣一個(gè)假設(shè)。
半監(jiān)督學(xué)習(xí)可進(jìn)一步劃分為純(pure)半監(jiān)督學(xué)習(xí)和直推學(xué)習(xí)(transductive learning):純半監(jiān)督學(xué)習(xí)假定訓(xùn)練數(shù)據(jù)中的未標(biāo)記樣本并非待預(yù)測數(shù)據(jù);而直推學(xué)習(xí)假定學(xué)習(xí)過程中所考慮的未標(biāo)記樣本恰是待預(yù)測數(shù)據(jù),學(xué)習(xí)的目的就是在未標(biāo)記樣本上獲得最優(yōu)泛化性能。
純半監(jiān)督學(xué)習(xí)是基于開放世界的假設(shè),希望學(xué)得的模型能適用于訓(xùn)練過程中未觀察到的數(shù)據(jù);而直推學(xué)習(xí)是基于封閉世界假設(shè),僅試圖對(duì)學(xué)習(xí)過程中觀察到的未標(biāo)記數(shù)據(jù)進(jìn)行預(yù)測。
13.2生成式方法
生成式方法(generativemethods)是直接基于生成式模型的方法。該方法假設(shè)所有數(shù)據(jù)(無論是否有標(biāo)記)都是由同一潛在的模型生成的。通過這個(gè)假設(shè)通過潛在模型的參數(shù)將未標(biāo)記數(shù)據(jù)與學(xué)習(xí)目標(biāo)聯(lián)系起來,而未標(biāo)記數(shù)據(jù)的標(biāo)記可作為模型的缺失參數(shù),通常基于EM算法進(jìn)行極大似然估計(jì)求解。生成式方法的重點(diǎn)是對(duì)于生成式模型的假設(shè),不同的模型假設(shè)將產(chǎn)生不同的方法。當(dāng)然這個(gè)方法的關(guān)鍵也就是這個(gè)模型假設(shè)必須準(zhǔn)確,即假設(shè)的生成式模型必須與真實(shí)數(shù)據(jù)分布吻合;否則利用未標(biāo)記數(shù)據(jù)反倒會(huì)降低泛化性能。該方法簡單實(shí)現(xiàn),不過在現(xiàn)實(shí)任務(wù)中,往往很難事先做出準(zhǔn)確的模型假設(shè),除非擁有充分可靠的領(lǐng)域知識(shí)。下面通過高斯混合分布模型及EM算法求解來說明生成式半監(jiān)督學(xué)習(xí)方法。
將高斯混合模型換成混合專家模型、樸素貝葉斯模型等即可推導(dǎo)出其他的生成式半監(jiān)督學(xué)習(xí)方法。
13.3半監(jiān)督SVM
半監(jiān)督支持向量機(jī)(Semi-Supervised Vector Machin,S3VM)是支持向量機(jī)在半監(jiān)督學(xué)習(xí)上的推廣。不考慮未標(biāo)記樣本的情況,支持向量機(jī)試圖找到最大間隔劃分超平面;在考慮未標(biāo)記樣本的情況下,S3VM試圖找到能將兩類有標(biāo)記樣本分開,且穿過數(shù)據(jù)低密度區(qū)域的劃分超平面。低密度分隔(low-densityseparation)假設(shè)是聚類假設(shè)在考慮了線性超平面劃分后的推廣。
半監(jiān)督支持向量機(jī)中比較著名的是TSVM(Transductive Support Vector Machin),是針對(duì)二分類問題的學(xué)習(xí)方法。TSVM試圖考慮對(duì)未標(biāo)記樣本進(jìn)行可能的標(biāo)記指派(Label Assignment),即嘗試將每個(gè)未標(biāo)記樣本分別作為正例或反例,然后在所有這些結(jié)果中,尋求一個(gè)在所有樣本(包括有標(biāo)記樣本和進(jìn)行了標(biāo)記指派的未標(biāo)記樣本)上間隔最大化的劃分超平面。一旦劃分超平面確定,未標(biāo)記樣本的最終標(biāo)記指派就是其預(yù)測結(jié)果。
在對(duì)未標(biāo)記樣本進(jìn)行標(biāo)記指派和調(diào)整的過程中,有可能出現(xiàn)類別不平衡問題,即某類的樣本遠(yuǎn)多于另一類,這對(duì)SVM的訓(xùn)練造成困擾。為減輕類別不平衡性所造成的不利影響,改進(jìn)算法如下:將優(yōu)化目標(biāo)中的Cu拆分成Cu+和Cu-兩項(xiàng),分別對(duì)應(yīng)基于偽標(biāo)記而當(dāng)作正、反例使用的未標(biāo)記樣本,并在初始化時(shí)令(Cu+)=(u-/u+)( Cu-),其中u-和u+為基于偽標(biāo)記而當(dāng)作正、反例使用的未標(biāo)記樣本數(shù)。
搜索標(biāo)記指派可能出錯(cuò)的每一對(duì)未標(biāo)記樣本進(jìn)行調(diào)整,涉及巨大的計(jì)算開銷的大規(guī)模優(yōu)化問題,因此,半監(jiān)督SVM更多的研究在于如何涉及出更高效的優(yōu)化求解策略;發(fā)展出很多方法,如基于圖核(graphkernel)函數(shù)梯度下降的LDS、基于標(biāo)記均值估計(jì)的MeanS3VM等。
?
13.4圖半監(jiān)督學(xué)習(xí)
給定一個(gè)數(shù)據(jù)集,將其映射為一個(gè)圖,數(shù)據(jù)集中每個(gè)樣本對(duì)應(yīng)于圖中的一個(gè)結(jié)點(diǎn),若兩個(gè)樣本之間的相似度很高(或相關(guān)性很強(qiáng)),則對(duì)應(yīng)的結(jié)點(diǎn)之間存在一條邊,邊的強(qiáng)度(strength)正比于樣本之間的相似度(或相關(guān)性)。將有標(biāo)記樣本所對(duì)應(yīng)的結(jié)點(diǎn)染色,而未標(biāo)記樣本所對(duì)應(yīng)的結(jié)點(diǎn)尚未染色;半監(jiān)督學(xué)習(xí)對(duì)應(yīng)于顏色在圖上擴(kuò)散或傳播的過程;一個(gè)圖對(duì)應(yīng)一個(gè)矩陣,可基于矩陣運(yùn)算來進(jìn)行半監(jiān)督學(xué)習(xí)算法的推導(dǎo)與分析。
圖半監(jiān)督學(xué)習(xí)方法在概念上相當(dāng)清晰,且易于通過對(duì)所涉矩陣運(yùn)算的分析來探索算法性質(zhì)。不過該類算法有兩個(gè)缺點(diǎn):1)存儲(chǔ)開銷上,樣本數(shù)m下,矩陣規(guī)模為O(m2),很難直接處理大規(guī)模數(shù)據(jù);2)構(gòu)圖過程僅能考慮訓(xùn)練樣本集,對(duì)新樣本在圖中的位置難以知曉,在接收新樣本時(shí)或?qū)⑵浼尤朐瓟?shù)據(jù)集對(duì)圖進(jìn)行重構(gòu)并重新進(jìn)行標(biāo)記傳播,或是需引入額外的預(yù)測機(jī)制,如將Dl和經(jīng)標(biāo)記傳播后得到標(biāo)記的Du合并作為訓(xùn)練集,另外訓(xùn)練一個(gè)學(xué)習(xí)器如支持向量機(jī)來對(duì)新樣本進(jìn)行預(yù)測。
?
13.5基于分歧的方法
與生成式方法、半監(jiān)督SVM、圖半監(jiān)督學(xué)習(xí)等基于單學(xué)習(xí)器利用未標(biāo)記數(shù)據(jù)不同,基于分歧的方法(disagreement-basedmethods)使用多學(xué)習(xí)器,而學(xué)習(xí)器之間的分歧(disagreement)對(duì)未標(biāo)記數(shù)據(jù)的利用至關(guān)重要。協(xié)同訓(xùn)練(co-training)是基于分歧方法的重要代表,針對(duì)多視圖(multi-view)數(shù)據(jù)設(shè)計(jì),也是多視圖學(xué)習(xí)的代表。
1)多視圖數(shù)據(jù)
多視圖數(shù)據(jù)是指一個(gè)數(shù)據(jù)對(duì)象同時(shí)擁有多個(gè)屬性集(attribute set),每個(gè)屬性集構(gòu)成一個(gè)視圖(view)。如一部電影,擁有圖像畫面信息所對(duì)應(yīng)的屬性集、聲音信息所對(duì)應(yīng)的屬性集、字幕信息所對(duì)應(yīng)的屬性集、網(wǎng)上宣傳討論所對(duì)應(yīng)的屬性集等多個(gè)屬性集。若只考慮電影多視圖數(shù)據(jù)中的圖像屬性集和聲音屬性集,一個(gè)電影片段樣本用(<x1,x2>,y)表示,其中xi是樣本在視圖i中的示例,即基于該視圖屬性描述而得的屬性向量。假定x1為圖像視圖中的屬性向量,x2為聲音視圖中的屬性向量;y是標(biāo)記,如電影類型。
2)相容性
假設(shè)不同視圖具有相容性(compatibility),即其所包含的關(guān)于輸出空間y的信息是一致:令y1表示從圖像畫面信息判別的標(biāo)記空間,y2表示從聲音信息判別的標(biāo)記空間,則有y=y1=y2。
在相容性的基礎(chǔ)上,不同視圖信息是互補(bǔ)的,給學(xué)習(xí)器的構(gòu)建帶來便利。如某個(gè)電影片段,從圖像上有兩人對(duì)視,無法判斷電影類型,但若加上聲音信息中“我愛你”透露的信息,則可判定為電影類型是愛情片。
3)協(xié)同訓(xùn)練
協(xié)同訓(xùn)練正式基于多視圖數(shù)據(jù)的相容互補(bǔ)性。假設(shè)數(shù)據(jù)擁有兩個(gè)充分(sufficient)且條件獨(dú)立視圖,充分是指每個(gè)視圖都包含足以產(chǎn)生最優(yōu)學(xué)習(xí)器的信息;條件獨(dú)立是在給定類別標(biāo)記條件下每個(gè)視圖獨(dú)立。
協(xié)同訓(xùn)練如何利用未標(biāo)記數(shù)據(jù)呢?首先在每個(gè)視圖上基于有標(biāo)記樣本分別訓(xùn)練出一個(gè)分類器,然后讓每個(gè)分類器去選擇自己最有把握的未標(biāo)記樣本賦予偽標(biāo)記,并將偽標(biāo)記樣本提供給另一個(gè)分類器作為新增的有標(biāo)記樣本用于訓(xùn)練更新…這個(gè)互相學(xué)習(xí)、共同進(jìn)步的過程不斷迭代進(jìn)行,直到兩個(gè)分類器都不再發(fā)生變化,或達(dá)到預(yù)先設(shè)定的迭代輪數(shù)為止。一句話,每個(gè)視圖根據(jù)有標(biāo)記樣本生成一個(gè)學(xué)習(xí)器,來判別本視圖的未標(biāo)記數(shù)據(jù),然后將打上未標(biāo)記的樣本作為其他視圖學(xué)習(xí)器生成的新增有標(biāo)記樣本。算法描述如下:
4)算法分析
若在每輪學(xué)習(xí)中都考察分類器在所有未標(biāo)記樣本上的分類置信度,會(huì)產(chǎn)生很大的計(jì)算開銷,因此在算法中使用了未標(biāo)記樣本緩沖池。分類置信度的估計(jì)因基學(xué)習(xí)算法A而異,如若使用樸素貝葉斯分類器,可將后驗(yàn)概率轉(zhuǎn)化為分類置信度;若使用支持向量機(jī),則可將間隔大小轉(zhuǎn)化為分類置信度。
協(xié)同訓(xùn)練的理論證明顯示,若兩個(gè)視圖充分且條件獨(dú)立,則可利用未標(biāo)記樣本通過協(xié)同訓(xùn)練將弱分類器的泛化性能提升到任意高。不過這個(gè)前提條件在現(xiàn)實(shí)任務(wù)中很難滿足,但就是視圖充分就基本無法做到,不過即便如此,協(xié)同訓(xùn)練仍可有效地提升弱分類器的性能。
5)算法衍變
協(xié)同訓(xùn)練算法是為多視圖數(shù)據(jù)而設(shè)計(jì)的,后面也出現(xiàn)了在單視圖上使用的變體算法,或使用不同學(xué)習(xí)算法,或使用不同數(shù)據(jù)采樣,甚至使用不同的參數(shù)設(shè)置來產(chǎn)生不同學(xué)習(xí)器,也能有效地利用未標(biāo)記數(shù)據(jù)來提升性能。實(shí)際,原理思想是一致,就是在不同學(xué)習(xí)器之間產(chǎn)生互補(bǔ)。
后續(xù)理論研究表明,這類算法并不一定數(shù)據(jù)是擁有多視圖,而僅需弱學(xué)習(xí)器之間具有顯著的分歧(或差異),即可通過相互提供偽標(biāo)記樣本的方式來提升泛化性能。不同視圖、不同算法、不同數(shù)據(jù)采樣、不同參數(shù)設(shè)置等,都是產(chǎn)生差異的渠道,而非必備條件。
6)總結(jié)
基于分歧的方法只需采用合適的基學(xué)習(xí)器,就能較少受到模型假設(shè)、損失函數(shù)非凸性和數(shù)據(jù)規(guī)模問題的影響。該方法需能生成具有顯著分歧、性能尚可的多個(gè)學(xué)習(xí)器,但當(dāng)有標(biāo)記樣本很少,尤其是數(shù)據(jù)不具有多視圖時(shí),需巧妙設(shè)計(jì)才能實(shí)現(xiàn)。
?
13.6半監(jiān)督聚類
聚類是無監(jiān)督學(xué)習(xí)任務(wù),為利用現(xiàn)實(shí)任務(wù)中獲得的監(jiān)督信息,提出半監(jiān)督聚類(semi-supervised clustering)來利用監(jiān)督信息以獲得更好的效果。
聚類任務(wù)中獲得的監(jiān)督信息分兩種:1)有必連(must-link)和勿連(cannot-link)約束,必連是指樣本必屬于同一個(gè)簇,勿連是指樣本必不屬于同一個(gè)簇;2)含有少量的有標(biāo)記樣本。下面針對(duì)這兩種類型的監(jiān)督信息說明。
1)必連和勿連約束
要利用必連和勿連約束的監(jiān)督信息,可通過約束k均值(Constrained k-means)算法。給定樣本集D={x 1,x 2,…,x m}以及必連關(guān)系集合M和勿連關(guān)系集合C;(x i,x j)∈M表示x i,與x j必屬于同簇,(x i, x j)∈C表示x i,與x j必不屬于同簇。約束k均值算法是在k均值算法基礎(chǔ)上擴(kuò)展,在聚類過程中確保M與C中的約束得以滿足;算法描述如下:
2)含有少量有標(biāo)記樣本
給定樣本集D={x 1,x 2,…,x m},假定少量的有標(biāo)記樣本 ,其中 為隸屬于第j個(gè)聚類簇的樣本。直接將有標(biāo)記樣本作為種子,初始化k均值算法的k個(gè)聚類中心,并且在聚類迭代更新過程中不改變種子樣本的簇隸屬關(guān)系,就是約束種子k均值(Constrained Seed k-means)算法。算法描述如下:
本章總結(jié):對(duì)于半監(jiān)督學(xué)習(xí)給出了:1)依賴模型假設(shè)(應(yīng)用領(lǐng)域?qū)I(yè)知識(shí))的生成式半監(jiān)督學(xué)習(xí)方法;2)非凸性和低密度劃分的半監(jiān)督SVM方法,重點(diǎn)要掌握S3VM;3)基于聚類假設(shè)和圖劃分的圖半監(jiān)督學(xué)習(xí)方法;4)基于分歧的集成學(xué)習(xí)方法,重點(diǎn)掌握協(xié)同訓(xùn)練;5)依賴樣本中存在監(jiān)督信息的半監(jiān)督聚類學(xué)習(xí)方法。本章最后的小故事提到的黎曼猜想,若是專注數(shù)學(xué),可以理解和研究,不過對(duì)于流形概念可以重點(diǎn)認(rèn)識(shí)下。
總結(jié)
以上是生活随笔為你收集整理的机器学习笔记(十三)半监督学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos下新建超级用户及sudoer
- 下一篇: 不是《归去来》是《难念的经》