@article{chen2020a,
title={A Simple Framework for Contrastive Learning of Visual Representations},
author={Chen, Ting and Kornblith, Simon and Norouzi, Mohammad and Hinton, Geoffrey E},
journal={arXiv: Learning},
year={2020}}
概
SimCLR 主要是利用augmentation來生成正負樣本對, 雖然沒有花里胡哨的結構, 但是通過細致的tricks比之前的方法更為有效.
主要內容
流程
流程是很簡單的, 假設有一個batch的樣本\(x\), 然后從augmentation\(\mathcal{T}\)中隨機選取倆個\(t,t'\), 由此得到兩批數據\(\tilde{x}_i=t(x), \tilde{x}_j=t'(x)\), 經過第一個encoder得到特征表示\(h_i,h_j\), 再經由一個非線性變化\(g\)得到\(z_i,z_j\)(注意這一步是和以往方法不同的點), 再由\(z_i, z_j\)生成正負樣本對(對應同一個樣本的倆個樣本構成正樣本對, 否則為負樣本對).
接下來先介紹一些比較重要的特別的tricks, 再介紹別的.
projection head g
一般方法只有一個encoder \(f(\cdot)\), SimCLR多了一個projection head \(g(\cdot)\), 它把第一次提到的特征再進行一次過濾:
其中\(\sigma\)為ReLU.
作者說, 這是為了過濾到由augmentation帶來的額外的可分性, 讓區分特征\(z\)變得更為困難從而學習到更好的特征\(h\).
注: 用於下游任務的特征是\(h\)而非\(z\)!
上表是將特征\(h\)或者\(z\)用於一個二分類任務, 區分輸入是否經過了特定的augmentation, 結果顯示\(h\)能夠更好的分類, 意味着\(h\)比\(z\)含有更多的augmentation的信息.
constractive loss
其中\(\mathrm{sim}(u,v)=u^Tv/\|u\|\|v\|\).
實驗顯示這個損失比別的都好用.
augmentation
SimCLR中augmentation是很重要的構造正負樣本對的配件, 經過消融實驗發現, 最有效的的是crop和color distortion.
另外, 實驗還顯示, 監督學習比起對比學習來講, 對augmentation的依賴程度很低, 甚至可以說是不依賴.
other
- 大的模型充當encoder效果更好;
- 大的batch size 和 更多的 training epoches有助於學習到更好的特征表示;