半監督學習


一、半監督學習

1-1、什么是半監督學習

讓學習器不依賴外界交互、自動地利用未標記樣本來提升學習性能,就是半監督學習(semi-supervised learning)。

要利用未標記樣本,必然要做一些將未標記樣本所揭示的數據分布信息與類別標記相聯系的假設。假設的本質是“相似的樣本擁有相似的輸出”。

半監督學習可進一步划分為純(pure)半監督學習和直推學習(transductive learning),前者假定訓練數據中的未標記樣本並非待測的數據,

而后者則假定學習過程中所考慮的未標記樣本恰是待預測數據,學習的目的就是在這些未標記樣本上獲得最優泛化性能。

1-2、無標記樣本的意義

圖片來源: A Tutorial on Graph-based Semi-Supervised Learning Algorithms for Speech and Spoken Language Processing

左圖表示根據現有的數據,我們得到的分類邊界如左圖中藍線所示。但是當我們有了無標簽數據的分布信息后,兩個類的分類超平面就變得比較明確了。

因此,使用無標簽數據有着提高分類邊界的准確性,提高模型的穩健性。

1-3、偽標簽(Pseudo-Labelling)學習

來源: Pseudo-labeling a simple semi-supervised learning method

偽標簽學習也可以叫簡單自訓練(simple self-training):用有標簽數據訓練一個分類器,然后用這個分類器對無標簽數據進行分類,

這樣就會產生偽標簽(pseudo label)或軟標簽(soft label),挑選你認為分類正確的無標簽樣本(此處應該有一個挑選准則),把選出來的無標簽樣本用來訓練分類器。

 

上圖反映的便是簡單的偽標簽學習的過程,具體描述如下:

i)使用有標簽數據訓練模型;

ii)使用訓練的模型為無標簽的數據預測標簽,即獲得無標簽數據的偽標簽;

iii)使用(ii)獲得的偽標簽和標簽數據集重新訓練模型;

最終的模型是(iii)訓練得到,用於對測試數據的最終預測。

偽標簽方法在實際的使用過程中,會在(iii)步中增加一個參數:采樣比例(sample_rate),表示無標簽數據中本用作偽標簽樣本的比率。

 偽標簽方法的更加詳細介紹以及Python實現可以最后的參考文獻。

二、半監督學習方法

2-1、半監督SVM(Semi-Supervised Support Vector Machine,簡稱S3VM)

有監督學習中的傳統SVM試圖找到一個划分超平面,使得兩側支持向量之間的間隔最大,即“最大划分間隔”思想。對於半監督學習,S3VM則考慮超平面需穿過數據低密度的區域。

TSVM是半監督支持向量機中的最著名代表,TSVM主要思想是嘗試將每個未標記樣本分別作為正例或反例,在所有結果中,尋找一個在所有樣本上間隔最大的划分超平面。

TSVM采用局部搜索的策略來進行迭代求解,即首先使用有標記樣本集訓練出一個初始SVM,接着使用該學習器對未標記樣本進行標記,這樣所有樣本都有了標記,

並基於這些有標記的樣本重新訓練SVM,之后再尋找易出錯樣本不斷調整。

2-2、半監督深度學習

2-2-1、無標簽數據初始化網絡

一個好的初始化可以使得網絡的結果准確率提高,迭代次數更少。因此該方式即是利用無標簽數據讓網絡有一個好的初始化。

初始化的兩種方法,無監督預訓練與偽有監督預訓練

無監督預訓練:用所有訓練數據訓練自動編碼器(AutoEncoder),然后把自編碼網絡的參數作為初始參數,用有標簽數據微調網絡(驗證集)。

偽有監督預訓練:通過半監督算法或聚類算法等方式,給無標簽數據附上偽標簽信息,先用這些偽標簽信息來預訓練網絡,然后再用有標簽數據來微調網絡(驗證集)。

2-2-2、有標簽數據提取特征的半監督學習

i)用有標簽數據訓練網絡(此時網絡一般過擬合);

ii)通過隱藏層提取特征,以這些特征來用某種分類算法對無標簽數據進行分類;

iii)挑選認為分類正確的無標簽數據加入到訓練集;

重復上述過程。

想法美好,實際應用不太行,誤差會放大。

2-2-3、網絡本身的半監督學習(端到端的半監督深度模型)

ICML 2013 的文章Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks

該文章簡單的說就是在偽標簽學習中使用深度學習網絡作為分類器,就是把網絡對無標簽數據的預測,作為無標簽數據的偽標簽(Pseudo label),用來對網絡進行訓練。

但方法雖然簡單,但是效果很好,比單純用有標簽數據有不少的提升。其主要的貢獻在於損失函數的構造:

損失函數的第一項是有標簽數據的損失,第二項是無標簽數據的損失,

在無標簽數據的損失中, y' 為無標簽數據預測得到的偽標簽,是直接取網絡對無標簽數據的預測的最大值為標簽。

 其中 \alpha(t)決定着無標簽數據的代價在網絡更新的作用,選擇合適的 \alpha(t) 很重要,太大性能退化,太小提升有限。

在網絡初始時,網絡的預測時不太准確的,因此生成的偽標簽的准確性也不高。

在初始訓練時, \alpha(t) 要設為 0,然后再慢慢增加,論文中給出其增長函數。

 

Semi-Supervised Learning with Ladder Networks

ladderNet 是有監督算法和無監督算法的有機結合。上面提及到的無監督預訓練+有監督微調的思想中所有監督和無監督是分開的,兩個階段的訓練相互獨立,並不能稱之為真正的半監督學習。

無監督學習是用重構樣本進行訓練,其編碼(學習特征)的目的是盡可能地保留原始數據的信息;而有監督學習是用於分類,希望只保留其本質特征,去除不必要的特征。

舉例來說:我們的分類任務判斷一張人臉圖片是單眼皮,還是雙眼皮;那么有監督學習經過訓練完畢后,就會盡可能的把與這個分類任務無關的信息過濾掉,過濾的越好,那么分類的精度將會更高。

比如一個人的嘴巴、鼻子信息這些都是與這個分類任務無關的,那么就要盡量的過濾掉。

因此,基於這個原因以至於一直以來有監督學習和無監督學習不能很好的兼容在一起。

ladderNet 成功的原因在於損失函數和 skip connection 。通過在每層的編碼器和解碼器之間添加跳躍連接(skip connection),減輕模型較高層表示細節的壓力,

使得無監督學習和有監督學習能結合在一起,並在最高層添加分類器。

損失函數的第一項是有標簽樣本數據的交叉熵損失函數,第二項是無監督各層噪聲解碼器重構誤差歐式損失函數。

 

其他的幾種半監督網絡的具體見參考文獻[4]中.

Temporal Ensembling for Semi-supervised Learning

Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results

 

Mean teacher是對模型的參數進行移動平均(weight-averaged),使用這個移動平均模型參數的就是 teacher model 。

其思想有點類似於網絡模型融合中的隨機加權平均(SWA,Stochastic Weight Averaging)。

 

 

 參考文獻

[1]. 周志華. 機器學習[M]. Qing hua da xue chu ban she, 2016.

[2].【譯文】偽標簽學習導論 - 一種半監督學習方法

[3].半監督深度學習小結

[4].深度學習的自編碼

[5].深度學習(三十二)半監督階梯網絡學習筆記


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM