1. 程式人生 > >機器學習15:半監督學習semi-supervised

機器學習15:半監督學習semi-supervised

一、why semi-supervised

dataset中只有部分資料進行了lable標註,即,有的資料成對出現{輸入,輸出},有的資料只有輸入{輸入};

Transductive learning(直推試學習):unlabled資料作為測試集;

Inductive learning(啟發式學習):unlabled資料不是測試集。

半監督學習有用的原因:雖然unlabled資料的分類結果直接由supervsed的網路決定,但是,被測試的資料可以用來更新網路,簡單說就是會改變分界線;但是,這種方式會基於labled data學習到網路對unlabled data進行分類,並不一定完全準確。

二、主要內容

三、generative model

1、回顧監督學習的generative model:貝葉斯模型

2、從這個思路出發,半監督學習就需要在加入了unlabled資料之後,找到新的概率分佈,變成如下虛線的形式:

3、操作步驟:估計新的均值,方差

首先,基於初始的均值與方差,估計每個unlabled資料屬於C1的概率;

然後,所有unlabled資料屬於C1的概率相加記做N2,就是這些資料期望是C1的個數,可計算出新的P(C1),進而算出新的均值;

所以,預測模型相應改變了,換上新的資料,反覆迭代上述步驟

四、self-Training

如下圖,藍色與黃色分別為class1和2,綠色unlable,一般來說,分界線位於資料密度較小的地方較為合理。這裡對unlable data進行非黑即白的假設。

self-training與generative model總體思想類似,都需要先使用lable的data得到一個模型,再使用該模型預測unlable的data,然後進行模型更新,區別在於generative model基於概率的模型,預測的是unlable data的概率,而self-training直接給出unlable data的分類結果。

那麼,對於self-training,對資料的lable屬於hard lable,相對的,generative model是soft lable的,如果將soft lable用於semi-supervised的卷積網路,網路可能就不會work了。

五、Loss Function

訓練出的模型分類儘量集中,對於一個輸入,輸出必然集中在某一類。最後的Loss Function是lable data的cross entropy與unlable data的entropy之和,這裡可以給出一個權重,可以調整模型更加偏重於哪一方。

六、Smoothness Assumption

基於Smoothness Assumption,可以利用先驗知識對損失函式進行正則化,smoothness的假設直觀的表達就是近朱者赤近墨者黑。代表輸入越像的兩組資料,分類的結果就越像。

但是,這種直觀表述並不嚴謹,更精確的表述是,在高密度區域,輸入越接近,輸出就越接近。如圖所示,x1與x2其實更接近,如果不加high desity的限定,那麼結果就是x2與x3更接近。

另外,影象輸入相似度不能簡單的以畫素值來判定,而對auto encoder之後的資料做相似度計算效果可能會更好。

smoothness 的假設更傾向於資料緩慢間接變化的一個過程,如圖中的2與3,直接以畫素的角度判斷,後面的2與3可能更像,但從變化的角度看,兩個2才是一類。

從另一個角度說,同一型別可以相互傳導