Contrastive Learning, MoCo 對比學習 2021-05-09

深度神經網絡有著強大的表征能力
一張輸入圖片經過層層變換表達為一個特征向量
如果是監(jiān)督學習级野,特征的預測結果可以和標簽比對作為損失函數(shù);那如果是無監(jiān)督學習粹胯,沒有l(wèi)abel,損失函數(shù)該如何構建蓖柔?該如何判斷一個好的表征?


學習不同分類的特征

Contrastive Learning給出的答案很簡單风纠,同類圖像最后得到的特征向量應該在特征空間是相似的,而不同類之間應該盡可能的遠况鸣,這就是對比學習。但是沒有l(wèi)abel竹观,還是不知道哪些類別是同一個镐捧,解決方法就是潜索, 每個實例當作同一類,用數(shù)據(jù)增廣創(chuàng)造出該類別的其他實例懂酱。

contrastive learning基本思想可以被理解為一個查字典的過程竹习,輸入是query,用于對比的是key玩焰, 但是這個字典的大小限制于用于訓練的GPU內存由驹,那么對于圖象這樣的高維數(shù)據(jù),如果字典不夠大昔园,用于對比的數(shù)據(jù)不夠多,可能就達不到訓練效果并炮。

左邊的是原版的對比學習

然后就可以使用Softmax得到兩張圖片相似的概率默刚,
然后再轉化為對數(shù)似然代價函數(shù)。溫度系數(shù)設置 為0.07逃魄。


來源博客https://amitness.com/2020/03/illustrated-simclr/

Loss 是一個關于q和k的函數(shù)荤西,這樣,原圖和變形之后的圖片的特征相似度越高伍俘,不同的圖片特征相似度越低邪锌, 整體的loss就越低, 就越接近我們的理想模型癌瘾。

MoCo作者認為觅丰,字典一要大,二key之間應該保持一致性妨退。但是用圖二左端對端的方法妇萄,字典大小限制于顯存。
MoCo用于解決字典大小限制的方法咬荷,來源于下面這篇論文冠句。


https://arxiv.org/abs/1805.01978 通過非參數(shù)化實例判別進行非監(jiān)督的特征學習

memory bank, 儲存的是所有key的編碼,初始值是隨機歸一化的幸乒,不存在梯度回傳懦底,所以這個空間不受限于GPU的內存。每次產生Loss的時候只要在這個空間采樣一部分就好了罕扎,memory bank的編碼在每次經過查詢后聚唐, 得到的q的值才會更新到相應的k上面,所以存儲的編碼實際上來自該epoch 的每個step(一次epoch訓練所有數(shù)據(jù)壳影,每個step迭代一次拱层,訓練一個batch)。

這個方法使得用來對比的負樣本可以足夠多宴咧,但是又出現(xiàn)了新的問題:因為 memory bank中的 k更新得很慢根灯,產生k的encoder來自于不同的step,這樣就打破了k之間的一致性。

中memorybank不受字典限制烙肺,但是編碼k的參數(shù)是不統(tǒng)一的纳猪,而右邊MoCo沒有選擇更新k,而是更新編碼k的參數(shù)桃笙,這樣出來的 k就是來自同一組參數(shù)氏堤。

那可能比較的想法是,直接把最新的q的encoder直接作為k的encoder搏明, 而k 這一路不更新鼠锈。MoCo中做過這樣的實驗,也就是這個式子m=0的情況星著,但是發(fā)現(xiàn)不能收斂购笆。作者給出的猜想是因為encoder的迭代更新很快,那么同樣的 隊列中的k又會是產生于不同參數(shù)虚循,遭遇和memory bank一樣的問題同欠, 雖然每一組k 的編碼參數(shù)是一致的,組和組之間卻相差太大横缔。但是用一個比較大的慣性參數(shù)就能比較好的解決這個問題铺遂。

不同m取值的實驗

MoCo的做法是用了儲存key特征用的是先進先出的隊列結構,把兩個encoder的參數(shù)用 0<momentum <1控制更新茎刚。
K代表負樣本的數(shù)量襟锐, 端到端的方法竖瘾,K是受限制的米者, 而Moco和memorybank通過增加K提升表現(xiàn) MoCo因為保證了q和k之間的一致性,表現(xiàn)更好

在具體實現(xiàn)的方案上西土,MoCo使用了shuffling BN泉沾,因為BN會打破minibatch里樣本的獨立性捞蚂,可以參考我的另一篇關于NFNet的博客。

總結一下跷究,端對端方法字典大小受限于顯存姓迅,memory bank 方法將 k 存儲起來,碰到相應的q更新一次俊马,字典大小不受限制丁存,但是key之間是不一致的。MoCo用緩慢更新 k的編碼器的方式 保證了隊列中k 的一致性柴我。

MoCoV2

https://arxiv.org/abs/2003.04297

用兩層MLP檢測頭代替一層全連接解寝。
使用模糊圖像增廣。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末艘儒,一起剝皮案震驚了整個濱河市聋伦,隨后出現(xiàn)的幾起案子夫偶,更是在濱河造成了極大的恐慌,老刑警劉巖觉增,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兵拢,死亡現(xiàn)場離奇詭異,居然都是意外死亡逾礁,警方通過查閱死者的電腦和手機说铃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嘹履,“玉大人腻扇,你說我怎么就攤上這事≈采樱” “怎么了衙解?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長焰枢。 經常有香客問我,道長舌剂,這世上最難降的妖魔是什么济锄? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮霍转,結果婚禮上荐绝,老公的妹妹穿的比我還像新娘。我一直安慰自己避消,他們只是感情好低滩,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著岩喷,像睡著了一般恕沫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纱意,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天婶溯,我揣著相機與錄音,去河邊找鬼偷霉。 笑死迄委,一個胖子當著我的面吹牛,可吹牛的內容都是我干的类少。 我是一名探鬼主播叙身,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼硫狞!你這毒婦竟也來了信轿?” 一聲冷哼從身側響起晃痴,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎虏两,沒想到半個月后愧旦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡定罢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年笤虫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祖凫。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡琼蚯,死狀恐怖,靈堂內的尸體忽然破棺而出惠况,到底是詐尸還是另有隱情遭庶,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布稠屠,位于F島的核電站峦睡,受9級特大地震影響,放射性物質發(fā)生泄漏权埠。R本人自食惡果不足惜榨了,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望攘蔽。 院中可真熱鬧龙屉,春花似錦、人聲如沸满俗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唆垃。三九已至五芝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間降盹,已是汗流浹背与柑。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蓄坏,地道東北人价捧。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像涡戳,于是被迫代替她去往敵國和親结蟋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內容