半監督深度學習又小結之Consistency Regularization
混著混著一年了,終於從一個渣碩混成了一個,呃,老渣碩了(淚)。半年前給大家分享了一些半監督深度學習的心得,看到有人覺得有用真的很開心。遂今天再寫篇文章感謝同學們(發不出論文,也只能在知乎上發文章爽一波了...orz)
Consistency Regularization
今天這篇文章將會以 Consistency regularization 為主題進行闡述,希望讀者們在看論文的時候能夠更本質地理解論文的工作(呃,我不保證consistency regularization是本質...orz)
說到一致(consistency),其實很多代價都有這個內涵,如MSE代價,最小化預測與標籤的差值,也就是希望預測與標籤能夠一致,其他的代價,如KL散度、交叉熵代價也類似。所以一致性,是一種非常內在而本質的目標,可以讓深度網路進行有效學習。
但是在半監督中,無標籤資料並沒有標籤,因而勤勞而美麗的科研工作者們就想出了各種無需標籤資訊的 consistency regularization,隨著 consistency regularizaton 的不斷髮展,一度成為半監督深度學習發展史上耀眼的SOTA。
Consistency Regularization 的主要思想是:對於一個輸入,即使受到微小干擾,其預測都應該是一致的。
例如,某人的裸照(乾淨的輸入)和其有穿衣服的照片(受到干擾的照片),你也應該能知道這是同一個人(一致性)。
當然,這個干擾不能太大(例如衣服把整個人都遮住了)
Consistency Regularization 雖然做法簡單,但是卻具有很多良好的作用,將會在下面的文章中闡述。
Learning with Pseudo-Ensembles
這是NIPS 2014年發表的工作,其提出了一個概念: pseudo-ensemble ,一個 pseudo-ensemble 是一系列子模型( child model ),這些子模型通過某種噪聲過程( noise process )擾動父模型( parent model )得到。
Pseudo-ensemble 與其他的有關擾動的方法的區別在於:其他的方法只考慮在輸入空間的擾動,而 pseudo-ensemble 還考慮在模型空間( model space )上的擾動。
一個典型的 pseudo-ensemble 就是 Dropout。
但是,除了dropout 以外,我沒怎麼想到其他的模型空間上的擾動,看論文的公式貌似是在網路的中間表示新增噪聲?論文有程式碼,但我沒怎麼看,有不同意見的同學可以評論裡提出。
其有監督代價函式如下:
其中 是網路引數, 表示某種噪聲過程,該有監督代價函式就是讓擾動得到的子模型與標籤 一致。
論文中還提出其半監督形式: The Pseudo-Ensemble Agreement regularizer (PEA),其形式如下:
其中 是網路的層數,其含義應該是把父模型的每一層中間表示,與子模型的進行一致正則, 是某種懲罰函式,如MSE代價。(注:最後一層的中間表示即網路的預測)
現在回顧一下Consistency regularization的思想:對於一個輸入,受擾微小擾動後,其預測應該是一致的。
PEA的含義我認為就是,對於一個輸入,受到擾動後,其所有的中間表示,都應該一致。(其實根據後面更多的論文,這個約束可能強力些)
PEA的目的是,使得模型對擾動具有魯棒性,因為魯棒的模型泛化效能更好,同時還能學習資料的內在不變性。( 作用1 )
PS:[論文][ ofollow,noindex">程式碼 ]
Regularization With Stochastic Transformations and Perturbations for Deep Semi-Supervised Learning
這是NIPS 2016年發表的工作。
隨機性在大部分的學習系統中起到重要的作用,深度學習系統也如此。一些隨機技術,如隨機資料增強、Dropout、隨機最大池化等,可以使得使用SGD訓練的分類器具有更好的泛化性和魯棒性。
而且這種不確定性的存在,使得模型對同一個樣本的多次預測結果可能不同。因此論文提出一個無監督代價(即我說的半監督正則),其通過最小化對同一個樣本的多次預測,利用這種隨機性來達到更好的泛化效能。該無監督代價形式如下:
其中 代表對輸入
的第 次預測,
表示某種資料變換。除了對樣本做變換,在網路內也使用類似 Dropout或隨機池化等技術產生隨機性。
似泥?Pseudo-Ensemble!對不起,你倆有點像。
雖然感覺很類似,但是這兩篇論文很值得一讀啊,論文裡提出許多的觀點和想法,一直延續至今,資訊量挺大。
Temporal Ensembling for Semi-supervised Learning
看過我上一篇文章半監督深度學習小結的同學應該不陌生了,這篇在ICLR 2017年的工作提出了一個我稱之為 peer-consistency 的正則項,即 模型,也是我最開始對 consistency regularization 的認知的由來。
模型認為,同一個輸入,在不同的正則和資料增強條件下,網路對其預測應該是一致的。其無監督代價部分如下:
其中 是網路的一個預測,而
是網路對同一個樣本在不同的正則和資料增強條件下的一個預測,然後讓著兩個預測一致。(看起來很像前面兩篇文章的簡化版,但是效果好啊,這也是我說前面的約束太強的原因)
是權重函式,是迭代次數的函式。由於在網路的初始階段,網路的預測十分不準(尤其是半監督中有標籤資料有限的情況),這時的網路預測的靠不住的,因此這無監督代價在初始時的權重應該設定得比較小,到後期再慢慢增大。
非常關鍵,論文中使用了一個高斯爬升函式,具體可以看論文。
我的理解是,這種 peer-consistency 鼓勵一個樣本點的擾動不變性,其實鼓勵了預測函式(即網路)對樣本的鄰域具有光滑性。( 作用2 )
而且把 peer-consistency 看做是一種標籤正則,可以從最大熵模型來理解 peer-consistency,具體可參考 Regularizing neural networks by penalizing confident output distributions,ICLR17。
論文中還提出了另一種更強大的方法,但由於不在該主題下,不講,可能會另開一篇文章講吧,同學可以自己看論文。
PS:[論文][ 程式碼 ]
Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results
沒錯,這也是上一篇文章半監督深度學習小結介紹的方法,方法好多介紹幾遍。這篇NIPS 2017的工作提出了一個 peer-consistency 的升級版,Teacher-student consistency。
其除了 consistency 這個思想外,還有“模型成功的關鍵在於 target 的質量”這個動機,
其想法就是,我從當前的模型(Student model),構造出一個比 Student model 更好 一些 的 Teather model,然後用這個 Teacher model 的預測來訓練 Student model(即 consistency regularization)。
其無監督代價部分如下:
其中 是 Teacher model 的預測,
是 Student model 的預測
但問題是,怎麼去構造這個更好 一些 的 Teacher model?
論文提出的方法是,對 Student model 每次更新的模型做移動平均,移動平均後的模型就是 Teacher model,Teacher model 也不用反向傳播更新,就引數的移動平均足以。其移動平均公式如下:
Line"/>
有沒有一種好神奇的感覺,效果還非常地好。論文還用實驗說明,其能形成一個良好的迴圈,得到一個 Student model,構造一個更好的 Teacher model,然後這個 Teacher model 又能用來升級 Student model,然後又....
當然,由於 Student model 剛開始只用有限的有標籤資料訓練,其效能並不好,因此該無監督代價同樣需要乘一個權重(函式),這個權重函式和 Temporal Ensembling for Semi-supervised Learning 一樣。
PS:[論文][ 程式碼 ]
Smooth Neighbors on Teacher Graphs for Semi-supervised Learning
這是CVPR 2018的工作,該工作指出,前面的 consistency 都是隻作用在單個數據點上,即都是對同一個資料點的增強。因此,論文提出一種 features consistency,其認為屬於同一個類別的資料特徵(分類層前面的中間表示)應該具有一致性。
但是,無監督資料並沒有標籤,我怎麼知道是不是屬於同一類,論文使用前面的半監督方法的預測作為樣本的標籤,即 pseudo label,來構造這種屬於同一類別的特徵一致性。
雖然感覺這是取了巧,但是實驗效果還不錯,而且想法也很對,還是分享一下。其特徵一致性的正則如下:
其中,若預測的為屬於同一類,則 ,不屬於同一類則為 0。
表示樣本的(深度)特徵。
當然,這個代價函式本身是1994年NIPS一個工作提出來的,被這篇論文重新活用了,還是那句話,想法對,效果也好。
PS:[論文][ 程式碼 ]
還有一篇 consistency regularization 的算是 Virtual Adversarial Training: a Regularization Method for Supervised and Semi-supervised Learning,雖然論文講的是如何計算對抗噪聲,但我看了程式碼覺得其實和 consistency 很像,只不過是普通擾動變成了對抗擾動
還有一篇類似 CVPR 2018 SNTG 的論文是 ECCV 2018 的 Transductive Semi-Supervised Deep Learning using Min-Max Features,不過大部分概念我說過了,論文自己去看就行,思想差不多。
本章完...
點贊多的話,本渣碩麻利地去寫完剩下的 Semi-supervised autoencoder、semi-supervisd GAN和半監督其他方法。不過現在,先休息一下。
好像又插旗了...orz