1. 程式人生 > 實用技巧 >Contrastive Self-Supervised Learning 的對比學習框架和設計新方法

Contrastive Self-Supervised Learning 的對比學習框架和設計新方法

https://towardsdatascience.com/a-framework-for-contrastive-self-supervised-learning-and-designing-a-new-approach-3caab5d29619

近來,一系列“新穎”的自監督學習領域演算法取得了不錯的成果,如:AMDIM[2],CPC[3],Moco[5],SimCLR[4],BYOL[6]等。YADIM[1]設計了一個框架來表達對比性自我監督學習方法,受該框架啟發,本文從4個方面了分析近來的對比自監督演算法:CPC,AMDIM,MOCO,SimCLR和BYOL,並表明儘管這些方法在表面上看起來有所不同,但實際上它們彼此之間都是細微的調整。

在此部落格中,我們將:

  • 回顧自監督的學習;
  • 回顧對比學習;
  • 拆解對比自監督演算法框架;
  • 使用框架比較CPC,AMDIM,MOCO,SimCLR和BYOL。

實作
您可以找到我們在PyTorch Lightning中實現的本文中介紹的所有增強功能和方法,這將使您能夠在任意硬體上進行訓練,並使每種方法的並排比較更加容易。
AMDIM
BYOL
CPC V2 (only verified implementation outside of DeepMind to our knowledge).
Moco V2
SimCLR

1.Self-Supervised Learning

回想一下,在監督學習中,系統被賦予輸入(x)和標籤(y),

在這裡插入圖片描述
在自監督學習中,僅給定系統(x),而系統學習的不是(y),而是“學會根據輸入的其他部分來預測其輸入的一部分”
在這裡插入圖片描述
實際上,這種表達方式是多樣化的,可以創造性地“分解”輸入內容, 這些策略稱為 pretext tasks。研究人員嘗試了各種方法,這裡舉三個示例:(1)預測兩個斑塊的相對位置,(2)解決拼圖遊戲,(3)給影象著色。
在這裡插入圖片描述
儘管上述方法充滿創意,但實際上在實踐中效果並不理想。

然而,當使用對比學習的最新方法時,自監督學習已經開始明顯縮小在ImageNet上與監督學習之間的差距。
在這裡插入圖片描述

2 Contrastive Learning

大多數機器學習演算法背後的基本思想是,相似的示例應該組合在一起,並且與其他群集相距甚遠。

這個想法是最早進行對比學習的著作之一,即“區別學習相似性度量,並應用於人臉驗證”(Chopra等人於2004年提出)

下圖說明了這個主要思想:
在這裡插入圖片描述
對比學習通過使用三個關鍵要素來實現這一目標,即正樣本,錨點和負樣本表示。 要建立一個正對,我們需要兩個相似的例子,而對於負對,我們要使用一個不相似的例子。

在這裡插入圖片描述
但是在自監督學習中,我們不知道示例的標籤。因此,無法知道兩個影象是否相似。 假設存在大小為N的資料集中,每個影象都是其自己的類別,那麼就可以使用資料增強來生成這些三元組(the positive and negative pair)。