機器學習教程 之 半監督學習 Co-training 協同訓練 (論文、算法、數據集、代碼)

這篇博客介紹的是一篇用於半監督分類問題的方法: 協同訓練 Co-training, A. Blum and T. Mitchell, “Combining labeled and unlabeled data with co-training,” in Proc. of the 11th Annual Conf. on Computational Learning Theory, 1998.,這算是半監督領域裏面始祖級的論文了,是1998年兩位CMU大佬提出的方法。

之前還寫過一篇關於Tri-training半監督分類算法的博客,是周志華老師在Co-training的基礎上做的工作,感興趣的同學可以看一下。

一、協同訓練 Co-training

協同訓練是一類基於“分歧”的半監督學習方法,它最初是針對“多視圖”數據設計的。爲了更好的介紹協同訓練,我們這裏先介紹什麼是多視圖數據。

在不少現實應用中,一個數據對象往往同時擁有有多個“屬性集”,每個屬性集就構成了一個視圖。例如,對於一部電影而言,它擁有多個屬性集,即圖像畫面對應的屬性集、聲音信息對應的屬性集、字幕信息對應的屬性集、甚至網上的宣傳所討論對應的屬性集等。每個屬性集都可以看作爲一個視圖。爲簡化討論,這裏僅考慮圖像畫面屬性集所構成的視圖和聲音屬性集所構成的視圖。於是,一個電影片段可以表示爲(<x1,x2>,y)(<x^{1},x^{2}>,y),其中x1x^{1}爲圖像視圖中的屬性向量,x2x^{2}爲聲音視圖中的屬性向量,yy是標籤,這裏表示的是電影類型,例如“動作片”、“愛情片”等等。這樣 (<x1,x2>,y)(<x^{1},x^{2}>,y) 就是一個有兩個視圖的數據

假設不同視圖具有“相容性”,即所包含的關於輸出空間YY的信息是一致的:令Y1Y^{1}表示從圖像畫面信息判別的標記空間,Y2Y^{2}表示從聲音信息判別的標記空間,則有Y=Y1=Y2Y=Y^{1}=Y^{2},例如兩者都是{}\{愛情片、動作片\},而不能是Y1={}Y^{1}=\{愛情片、動作片\}Y2={}Y^{2}=\{驚悚片、文藝片\}。在此假設下,顯式地考慮多視圖這一信息顯然是有很多好處的。以電影爲例,某個片段上,兩人相視,僅憑畫面信息難以分辨其類型,但此時若從聲音信息聽到“我愛你”,則可以判斷出該片段很有可能屬於“愛情片”;相反的,若僅憑圖像畫面信息認爲“可能是動作片”,僅憑聲音信息也認爲“可能是動作片”,則當兩者一起考慮時就有很大把握判別爲“動作片”。顯然,在“相容性”基礎上,不同視圖信息的“互補性”會給學習器的構建帶來很大便利。

協同訓練正是很好地利用了多視圖的“相容互補性”。假設數據擁有兩個充分且條件獨立的視圖,“充分”是指每個視圖都包含足以產生最優學習器的信息,“條件獨立”則是指在給的類別標記條件下兩個視圖相互獨立。 在此情況下,可以用一個簡單的辦法來利用未標記數據:首先在每個視圖上基於有標籤樣本分別訓練出一個分類器,然後讓每個分類器分別去挑選自己“最有把握的”未標記樣本賦予僞標記,並將僞標記樣本提供給另一個分類器作爲新增的有標記樣本用於訓練更新…這個“互相學習、共同進步”的過程不斷迭代進行,直到兩個分類器都不再發生變化,或達到預先設定的迭代輪次爲止。

協同訓練的過程雖然簡單,但令人驚訝的是,理論證明顯示出,若兩個視圖充分且條件獨立,則可以利用未標記樣本通過協同訓練將弱分類器的泛化性能提升到任意高。不過,視圖的條件獨立性在現實任務中通常很難滿足,因此提升幅度不會那麼大。

二、算法流程

協同訓練的算法描述如下所示:
在這裏插入圖片描述
若在每輪學習中都考察分類器在所有未標記樣本上的分類置信度,會有很大計算開銷,因此在算法中使用了未標記樣本緩衝池。分類置信度的估計則因基學習算法的不同而不同,例如若使用貝葉斯分類器,則可以將後驗概率轉化爲分類置信度;若使用支持向量基,則可以將間隔大小轉化爲分類置信度。

此外,協同訓練算法本身是爲多視圖數據而設計的,但此後出現了一些能在單視圖數據上使用的變體算法,它們或是使用不同的學習算法,或是使用不同的數據採樣,甚至使用不同的參數設置來產生不同的學習器,也能有效利用未標記數據來提升性能。後續理論研究發現,此類算法事實上無需數據擁有多視圖,僅需弱學習器之間具有顯著分歧,即可通過相互提供僞標籤樣本的方式來提升性能。

三、資源下載

微信搜索“老和山算法指南”獲取代碼下載鏈接與技術交流羣
在這裏插入圖片描述
有問題可以私信博主,點贊關注的一般都會回覆,一起努力,謝謝支持。

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