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