半监督学习【机器学习】
神經(jīng)網(wǎng)絡(luò)中,各種AutoEncoder應(yīng)當(dāng)是最有效地?zé)o監(jiān)督學(xué)習(xí)方法,下面是偏向機器學(xué)習(xí)方面的半監(jiān)督學(xué)習(xí)總結(jié),來源周志華的【machine learning】。
半監(jiān)督學(xué)習(xí)【機器學(xué)習(xí)】
前面我們一直圍繞的都是監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí),監(jiān)督學(xué)習(xí)指的是訓(xùn)練樣本包含標(biāo)記信息的學(xué)習(xí)任務(wù),例如:常見的分類與回歸算法;無監(jiān)督學(xué)習(xí)則是訓(xùn)練樣本不包含標(biāo)記信息的學(xué)習(xí)任務(wù),例如:聚類算法。在實際生活中,常常會出現(xiàn)一部分樣本有標(biāo)記和較多樣本無標(biāo)記的情形,例如:做網(wǎng)頁推薦時需要讓用戶標(biāo)記出感興趣的網(wǎng)頁,但是少有用戶愿意花時間來提供標(biāo)記。若直接丟棄掉無標(biāo)記樣本集,使用傳統(tǒng)的監(jiān)督學(xué)習(xí)方法,常常會由于訓(xùn)練樣本的不充足,使得其刻畫總體分布的能力減弱,從而影響了學(xué)習(xí)器泛化性能。那如何利用未標(biāo)記的樣本數(shù)據(jù)呢?
一種簡單的做法是通過專家知識對這些未標(biāo)記的樣本進行打標(biāo),但隨之而來的就是巨大的人力耗費。若我們先使用有標(biāo)記的樣本數(shù)據(jù)集訓(xùn)練出一個學(xué)習(xí)器,再基于該學(xué)習(xí)器對未標(biāo)記的樣本進行預(yù)測,從中挑選出不確定性高或分類置信度低的樣本來咨詢專家并進行打標(biāo),最后使用擴充后的訓(xùn)練集重新訓(xùn)練學(xué)習(xí)器,這樣便能大幅度降低標(biāo)記成本,這便是主動學(xué)習(xí)(active learning),其目標(biāo)是使用盡量少的/有價值的咨詢來獲得更好的性能。
顯然,主動學(xué)習(xí)需要與外界進行交互/查詢/打標(biāo),其本質(zhì)上仍然屬于一種監(jiān)督學(xué)習(xí)。事實上,無標(biāo)記樣本雖未包含標(biāo)記信息,但它們與有標(biāo)記樣本一樣都是從總體中獨立同分布采樣得到,因此它們所包含的數(shù)據(jù)分布信息對學(xué)習(xí)器的訓(xùn)練大有裨益。如何讓學(xué)習(xí)過程不依賴外界的咨詢交互,自動利用未標(biāo)記樣本所包含的分布信息的方法便是半監(jiān)督學(xué)習(xí)(semi-supervised learning),即訓(xùn)練集同時包含有標(biāo)記樣本數(shù)據(jù)和未標(biāo)記樣本數(shù)據(jù)。
此外,半監(jiān)督學(xué)習(xí)還可以進一步劃分為純半監(jiān)督學(xué)習(xí)和直推學(xué)習(xí),兩者的區(qū)別在于:前者假定訓(xùn)練數(shù)據(jù)集中的未標(biāo)記數(shù)據(jù)并非待預(yù)測數(shù)據(jù),而后者假定學(xué)習(xí)過程中的未標(biāo)記數(shù)據(jù)就是待預(yù)測數(shù)據(jù)。主動學(xué)習(xí)、純半監(jiān)督學(xué)習(xí)以及直推學(xué)習(xí)三者的概念如下圖所示:
1 生成式方法
生成式方法(generative methods)是基于生成式模型的方法,即先對聯(lián)合分布P(x,c)建模,從而進一步求解 P(c | x),此類方法假定樣本數(shù)據(jù)服從一個潛在的分布,因此需要充分可靠的先驗知識。例如:前面已經(jīng)接觸到的貝葉斯分類器與高斯混合聚類,都屬于生成式模型。現(xiàn)假定總體是一個高斯混合分布,即由多個高斯分布組合形成,從而一個子高斯分布就代表一個類簇(類別)。高斯混合分布的概率密度函數(shù)如下所示:
不失一般性,假設(shè)類簇與真實的類別按照順序一一對應(yīng),即第i個類簇對應(yīng)第i個高斯混合成分。與高斯混合聚類類似地,這里的主要任務(wù)也是估計出各個高斯混合成分的參數(shù)以及混合系數(shù),不同的是:對于有標(biāo)記樣本,不再是可能屬于每一個類簇,而是只能屬于真實類標(biāo)對應(yīng)的特定類簇。
直觀上來看,基于半監(jiān)督的高斯混合模型有機地整合了貝葉斯分類器與高斯混合聚類的核心思想,有效地利用了未標(biāo)記樣本數(shù)據(jù)隱含的分布信息,從而使得參數(shù)的估計更加準(zhǔn)確。同樣地,這里也要召喚出之前的EM大法進行求解,首先對各個高斯混合成分的參數(shù)及混合系數(shù)進行隨機初始化,計算出各個PM(即γji,第i個樣本屬于j類,有標(biāo)記樣本則直接屬于特定類),再最大化似然函數(shù)(即LL(D)分別對α、u和∑求偏導(dǎo) ),對參數(shù)進行迭代更新。
當(dāng)參數(shù)迭代更新收斂后,對于待預(yù)測樣本x,便可以像貝葉斯分類器那樣計算出樣本屬于每個類簇的后驗概率,接著找出概率最大的即可:
可以看出:基于生成式模型的方法十分依賴于對潛在數(shù)據(jù)分布的假設(shè),即假設(shè)的分布要能和真實分布相吻合,否則利用未標(biāo)記的樣本數(shù)據(jù)反倒會在錯誤的道路上漸行漸遠(yuǎn),從而降低學(xué)習(xí)器的泛化性能。因此,此類方法要求極強的領(lǐng)域知識和掐指觀天的本領(lǐng)。
2 半監(jiān)督SVM
監(jiān)督學(xué)習(xí)中的SVM試圖找到一個劃分超平面,使得兩側(cè)支持向量之間的間隔最大,即“最大劃分間隔”思想。對于半監(jiān)督學(xué)習(xí),S3VM則考慮超平面需穿過數(shù)據(jù)低密度的區(qū)域。TSVM是半監(jiān)督支持向量機中的最著名代表,其核心思想是:嘗試為未標(biāo)記樣本找到合適的標(biāo)記指派,使得超平面劃分后的間隔最大化。TSVM采用局部搜索的策略來進行迭代求解,即首先使用有標(biāo)記樣本集訓(xùn)練出一個初始SVM,接著使用該學(xué)習(xí)器對未標(biāo)記樣本進行打標(biāo),這樣所有樣本都有了標(biāo)記,并基于這些有標(biāo)記的樣本重新訓(xùn)練SVM,之后再尋找易出錯樣本不斷調(diào)整。整個算法流程如下所示:
?
3 基于分歧的方法
基于分歧的方法通過多個學(xué)習(xí)器之間的分歧(disagreement)/多樣性(diversity)來利用未標(biāo)記樣本數(shù)據(jù),協(xié)同訓(xùn)練就是其中的一種經(jīng)典方法。協(xié)同訓(xùn)練最初是針對于多視圖(multi-view)數(shù)據(jù)而設(shè)計的,多視圖數(shù)據(jù)指的是樣本對象具有多個屬性集,每個屬性集則對應(yīng)一個試圖。例如:電影數(shù)據(jù)中就包含畫面類屬性和聲音類屬性,這樣畫面類屬性的集合就對應(yīng)著一個視圖。首先引入兩個關(guān)于視圖的重要性質(zhì):
相容性:即使用單個視圖數(shù)據(jù)訓(xùn)練出的學(xué)習(xí)器的輸出空間是一致的。例如都是{好,壞}、{+1,-1}等。?
互補性:即不同視圖所提供的信息是互補/相輔相成的,實質(zhì)上這里體現(xiàn)的就是集成學(xué)習(xí)的思想。
協(xié)同訓(xùn)練正是很好地利用了多視圖數(shù)據(jù)的“相容互補性”,其基本的思想是:首先基于有標(biāo)記樣本數(shù)據(jù)在每個視圖上都訓(xùn)練一個初始分類器,然后讓每個分類器去挑選分類置信度最高的樣本并賦予標(biāo)記,并將帶有偽標(biāo)記的樣本數(shù)據(jù)傳給另一個分類器去學(xué)習(xí),從而你依我儂/共同進步。
?
4 半監(jiān)督聚類
前面提到的幾種方法都是借助無標(biāo)記樣本數(shù)據(jù)來輔助監(jiān)督學(xué)習(xí)的訓(xùn)練過程,從而使得學(xué)習(xí)更加充分/泛化性能得到提升;半監(jiān)督聚類則是借助已有的監(jiān)督信息來輔助聚類的過程。一般而言,監(jiān)督信息大致有兩種類型:
必連與勿連約束:必連指的是兩個樣本必須在同一個類簇,勿連則是必不在同一個類簇。?
標(biāo)記信息:少量的樣本帶有真實的標(biāo)記。
下面主要介紹兩種基于半監(jiān)督的K-Means聚類算法:第一種是數(shù)據(jù)集包含一些必連與勿連關(guān)系,另外一種則是包含少量帶有標(biāo)記的樣本。兩種算法的基本思想都十分的簡單:對于帶有約束關(guān)系的k-均值算法,在迭代過程中對每個樣本劃分類簇時,需要檢測當(dāng)前劃分是否滿足約束關(guān)系,若不滿足則會將該樣本劃分到距離次小對應(yīng)的類簇中,再繼續(xù)檢測是否滿足約束關(guān)系,直到完成所有樣本的劃分。算法流程如下圖所示:
對于帶有少量標(biāo)記樣本的k-均值算法,則可以利用這些有標(biāo)記樣本進行類中心的指定,同時在對樣本進行劃分時,不需要改變這些有標(biāo)記樣本的簇隸屬關(guān)系,直接將其劃分到對應(yīng)類簇即可。算法流程如下所示:
在此,半監(jiān)督學(xué)習(xí)就介紹完畢~十分有趣的是:半監(jiān)督學(xué)習(xí)將前面許多知識模塊聯(lián)系在了一起,足以體現(xiàn)了作者編排的用心。結(jié)合本篇的新知識再來回想之前自己做過的一些研究,發(fā)現(xiàn)還是蹚了一些渾水,也許越是覺得過去的自己傻,越就是好的兆頭吧~
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的半监督学习【机器学习】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux文件系统管理命令(第二版)
- 下一篇: 移动端跨平台开发框架对比分析