導言網絡
遷移學習在CV任務的做用已經廣爲人知。其通常會使用預訓練的深度卷積網絡來解決新任務。這些網絡在大規模標註數據集,如ImageNet中監督訓練好。它們的提取的特徵能很好適應新任務。框架
可是當訓練數據缺乏標註時,咱們一般會使用預訓練網絡的權重,而後給網絡加上新的分類層,而後從新訓練網絡。這個技巧被稱爲遷移學習。使用預訓練模型的權重來作新任務,模型的學習速度會加快,而且比從零開始訓練的模型要更準確。函數
可是這種遷移學習方法依賴於監督訓練的模型。這些標註數據並不易得。但咱們仔想一想想無監督樣本是充足的。所以使用無監督數據來學習特徵表來學習更好的監督模型是頗有意義的。實際上,這是個很早就存在的問題,最近研究發現無監督表示學習方法能漸漸遇上了監督學習的方法效果。其中對比學習就是一個典型的例子。學習
對比學習的目標是讓類似樣本產生相同的表示,不類似的樣本產生不一樣的表示。對比學習的核心是噪聲對比估計損失(Noise Contrastive Estimator (NCE) loss),其其表示以下:spa
其中x+是輸入x的類似點,(x,x+)又可稱爲正對。一般x+由x變換得來,如圖像裁剪,旋轉變換或其餘的數據增廣手段。反之,x-則是x的不類似樣本,則有負對(x,x-),NCE loss會使得負對與正對區別開。通常對於每組正對,都會有K組負對。負對的數目對對比學習效果影響很大。圖片
sim(.)表明類似度度量。一般其使用內積或餘弦類似度。g(.)是一個卷積神經網絡。有的對比學習會用siamese網絡。it
A Simple Framework for Contrastive Learning of Visual Representations - SimCLRio
SimCLR基於上述的對比框架。SimCLR的思想是統一同一圖片的兩種增廣版本的表示。在訓練中,每一個樣本i與batch裏其餘樣本j構成pair對。不會與自身或變換的自身樣本組成負對。所以就獲得2*(N-1)個負對。這種方式使得SimCLR不像PIRL和MOCO那樣須要額外的存儲負對樣本。ast
SimCLR使用ResNet-50做爲主要的卷積提取器,接受圖像輸入後獲得嵌入向量h,而後使用給MLP(relu激活函數)輸出z=g(h)。對比損失在z上計算。當訓練結束,丟棄g,直接使用h在作其它任務。class