對(duì)比學(xué)習(xí)發(fā)展歷程綜述 p3 自用筆記
一種不使用負(fù)樣本的對(duì)比學(xué)習(xí)手段:
BYOL:
Bootstrap Your Own Latent A New Approach to Self-Supervised Learning
摘要:在對(duì)比學(xué)習(xí)中,選擇正負(fù)樣本其實(shí)是一個(gè)基本的思路:那就是讓互為正樣本的物體的特征盡可能相似,互為負(fù)樣本的特征盡可能拉遠(yuǎn)。若是不去定義其中的負(fù)樣本,不用負(fù)樣本對(duì)訓(xùn)練加以限制,只將相似的輸入 通過(guò)網(wǎng)絡(luò)后的輸出拉近,那么這個(gè)網(wǎng)絡(luò)可以把這個(gè)問(wèn)題簡(jiǎn)化成“讓所有的輸入的輸出都相等”,模型會(huì)陷入trivial solution中平凡解,那這樣也是達(dá)到了“拉近相似樣本的距離”,不過(guò)顯然這樣是達(dá)不到我們的目的的,這樣的模型無(wú)法區(qū)分不同類輸入間的差異,我們也稱該現(xiàn)象為model collapse。?

這里走一下前向過(guò)程:
????a. 將minibtach里的數(shù)據(jù)通過(guò)一次數(shù)據(jù)增強(qiáng),得到v和v';
????b. 分別通過(guò)Encoder f_θ?和f_ξ?得到y(tǒng)_0,y'_ξ 兩個(gè)特征,這里的f_θ的隨網(wǎng)絡(luò)更新,f_ξ是使用了動(dòng)量編碼器move average的方式隨f_θ更新;
????c. 將y_0,y'_ξ 兩個(gè)特征經(jīng)過(guò)投射層Projection head(MLP)g_θ和g_ξ 得到z_0和z_ξ,這里g同樣使用了動(dòng)量更新的操作。
????d. 使用q_θ再做一次MLP,去“預(yù)測(cè)”得到的q_θ(z_θ) 去和下面的z_ξ盡可能地一致,去計(jì)算MSE loss,這里下面的網(wǎng)絡(luò)類似于一個(gè)Key,并不進(jìn)行梯度的回傳(sg - stop gradient)。
總的來(lái)看類似于自己的一個(gè)視角的特征去預(yù)測(cè)自己另一個(gè)視角的特征,本文作者并沒(méi)有對(duì)該idea work的可行性進(jìn)行十分詳盡的討論,所有有后續(xù)的工作。
后續(xù)工作:
有人在復(fù)現(xiàn)的時(shí)候發(fā)現(xiàn),將BYOL中的MLP層的BN層取消后,模型就collapse了,無(wú)法收斂,由此發(fā)博客,提出自己的想法:Batch Normalization相當(dāng)于對(duì)于一個(gè)batch里的所有數(shù)據(jù)算了均值和方差,那么你在做每一個(gè)樣本的學(xué)習(xí)時(shí),其實(shí)是獲取到到了這個(gè)batch里的其他特征的分布信息的,是存在信息泄露的。該作者認(rèn)為BN使得BYOL存在一個(gè)隱式的負(fù)樣本——該batch里面的其他樣本的“均值”,類似于SwAV的聚類中心。


但作者緊接著又做了很多消融實(shí)驗(yàn)作為回應(yīng),證明了BN并不對(duì)該訓(xùn)練過(guò)程具有決定性意義,并和博客作者達(dá)成一致認(rèn)同,BN的作用主要還是幫助模型穩(wěn)定訓(xùn)練,提高訓(xùn)練過(guò)程中的穩(wěn)定性,從而防止模型坍塌,如果模型能初始化的比較好,那么用不用BN關(guān)系也不大。
SimSiam
Exploring Simple Siamese Representation Learning? ? - 2020
對(duì)對(duì)比學(xué)習(xí)本質(zhì)進(jìn)行研究后,提出對(duì)比學(xué)習(xí)模型的最基本的點(diǎn),將整體模型化繁為簡(jiǎn),提出對(duì)比學(xué)習(xí)模型“不需要負(fù)樣本”,“不要要大batchsize”,“不需要?jiǎng)恿烤幋a器”,也可以訓(xùn)練起來(lái)并且得到好的結(jié)果。文章對(duì)上述三點(diǎn)的消融實(shí)驗(yàn)值得細(xì)看。

本文將不會(huì)坍塌的愿意歸因于Stop gradient操作,將這樣的對(duì)比學(xué)習(xí)類比于EM算法。“因?yàn)橛辛薙G操作后,這一套訓(xùn)練流程被人為分成了兩個(gè)子問(wèn)題,模型的更新也是在交替進(jìn)行,也可以想象成一個(gè)K-means的工作?”