機器學習教程 之 半監督學習 Tri-training方法 (論文、數據集、代碼)

最近因爲項目需要研究了一下半監督學習,稍經瞭解以後發現當存在大量未標籤數據時,這確實是一種非常好用的方法,可以很好的提升分類精度。這裏介紹一下週志華教授的Tri-triaining方法,在實現上非常的簡單好用,在文末會有代碼、數據集的鏈接
原文在這裏
Tri-training: exploiting unlabeled data using three classifiers

一、Tri-training

Tri-traing 是對 co-training (協同訓練)的一種改進,它也是一種基於分歧的方法。簡單來說,Tri-training 的訓練過程分爲以下幾步

  1. 利用bootstrap方法從有標籤數據集裏採樣三個子數據集。利用三個子數據集訓練三個有差異的基分類器
  2. 對於其中一個分類器i,另外兩個分類器預測所有未標註數據集,挑選出其中預測結果相同的樣本,作爲新的有標籤數據,加入到分類器i的訓練集中
  3. 爲三個分類器分別執行步驟2,並利用三個擴增的數據集更新分類器
  4. 重複執行2,3,直到模型收斂

在爲無標籤數據貼上僞標籤的過程中,是有可能貼錯標籤,即在數據集中增加噪聲的。但是周教授在論文中證明了,當新增加的數據足夠多時,噪聲帶來的影響是可以被抵消的。Tri-trianing的理論基礎其實是相當堅實的,詳細的可以具體見論文

二、Implementation

代碼數據集等 https://github.com/LiangjunFeng/Tri-training (寫博客不容易,歡迎點贊關注,感謝支持)

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