表徵與自監督學習

實例判別

實例判別是整個對比家族根部的前置任務。其想法幾乎荒謬地字面:把資料集中的每一張影像都當成它自己的一個類別。有一百萬張影像,你就有一個百萬類的分類問題,每個類別恰好只有一個成員,而網路必須學會把每張影像與其餘所有影像區分開。要做好這件事,它別無選擇,只能發掘出捕捉「影像之所以不同」的特徵——而那恰好正是我們想要的語意特徵。

天真地做是行不通的,因為對一百萬類做 softmax 貴得不可能,且每個類別只有一個樣本。原始的構想用一個由記憶庫支撐的非參數分類器解決:為每張影像存一個嵌入並緩慢更新,查詢時拿它與自己存下的嵌入(正樣本)對上一組取樣的其他嵌入(負樣本)比較,採用雜訊對比估計。增強提供正視圖,使一張影像的嵌入必須對裁切與色彩變化保持穩定,同時在各實例間仍保持獨一無二。

這就是 SimCLR、MoCo 及其餘方法生長出來的概念種子。MoCo 的佇列與動量編碼器是記憶庫的精煉,使存下的負樣本保持一致;SimCLR 則乾脆以批次內負樣本完全取代記憶庫。認清這條血脈便能明白:「對比學習」本質上就是被做得高效的實例判別。

「每張影像一類」的框定,正是增強不可或缺的原因——少了它,正樣本與存下的嵌入就完全相同,任務便退化成死記。

又稱
instance discrimination實例判別non-parametric classificationmemory bank