一仙粱、介紹
- 什么是半監(jiān)督學習
假設有以下數(shù)據蚪黑,一部分是有標簽的數(shù)據膏斤,另一部分是無標簽的數(shù)據:
在實際情況下徐绑,一般無標簽數(shù)據的量遠大于有標簽數(shù)據的量,即莫辨,因為為數(shù)據進行標注是需要成本的傲茄。半監(jiān)督學習使用大量的未標記數(shù)據,以及同時使用標記數(shù)據沮榜,來進行模式識別工作盘榨。
- 半監(jiān)督學習的分類
半監(jiān)督學習可以分為transductive semi-supervised learning和inductive semi-supervised learning兩種,他們的區(qū)別在于:
①transductive semi-supervised learning:未標注數(shù)據是測試數(shù)據蟆融,訓練集草巡,在測試時我們不管(或者沒有),而是想知道對的效果怎么樣型酥;
②inductive semi-supervised learning:未標注數(shù)據不是測試數(shù)據捷犹,也就是說訓練集,測試冕末。
- 為什么半監(jiān)督學習可能會有用
無標簽數(shù)據雖然沒有標簽但是它的分布可能會提供一些有用的信息萍歉。在進行半監(jiān)督學習時通常會伴隨一些假設,半監(jiān)督學習效果好不好往往取決于這些假設合不合理档桃。
- Outline
接下來將包含以下內容枪孩,其中包含兩種假設:
二、生成模型的半監(jiān)督學習
對于生成模型藻肄,如果再考慮進無標簽數(shù)據就有可能影響模型的均值蔑舞、方差以及決策邊界。
可以使用EM算法對模型(這里以兩個不同均值相同方差的高斯分布為例)進行更新嘹屯,該更新過程會收斂攻询,最終獲得新的生成模型,該過程的步驟如下:
首先初始化參數(shù)州弟,可以選擇隨機初始化钧栖,也可以選擇使用標注數(shù)據初始化一個模型。
Step1(E步):計算未標注數(shù)據的后驗概率婆翔;
Step2(M步):更新模型
迭代執(zhí)行上述步驟直到收斂。這里沒有更新的原因是是共享的啃奴,并不影響迭代過程潭陪。
如果只有標注數(shù)據則只需要極大化以下對數(shù)似然函數(shù)即可求解,且有閉式解:
如果考慮進未標注數(shù)據就要極大化以下對數(shù)似然函數(shù):
而極大化上式是沒有閉式解的,因此需要迭代的方式來進行參數(shù)的更新依溯,也就是說完成一次上述的E步和M步就會使對數(shù)似然函數(shù)增大一點老厌,最終該方法會收斂。
三黎炉、低密度分離假設
- 簡介
該假設是指在不同的類別的分界處幾乎是沒有數(shù)據的(低密度)梅桩,也就是說不同類別之間有明顯的分界的鴻溝,可以認為數(shù)據是“非黑即白”的拜隧。
在下圖中兩種分割方式雖然都能將標注數(shù)據100%地分開宿百,但是如果考慮進未標注數(shù)據的話顯然左邊的線效果更好,因此未標注數(shù)據的作用就是挑選一條效果更好的分割線洪添。
- Self Training(自學習)
自學習是低密度假設最簡單的方法垦页,其主要步驟如下:
Step1:利用標注數(shù)據訓練一個模型,訓練的方法不受限制干奢;
Step2:將應用到未標注數(shù)據上獲得痊焊,也就是為未標注數(shù)據打上標簽,叫做偽標簽(Pseudo-label)忿峻;
Step3:將未標注數(shù)據中的數(shù)據移出一部分作為標注數(shù)據薄啥,數(shù)據的選取標準可以自行設定,比如使用置信度或者權重等逛尚;
Step4:迭代執(zhí)行上述過程直到全部數(shù)據被標注垄惧。
注意自學習的方法對回歸任務是不適用的,因為如果用標注一些未標注數(shù)據然后再訓練一個還會得到原來的绰寞。
另外這里還有硬標簽和軟標簽兩個概念到逊,在生成模型中我們使用軟標簽(即使用數(shù)據作為每一類的概率),而在自學習中使用的是硬標簽(即強行根據設定的方法將未標注數(shù)據劃歸到某一類中)滤钱。
可以考慮在使用神經網絡訓練模型的自學習過程中觉壶,如下圖所示,如果使用軟標簽則更新模型時新的標注數(shù)據不會起作用(因為已有模型已經可以輸出軟標簽的結果)件缸,而使用硬標簽就可以起到更新模型的效果:
- Entropy-based Regularization
上面提到的使用硬標簽的方式可能會讓人覺得過于武斷铜靶,這里的Entropy-based Regularization將介紹一種新的方式,同樣地構建的模型輸出一個與類別數(shù)量同樣維度的向量他炊,每個維度代表該樣本屬于該類的概率争剿,即,這里的是一個向量:
我們的目的是為了使得模型獲得作為輸入時能輸出下面展示的比較好的標簽向量(第1佑稠、2種情況)秒梅,也就是說要盡可能地使得輸出的標簽的數(shù)值集中在某一維度:
接著我們定義信息熵的概念旗芬,信息熵會告訴我們分布的集中程度舌胶,比較集中的分布就會有比較小的信息熵。在上圖中疮丛,前兩種情況的交叉熵就會比較小幔嫂,而第三種情況的交叉熵就會比較大辆它,交叉熵的計算公式如下:
我們的目的是需要讓標注數(shù)據的交叉熵和未標注數(shù)據的信息熵都要小,也就是說對于訓練的模型來說要使得標注數(shù)據的預測正確且未標注數(shù)據的預測集中履恩,因此我們使用以下?lián)p失函數(shù):
上式中可以用來調節(jié)哪一部分更重要锰茉,這一過程類似于正則化的過程,Entropy-based Regularization也因此而得名切心。
- 概覽:Semi-supervised SVM(半監(jiān)督支持向量機)
半監(jiān)督支持向量機的做法大體是對于未標注數(shù)據而言可以窮舉其label所有可能的情況飒筑,然后對每一種情況訓練一個SVM,訓練的目標是:
①要有最大的margin绽昏,讓這兩個class分的越開越好协屡;
②要有最小的分類錯誤。
如下圖所示全谤,在窮舉訓練的過程中挑選最大margin和最小error的模型肤晓,該模型對應的未標注數(shù)據的標簽就是最好的情況:
這種方法的缺點就是對于很多的未標注數(shù)據窮舉的方式幾乎不可能完成,因此該方法的作者提供了一種approximate的方法认然,其基本精神是:一開始首先獲得未標注數(shù)據的標簽补憾,然后改一筆數(shù)據的標簽看看可不可以使上面提到的度量標準變得好一點,如果可以就保留該標簽的變動卷员。
四盈匾、平滑性假設
- 概念
如果未標注數(shù)據不是均勻分布的,則同樣類別的數(shù)據之間應該會通過一塊高密度區(qū)域連接在一起毕骡,比較精確的定義是:
①的分布是不均勻的威酒;
②如果和在一個高密度區(qū)域上相距很近的話,那么和就應該是相同的挺峡。
在下圖中雖然和的距離很近但是它們之間沒有過渡的數(shù)據跌造,因此它們的標簽一般不相同,而和之間有一個高密度區(qū)域举户,所以它們的標簽很可能相同蕉世。
- 支持平滑性假設的一些例子
- 數(shù)字識別
在下圖中,可能兩個“2”看起來并不像而第二個“2”和“3”看起來更像一點狭姨,因此容易誤分類宰啦。但如果數(shù)據中兩個“2”之間有多個過渡形態(tài),則可以利用平滑性假設將兩個“2”正確分類到一起:
- 人臉識別
在人臉識別過程中也同理饼拍,因為兩張人臉之間有逐漸過渡的狀態(tài)赡模,因此可以將同一個人的人臉識別出來:
- 文檔分類
同一類別的文章可能會有專屬的詞匯,如果如下圖某些詞既出現(xiàn)在標注的文檔里也出現(xiàn)在未標注的文檔里师抄,那么分類工作會變得容易些:
但是實際中往往不會出現(xiàn)重合的詞匯漓柑,這是因為自然語言中的詞匯是多種多樣的,即使是同一類別的文章也可能不出現(xiàn)重合的詞匯,如下圖:
但是如果有足夠多的未標注數(shù)據則可以根據詞匯間的過渡關系進行正確的分類:
- 平滑性假設的一種簡單實現(xiàn)方法
一種簡單的實現(xiàn)方法是聚類后標簽(cluster and then label)辆布,這種方法是先將數(shù)據進行聚類然后根據平滑性假設獲得數(shù)據的標簽瞬矩。
這種方法是很直觀的,但是這種方法不一定會得到好的結果锋玲,因為它的假設是你可以把同一類的樣本點聚類在一起景用,而這其實是不容易的。
舉例來說惭蹂,在圖像分類中如果單純地將圖像按照像素的相似程度聚類到一起得到的效果一般會很差伞插,需要設計一個較好的表示來描述圖像(比如使用Deep AutoEncoder的方式來提取特征),這樣的效果會好一些盾碗。
- 基于圖的方法
- 定性使用基于圖的方法
使用圖來表示數(shù)據與數(shù)據之間通過高密度區(qū)域相連會有很好的效果蜂怎,有的數(shù)據之間建立圖的關系是很自然的比如網頁之間的鏈接關系或論文之間的引用關系。通過構建圖可以直觀地表示數(shù)據之間的連接關系:
構建圖的具體方法是通過定義數(shù)據之間的相似性(similarity)來決定數(shù)據與數(shù)據之間是否有邊(edge)相連置尔,定義可以衡量相似性杠步。對于構建的數(shù)據之間的邊,可以給邊設置權重來表示數(shù)據之間相似性的強弱榜轿,這個權重應該是同成正比的幽歼。
通常使用的是徑向基函數(shù)(RBF),其公式如下:
通常需要自己去尋找相似性的度量方法谬盐,比如在圖像處理中如果使用圖像像素之間的接近程度作為相似性的度量標準往往效果不太好甸私,但是如果使用Deep AutoEncoder獲得的圖像的特征來進行度量效果就會好一點。
可以看到該函數(shù)由于具有指數(shù)的關系飞傀,只有當和非常接近時才會有比較大的相似性皇型,而稍微距離有點遠就會使得相似性不高,由此避免了將下圖中綠色點和紅色點看做高相似性的情況的發(fā)生:
在有了相似性的度量標準后要有具體的方法來決定兩個數(shù)據之間是否有邊砸烦,有兩種方法:
①K Nearest Neighbor:設定一個K值弃鸦,將每個點與距離自己最近的前K個點相連;
②e-Neighborhood:將每個與距自己的距離小于e的點相連幢痘。
圖的作用是使得標簽可以在相連的其他樣本之間傳遞唬格,如下圖所示,一個數(shù)據的類別將影響它的臨近點颜说」焊冢基于圖的方法的基本精神是,在圖上已經有一些標注數(shù)據门粪,那么跟它們相連的樣本喊积,屬于同一類的概率就會上升,每一筆數(shù)據都會去影響它的鄰居玄妈。而圖帶來的最重要的好處是乾吻,這個影響是會隨著邊傳遞出去的髓梅,即使有些點并沒有真的跟標注數(shù)據相連,也可以被傳遞到相應的屬性:
- 定量使用基于圖的方法
我們定義圖的smooth值溶弟,并且我們希望使用訓練的模型構建的圖的smooth值越小越好女淑。
我們通過以下公式定義圖的平滑度(smoothness):
計算要將所有數(shù)據點考慮在內瞭郑,無論標注數(shù)據還是未標注數(shù)據辜御,而且越小平滑度就越高。下圖為計算的兩個例子:
在上圖中顯然左邊的更平滑屈张。左邊的圖的特點是其環(huán)狀的節(jié)點都是同樣的標簽擒权,而右邊的圖的環(huán)狀的節(jié)點的標簽不同,因此可以看出我們的目的是使得構建的圖的數(shù)據較集中的部分具備一致的標簽阁谆,這也是使盡可能要小的作用碳抄。
可以將寫成矩陣或向量相乘的形式:
上式中是維的向量,场绿;
剖效,叫做Graph Laplacian,和計算方式如下焰盗,其中相當于鄰接矩陣璧尸,的對角線元素是該元素所在行的所有元素的和:
在模型訓練過程中需要使用以下激活函數(shù),將作為一個正則化項熬拒,如此訓練的模型才會越來越平滑:
具體訓練的時候爷光,不一定只局限于模型的輸出要smooth,可以對中間任意一個隱藏層加上smooth的限制:
五澎粟、Better Representation
這部分只做簡單介紹蛀序,等到無監(jiān)督學習的時候再具體介紹。Better Representation的精神是去蕪存菁活烙,化繁為簡徐裸。Better Representation旨在尋找未標注數(shù)據的更好的表達。
舉個例子啸盏,在神雕俠侶中倦逐,楊過要在三招之內剪掉樊一翁的胡子,胡子的變化是比較復雜的宫补,但頭的變化是有規(guī)律的檬姥,楊過看透了這一件事情就可以把胡子剪掉。在這個例子中粉怕,樊一翁的胡子就是original representation健民,而他的頭就是你要找的better representation。