自监督学习新思路!基于蒸馏(distillation loss)的自监督学习算法
?
今天給大家介紹一篇 CVPR 2021 關(guān)于自監(jiān)督的文章叫 S2-BNN [1],來自 CMU,HKUST 和 IIAI。它探討了如果網(wǎng)絡(luò)規(guī)模在非常小的情況下(比如 efficient networks 或者 binary neural networks),什么樣的自監(jiān)督訓(xùn)練策略和方法是最好的。
本文發(fā)現(xiàn)基于小網(wǎng)絡(luò)的前提下,基于蒸餾(distillation learning)的自監(jiān)督學(xué)習(xí)得到的模型性能遠遠強于對比學(xué)習(xí)(contrastive learning),同時他們還發(fā)現(xiàn)同時使用蒸餾和對比學(xué)習(xí)效果反而不如單獨使用蒸餾損失,這也是一個非常有意思的發(fā)現(xiàn)。
論文標(biāo)題:
S2-BNN: Bridging the Gap Between Self-Supervised Real and 1-bit Neural Networks via Guided Distribution Calibration
論文鏈接:
https://arxiv.org/abs/2102.08946
代碼和模型:
https://github.com/szq0214/S2-BNN
本文的初衷是:如果網(wǎng)絡(luò)模型的規(guī)模比較小,那么它的表達能力也會非常有限,從而會造成這類網(wǎng)絡(luò)的預(yù)測概率變得不那么確信(confident),這時候作者就產(chǎn)生一個疑問:最常使用的對比學(xué)習(xí)在這種類型的網(wǎng)絡(luò)上面還能取得較好的結(jié)果嗎?
基于這個疑問:作者首先使用默認參數(shù)的 MoCo V2 作為自監(jiān)督學(xué)習(xí)基準算法(baseline),在使用 ReActNet 作為主干網(wǎng)的時候在 ImageNet 上得到 46.9%。由于該主干網(wǎng)是一個二值化網(wǎng)絡(luò),因此作者提出需要調(diào)整優(yōu)化器、學(xué)習(xí)率策略、數(shù)據(jù)增強策略來匹配二值網(wǎng)絡(luò)的特性。作者嘗試使用 Adam 和 SGD 兩種優(yōu)化器來訓(xùn)練主干網(wǎng),在線性評估(linear evaluation)階段使用不同學(xué)習(xí)率來尋找最佳的參數(shù)設(shè)計。
作者發(fā)現(xiàn)使用使用 SGD 訓(xùn)練的網(wǎng)絡(luò),在線性評估階段學(xué)習(xí)率比較大的時候性能比較高,學(xué)習(xí)率降低時精度嚴重下降,而 Adam 訓(xùn)練的網(wǎng)絡(luò)剛好相反,學(xué)習(xí)率降低時精度反而上升,同時 Adam 訓(xùn)練的網(wǎng)絡(luò)在取得最佳精度的設(shè)置時結(jié)果明顯優(yōu)于 SGD 的最佳結(jié)果。因此作者首先提出了一個基于 MoCo V2 的更強的 baseline+,性能為 52.5%。
接下來作者提出并比較了如下三種策略:
1. 單純使用對比學(xué)習(xí)(使用增強后的 MoCo V2 作為對比學(xué)習(xí)算法);
2. 對比學(xué)習(xí)損失加上知識蒸餾損失(文章使用 cross-entropy loss 作為蒸餾損失)訓(xùn)練模型;
3. 只使用知識蒸餾損失(cross-entropy loss)訓(xùn)練模型。
蒸餾損失函數(shù)表達:
作者這邊使用的是 soft 版本的 cross-entropy loss 作為蒸餾損失函數(shù),具體實現(xiàn)細節(jié)可以去看他們的代碼,損失函數(shù)表達形式如下:
如何獲取 teacher 呢?
這里作者討論了兩種方案來得到 teacher 網(wǎng)絡(luò),一種是在線(online)的方式同時訓(xùn)練 teacher 和 student,如下圖所示。另一種是離線(offline)的方式,即先使用自監(jiān)督方法訓(xùn)好 teacher,然后固定 teacher 的權(quán)重來蒸餾目標(biāo)網(wǎng)絡(luò),這也是本文中采用的策略。
為什么使用 offline 的策略呢?其主要好處是效率高,由于 teacher 只需要訓(xùn)練一次,后面可以重復(fù)使用,從而使 student 的訓(xùn)練更加高效。其次就是 teacher 在蒸餾過程中權(quán)重都是 freeze 的,產(chǎn)生的監(jiān)督信號也跟精確更穩(wěn)定,對于 student 的收斂也會有幫助。
下面是兩種策略的算法示意圖:
核心實驗結(jié)果:
作者在 ImageNets-1k 上進行了實驗,核心結(jié)果如下:
表中 ① ② ③ 分別對應(yīng)了三種訓(xùn)練策略,本文增強之后的結(jié)果比原始的 baseline 高了 5.6%,加上蒸餾損失(distillation loss)之后結(jié)果提升到 5.6%,去掉對比損失(contrastive loss)精度進一步提升了 5.5%,達到 61.5%。可以看到只使用知識蒸餾的策略相比其他兩個方案,對于性能的提升還是非常可觀的。
為什么同時使用蒸餾損失和對比損失效果反而沒有單獨使用蒸餾損失效果好?
?
直觀地說,蒸餾損失會迫使 student 去模仿 teacher 網(wǎng)絡(luò)的預(yù)測概率輸出,而對比學(xué)習(xí)傾向于從數(shù)據(jù)本身中發(fā)現(xiàn)潛在模式(patterns)。如下圖所示,在二值化網(wǎng)絡(luò)場景中,對比損失學(xué)習(xí)細粒度表示的能力相比蒸餾損失相對較弱,學(xué)到的表達在語義層面也更模糊。因此,由于優(yōu)化空間的差異而導(dǎo)致兩者結(jié)合使用可能并不是最佳的解決方案。
同時期一些基于蒸餾的自監(jiān)督學(xué)習(xí)方法:
最近基于知識蒸餾的自監(jiān)督方法有不少,包括跟本文同時期的 SEED [2](發(fā)表于 ICLR 2021, 兩者投稿相隔一個月,可以認為是同時期的工作)以及后續(xù)比較有名的 FAIR 的 DINO [3] 等等, SEED 基本上跟這篇文章的方法是類似的,只是在 student 的選取上一個選擇的是小規(guī)模網(wǎng)絡(luò),本文選擇的是 efficient 的二值化網(wǎng)絡(luò),但是本身訓(xùn)練方法上沒有大的差別。DINO ?跟他們兩者的主要區(qū)別在于 DINO 的 teacher 的權(quán)重在訓(xùn)練過程是不固定的。
?
更多分析和消融實驗請閱讀論文原文。
參考文獻
[1] Zhiqiang Shen, Zechun Liu, Jie Qin, Lei Huang, Kwang-Ting Cheng, and Marios Savvides. "S2-bnn: Bridging the gap between self-supervised real and 1-bit neural networks via guided distribution calibration." In?Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pp. 2165-2174. 2021.
[2] Zhiyuan Fang, Jianfeng Wang, Lijuan Wang, Lei Zhang, Yezhou Yang, and Zicheng Liu. "Seed: Self-supervised distillation for visual representation."?arXiv preprint arXiv:2101.04731?(2021).
[3] Mathilde Caron, Hugo Touvron, Ishan Misra, Hervé Jégou, Julien Mairal, Piotr Bojanowski, and Armand Joulin. "Emerging properties in self-supervised vision transformers."?arXiv preprint arXiv:2104.14294?(2021).
特別鳴謝
感謝 TCCI 天橋腦科學(xué)研究院對于 PaperWeekly 的支持。TCCI 關(guān)注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)術(shù)熱點剖析、科研心得或競賽經(jīng)驗講解等。我們的目的只有一個,讓知識真正流動起來。
?????稿件基本要求:
? 文章確系個人原創(chuàng)作品,未曾在公開渠道發(fā)表,如為其他平臺已發(fā)表或待發(fā)表的文章,請明確標(biāo)注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發(fā)送,要求圖片清晰,無版權(quán)問題
? PaperWeekly 尊重原作者署名權(quán),并將為每篇被采納的原創(chuàng)首發(fā)稿件,提供業(yè)內(nèi)具有競爭力稿酬,具體依據(jù)文章閱讀量和文章質(zhì)量階梯制結(jié)算
?????投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯(lián)系方式(微信),以便我們在稿件選用的第一時間聯(lián)系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
????
現(xiàn)在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關(guān)注」訂閱我們的專欄吧
·
總結(jié)
以上是生活随笔為你收集整理的自监督学习新思路!基于蒸馏(distillation loss)的自监督学习算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京啥地方可以买到芸豆馅的烧饼呢?
- 下一篇: 最新综述:用于文本分类的数据增强方法