李宏毅機器學習課程筆記-10.3基於Low-density Separation假設的半監督學習

按照“非黑即白”的思路,假設類別之間的boundary周圍的data是很少的,即假設不同類別數據之間應該有1個很明顯的boundary

Self-training

最簡單的基於Low-density Separation假設的半監督學習是Self-training。

  1. 使用有標籤的數據訓練1個模型\(f^*\),模型類型和訓練方式沒有限制,神經網絡、深或淺、其它機器學習方法等等都可以

  2. 使用模型\(f^*\)生成未標註數據的僞標籤(Pseudo-label),即\(y^u=f^*(x^u)\)

  3. 取出一部分未標註數據將它們添加到有標籤數據中,然後回到步驟1

    如何選擇未標註數據仍然是一個open question,可以自行設計策略,比如給每個樣本一個置信度。

Self-training和生成模型中的半監督學習(見上1篇文章)還挺像的,它們的區別在於:

  1. Self-training使用hard label,即假定某個無標籤樣本一定屬於某個類別("非黑即白")
  2. 生成模型使用soft label,即假定某個無標籤樣本有一定概率屬於某類別(也可以理解爲一個樣本可以按照後驗概率劃分成多個部分,不同部分屬於不同類別)

Self-training使用了hard label,它並不適用於regression。

生成模型使用了soft label,它生成的僞標籤在分類任務中是沒有用的。因爲把某個無標籤樣本(通過soft label生成僞標籤)丟進模型重新訓練模型,模型參數根本不會發生變化。

實際上,low-density separation就是通過hard label來提升分類效果的方法。

Entropy-based Regularization

該方法是Self-training的進階版。

Self-training中使用的hard label還是有些武斷和激進,Entropy-based Regularization對此進行了改進。

在使用神經網絡進行分類時,\(y^u=f^*_{\theta^*}(x^u)\),其中\(y_u\)是1個one-hot編碼。現在我們並不限制其必須是某個類別,而是將其看做1個分佈,我們希望這個分佈越集中越好("非黑即白"),因爲分佈越集中時它的含義就是樣本\(x^u\)屬於某類別的概率很大屬於其它類別的概率很小

我們可以使用Entropy評估分佈\(y^u\)的集中程度\(E(y^u)=-\sum_{m=1}^5y_m^uln(y_m^u)\),假設是5分類,其值越小則表示分佈\(y^u\)越集中。

無監督分類的目標爲有標籤數據分類正確、無標籤數據分類結果集中,所以損失函數則爲\(L=\sum_{x^r}C(y^r,\hat y^r)+\lambda\sum_{x^u}E(y^u)\),其中第1項爲有標籤數據的交叉熵損失、第2項爲無標籤數據的entropy、\(\lambda\)表示無標籤數據的損失權重,因爲式中第2項的作用類似於regularization,所以該方法被稱爲Entropy-based Regularization。

Semi-supervised SVM

SVM爲兩個類別的數據找到一個boundary,該boundary與兩個類別的margin最大、分類錯誤最小。

Semi-supervised SVM窮舉所有無標籤數據的類別並進行計算,最終選擇與兩個類別的margin最大、分類錯誤最小的boundary。

在數據量大的時候,Semi-supervised SVM難以窮舉出所有情況,但還有一種求近似解的方法,其大致思路是初始化一些label,然後每次嘗試改動1個樣本的label並判斷是否更優,如果更優則改變該樣本的label,具體見Transductive Inference for Text Classification using Support Vector Machines。


Github(github.com):@chouxianyu

Github Pages(github.io):@臭鹹魚

知乎(zhihu.com):@臭鹹魚

博客園(cnblogs.com):@臭鹹魚

B站(bilibili.com):@絕版臭鹹魚

微信公衆號:@臭鹹魚

轉載請註明出處,歡迎討論和交流!


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