Contrastive Learning 對比學習 | 何愷明大神的 SimSiam
MoonOut發表於2024-03-07
- 論文題目:Exploring Simple Siamese Representation Learning,CVPR 2021。
- pdf:https://arxiv.org/abs/2011.10566
- 相關部落格:
- 知乎 | 無門檻級講解對比學習中的自監督模型 Simsiam (通俗易懂)
- 知乎 | 對比學習(Contrastive Learning):研究進展精要 (解釋了為什麼 Simsiam 會演變成這樣)
- 知乎 | SimSiam:孿生網路表徵學習的頂級理論解釋 (解釋 Simsiam 的 stop-gradient 與 EM / k-means 演算法的聯絡)
- 知乎 | SimSiam 論文閱讀
- 簡書 | SimSiam 論文簡析——筆記
演算法思想
- 輸入 x, x1, x2,其中 x 代表資料集中的一張圖片,x1, x2 是資料增強(data augmentations)得到的兩張圖片。注意,原圖片並不作為輸入。
- 接下來,x1, x2 透過 同一個 編碼器(encoder)編碼,得到兩個表徵向量 z1=f(x1), z2=f(x2)。這個編碼器一般使用經典卷積神經網路 ResNet。這一步的目的就是透過卷積神經網路提取特徵,得到感受野大、維度較小的向量。
- 然後,我們將 z1 經過一個 MLP 對映得到 p1=h(z1) ,最大化 p1, z2 的 cosine similarity,作為目標函式去學習。其實,我們的目標函式是一個對稱的(symmetric)函式,也就是不僅要算 p1, z2 的相似度,還要計算 p2=h(z2), z1 的相似度。
主要技術
- collapsing:
- 既然 loss function 只想讓所有相似圖片彼此接近,那麼就把所有人對映到一起好了()
- 解決方案:設計不對稱的 branch、訓練負樣本彼此遠離、stop-gradient 等。
- stop-gradient:
- 神秘的 MLP 層 h :
- 作者發現,如果不新增 h,效能很差;如果 h 的引數無法學習,模型難以收斂。這個 MLP 層實際上是在 預測資料增強分佈上的數學期望,從而試圖矯正由資料增強帶來的隨機性而導致的誤差。