自監督與表徵學習
MoCo(動量對比)
MoCo(動量對比,Momentum Contrast)是一種對比方法,建立在一個巧妙的想法上:如果改成保留一份過往負樣本的滾動記憶,你就不需要靠超大批次來取得大量負樣本。它把對比學習構造成「查字典」:來自某視角的查詢(query)嵌入,應與其唯一的正鍵(key,同一張影像的另一視角)相符,同時有別於存在佇列中的一大堆負鍵。佇列保存了許多先前批次的嵌入,因此有效負樣本數可達數萬,而實際批次仍然很小、對記憶體友善。
微妙的問題在於一致性:如果產生佇列中舊鍵的那個編碼器後來已經大幅改變,查詢與這些過時的鍵就不再可比。MoCo 用一個動量編碼器來解決。系統有兩個網路:一個查詢編碼器,照常以反向傳播更新;以及一個鍵編碼器,其權重是查詢編碼器權重的指數移動平均,依 key = m·key + (1-m)·query 更新,動量很大,例如 m = 0.999。這讓鍵編碼器緩慢而平滑地演化,使得幾個批次前產生的鍵仍保持足夠一致,可供比較。
MoCo 把負樣本數量與批次大小解耦,這是它相對於 SimCLR 最主要的實務優勢。MoCo v2 引入了 SimCLR 的技巧(MLP 投影頭與包含模糊在內的更強擴增)而獲得大幅提升,MoCo v3 則把這套方法調整為能穩定訓練視覺轉換器。動量編碼器的想法也以「不含負樣本」的形式再度出現,成為 BYOL 中的目標網路與 DINO 中的教師網路,使它成為自監督學習中最具影響力的構件之一。
又稱