首先先認識下什么是co-training:
在計算機視覺中,我們都知道訓練一個分類器的時候,我們需要兩類樣本,分別是正樣本和負樣本。監督訓練又可以成為off-line training,就是提前准備好已經標注過樣本,然后對分類器進行訓練,最后將訓練好的分類器對需要進行分類的東西進行分類。而另一個是online training. 剛開始的時候我們用一些標注過的樣本對分類器進行初始化訓練。這樣分類器就有一定的效果,然后在這之后對未標注的樣本進行分類,之后利用相關的方法識別出正樣本和負樣本,然后再過程中不斷改進分類器,從這個過程中不斷提高分類器的分類效果。
co-training最早是有Blum he Mitchell在1998年提出的Combining labeled and unlabeled data with co-training
早期主要用於1:Web-page classification (Page text\ Hyperlink text))
2:bilmetric recognition systems(appearance and voice)
在物體檢測中,co-training主要應用於監控中車輛檢測和移動物體的識別。
Co-training是目前很流行的一種半指導機器學習的方法,它的基本思想是:構造兩個不同的分類器,利用小規模的標注語料,對大規模的未標注語料進行標注的方法.Co-training方法最大的優點是不用人工干涉,能夠從未標注的語料中自動學習到知識。Co-training方法,是有指導和無指導機器學習兩者的一個折中辦法,它的原則是:在不犧牲性能的前提下,盡量多的使用未帶標數據,它從一個小規模的帶標的語料庫開始,同時使用大規模的未帶標語料來進行學習。Co-training算法應用於屬性存在天然可分割性的數據集,即數據集的某些屬性能夠在某種角度上描繪數據的某種特征,而這些屬性不是唯一的,有許多不同的屬性能夠將同樣的特征從不同的角度描繪出來,這樣的數據屬性集就具有天然可分割性,忽視了數據集特性的可分割性.Co-training算法則利用兩個不同學習器在數據集的/分割的特性集上獨立學習,並結合兩個學習器的學習結果作出最后學習結論,這樣來達到降低錯誤率的目的.
Co-training的描述如下:
- 從兩個view是看一個分類問題;
- 根據不同的角度分別建立一個模型,在標注集下訓練每個模型;
- 標注未標注的句子,然后找出每個模型都比較高自信度標注的句子;
- 以不同的方式挑出這些高自信度的句子;
- 把這些句子加入到訓練集中,迭代這個過程,直到未標注數據耗盡;