<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          淺聊對(duì)比學(xué)習(xí)(Contrastive Learning)

          共 8518字,需瀏覽 18分鐘

           ·

          2022-07-31 02:42

          點(diǎn)擊上方視學(xué)算法”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          作者丨parasol@知乎 (已授權(quán))
          來源丨h(huán)ttps://zhuanlan.zhihu.com/p/521614413
          編輯丨極市平臺(tái)

          導(dǎo)讀

           

          本文通過解讀對(duì)比學(xué)習(xí)的經(jīng)典論文和綜述,介紹對(duì)比學(xué)習(xí)的概念,主流方法和優(yōu)勢(shì)。對(duì)于不同方法的算法設(shè)計(jì)和實(shí)驗(yàn)結(jié)果,作者提供了他的深入思考。 

          什么是對(duì)比學(xué)習(xí)?

          Metrics learning + self-supervised learning

          對(duì)比學(xué)習(xí)在解決什么問題?

          • 如何學(xué)習(xí)representation

          • 解決數(shù)據(jù)稀疏的問題

          • 如何更好的利用沒有l(wèi)abel的數(shù)據(jù)

            • 未打標(biāo)的數(shù)據(jù)遠(yuǎn)遠(yuǎn)多于打標(biāo)的數(shù)據(jù),不用簡(jiǎn)直太浪費(fèi)了,但是要打標(biāo)又是一個(gè)耗時(shí)耗力耗錢的事兒
          • 有監(jiān)督學(xué)習(xí)的缺點(diǎn):

            • 泛化能力
            • Spurious Correlations偽相關(guān) (https://www.zhihu.com/question/409100594)
            • Adversarial Attacks對(duì)抗攻擊 (https://zhuanlan.zhihu.com/p/104532285)

          為什么現(xiàn)有的方法解決不了這個(gè)問題?

          • 有監(jiān)督學(xué)習(xí)天然所帶來的問題:泛化能力、過擬合、對(duì)抗攻擊等等
          • 有監(jiān)督學(xué)習(xí)本身就無法使用無標(biāo)簽的數(shù)據(jù)

          現(xiàn)有的對(duì)比學(xué)習(xí)方法

          Noise-contrastive estimation: A new estimation principle for unnormalized statistical models

          論文鏈接:http://proceedings.mlr.press/v9/gutmann10a/gutmann10a.pdf
          論文講解(這篇論文的證明很不錯(cuò),很值得學(xué)習(xí)):
          • 知乎:https://zhuanlan.zhihu.com/p/58369131
          • CSDN:https://blog.csdn.net/littlely_ll/article/details/79252064
          One Sentence Summary
          給現(xiàn)有的樣本加上噪聲,作為負(fù)樣本,模型對(duì)原本真實(shí)的樣本和新增的負(fù)樣本進(jìn)行區(qū)分,從而將softmax這種低效的計(jì)算轉(zhuǎn)化成二分類的logloss,計(jì)算效率更高,下面公式里的 代表真實(shí)的樣本, 代表加了noise后的樣本。

          但是這里會(huì)出現(xiàn)一個(gè)問題,如果我們的noise分布選的不好,效果可能并不一定會(huì)好,所以在這篇paper里作者也提到了在增加noise的時(shí)候,盡量和現(xiàn)有的數(shù)據(jù)分布相似,這樣能最大程度上提高訓(xùn)練的效果。

          Intuitively, the noise distribution should be close to the data distribution, because otherwise, the classification problem might be too easy and would not require the system to learn much about the structure of the data. As a consequence, one could choose a noise distribution by first estimating a preliminary model of the data, and then use this preliminary model as the noise distribution.

          這個(gè)方法在推薦里的應(yīng)用,個(gè)人觀點(diǎn)是可以在召回里來嘗試,畢竟現(xiàn)在的召回面臨著很大的selection bias問題(有朋友在召回里嘗試過,效果一般,只能說明老paper時(shí)間比較久了,已經(jīng)被現(xiàn)在的SOTA beat掉了,不過這篇文章的idea很有意思,數(shù)學(xué)證明也很不錯(cuò),可以學(xué)習(xí)下)

          Representation Learning with Contrastive Predictive Coding

          論文鏈接:https://arxiv.org/pdf/1807.03748.pdf
          論文講解:https://zhuanlan.zhihu.com/p/317711322
          One Sentence Summary
          提出CPC框架,將representation的學(xué)習(xí)從一個(gè)生成模型,轉(zhuǎn)換成了分類模型,用于下游的其他任務(wù)。文章優(yōu)化的目標(biāo)從最大化 預(yù)測(cè) 的概率 變成優(yōu)化最大化 之間的互信息 ,通過最大化互信息,可以抽取出輸入之間的一些共性的潛變量。
          由于沒有辦法獲得到 的聯(lián)合概率,因此文章通過建模兩種樣本的密度比的方式來繞過聯(lián)合概率(兩種樣本:真實(shí)樣本和采樣出來的負(fù)樣本),其中 表示 的預(yù)測(cè)和未來 的相似程度, 是將 轉(zhuǎn)換到 空間,然后用內(nèi)積來表示相似程度,文章也證明了
          f_k 正比于密度比的證明
          本文訓(xùn)練的loss
          • 從而將一個(gè)生成模型 轉(zhuǎn)變成了分類模型

          • 訓(xùn)練出來的 可以用于下游的任務(wù):比如分類任務(wù)等等

          • 文章比較有意思的點(diǎn):證明了互信息的下界和總樣本數(shù)是有關(guān)的,N越大,互信息越大

          Learning Deep Representations by Mutual Information Estimation and Maximization

          論文鏈接:https://arxiv.org/pdf/1808.06670.pdf
          論文講解傳送門:https://zhuanlan.zhihu.com/p/277660074
          One Sentence Summary
          加入了更細(xì)致的local feature與output的互信息,加上了先驗(yàn),讓先驗(yàn)服從一定的分布,從而能更好的具有編碼空間
          我對(duì)這一點(diǎn)有點(diǎn)concern,什么樣的編碼空間是 更好的空間呢?這個(gè)先驗(yàn)也只能去拍,怎么去拍,只能不斷的去嘗試嗎,是不是可以學(xué)成一個(gè)動(dòng)態(tài)的空間,如果我們的數(shù)據(jù)是多峰的,可能一個(gè)分布就不太能擬合,混合高斯分布會(huì)不會(huì)更優(yōu)?感覺都是可以改進(jìn)的方向)
          Global
          local
          主要思想和InfoNCE差不多,多了local/prior matching,和具體場(chǎng)景有關(guān),感覺更像是在bagging loss
          • global MI/local MI: 這倆沒啥好介紹的,global是拿輸入和全局的feature去做MI的計(jì)算,local是拿中間的feature和全局的feature去做MI的計(jì)算(多的這部分local的loss,我個(gè)人的理解其實(shí)也是換了種方式來增大樣本數(shù)量,進(jìn)而帶來了收益)

          • Prior matching(adversarial autoencoders):拍了一個(gè)feature的先驗(yàn)分布,訓(xùn)練一個(gè)discriminator,然后讓這個(gè)discriminator和模型學(xué)到的全局feature進(jìn)行battle(對(duì)抗學(xué)習(xí)的min-max方式),編碼器的輸出更符合先驗(yàn)的分布,感覺這個(gè)就有點(diǎn)玄學(xué)了~

          Prior matching

          Loss:前面兩項(xiàng)分別對(duì)應(yīng)global和local,最后一項(xiàng)對(duì)應(yīng)Prior matching

          SimCLR-A Simple Framework for Contrasting Learning of Visual Representations

          論文鏈接:https://arxiv.org/abs/2002.05709
          One Sentence Summary
          提出了一個(gè)對(duì)比學(xué)習(xí)的框架,在今天看來框架不算特別新穎,但做了非常詳實(shí)的實(shí)驗(yàn),來驗(yàn)證對(duì)比學(xué)習(xí)到底能從哪些方面受益;個(gè)人感覺更像是一篇實(shí)驗(yàn)總結(jié)性paper:告訴你對(duì)比學(xué)習(xí)的一些特性,提供一些實(shí)操中的調(diào)參方向
          算法
          • loss就是softmax loss + temperature
          • 這里有個(gè)需要注意的點(diǎn),他在學(xué)到的 后面加了一個(gè) ,然后進(jìn)行l(wèi)oss的計(jì)算和梯度的回傳,最后真正在使用的時(shí)候用的只有 ,這里作者的猜想和實(shí)驗(yàn)確實(shí)很有意思,很值得借鑒。(雖然在SimCLRV2中這個(gè)結(jié)論有變的很不一樣了哈哈哈,后面會(huì)講到)
          • 框架圖:模型訓(xùn)練的時(shí)候 同時(shí)訓(xùn)練,但是訓(xùn)練完后,就把 扔掉了,只保留 ,這里是我覺得這篇論文最有意思的點(diǎn),一般的思路其實(shí)應(yīng)該是直接用 的輸出去計(jì)算對(duì)比學(xué)習(xí)的loss~
          框架圖
          算法步驟
          • 代表data augmentation方式的集合:比如旋轉(zhuǎn),灰度,裁剪等等
          • batch_size = N,對(duì)每個(gè)batch內(nèi)的每張圖片,隨機(jī)從 中選擇兩種data augmentation,得到兩張圖片,這兩張圖片就是一個(gè)正樣本對(duì),總共可以生成2N個(gè)樣本,每個(gè)樣本有一個(gè)樣本和自己是正樣本對(duì),剩下的2N-2都是負(fù)樣本,這里是用了一個(gè)softmax+temperature的loss
          SimCLR算法
          實(shí)驗(yàn)
          實(shí)驗(yàn)圖太多就不貼了,想看detail的可以直接看我的「paper_reading記錄:https://bytedance.feishu.cn/docx/doxcn0hAWqSip1niZE2ZCpyO4yb」,只對(duì)個(gè)人認(rèn)為有意思的點(diǎn)說下
          • 實(shí)驗(yàn)證明對(duì)比學(xué)習(xí)可以從更大的batch size和更長(zhǎng)的訓(xùn)練時(shí)間上受益

            • 作者自己在這里也說:效果的提升是來自于batch_size越大,訓(xùn)練時(shí)間越久,見過的負(fù)樣本越多,所以效果越好,這里其實(shí)和batch_softmax也有異曲同工之妙,在推薦里其實(shí)也有類似的經(jīng)驗(yàn)~
          • 驗(yàn)證在對(duì)比學(xué)習(xí)loss計(jì)算之前加入一個(gè)非線性的映射層會(huì)提高效果

            • 作者認(rèn)為是g被訓(xùn)練的能夠自動(dòng)去掉data transformation的噪音,為了驗(yàn)證這個(gè)猜想,作者做了這個(gè)實(shí)驗(yàn):用h和g(h)來區(qū)分做了哪種data transformation,從下面第二張實(shí)驗(yàn)結(jié)果圖看出,h確實(shí)保留了data transformation的信息
          Furthermore, even when nonlinear projection is used, the layer before the projection head, h, is still much better than the layer after, z = g(h), which shows that the hidden layer before the projection head is a better representation than the layer after
          • 其他貢獻(xiàn)

              • 實(shí)驗(yàn)證明「組合不同的data augumentation」的重要性

              • 實(shí)驗(yàn)證明對(duì)比學(xué)習(xí)需要比有監(jiān)督學(xué)習(xí)需要更強(qiáng)的data agumentation

              • 實(shí)驗(yàn)證明無監(jiān)督對(duì)比學(xué)習(xí)會(huì)在更大的模型上受益

              • 實(shí)驗(yàn)證明了不同loss對(duì)效果的影響

          SimCLRV2-Big Self-Supervised Models are Strong Semi-Supervised Learners

          論文鏈接:https://arxiv.org/abs/2006.10029
          One Sentence Summary
          提出了一個(gè)基于對(duì)比學(xué)習(xí)半監(jiān)督學(xué)習(xí)框架,在SimCLR后面接了一個(gè)distillation模塊在做半監(jiān)督學(xué)習(xí),從而很好的提升了效果。(這篇paper很有意思的點(diǎn):用了self-distillation居然會(huì)比原始的模型效果更好,這一點(diǎn)在組內(nèi)做paper reading的時(shí)候,同事提出來了這個(gè)問題,后來調(diào)研了下,主要是說做self-distillation會(huì)讓teacher模型學(xué)到不同的視圖)
          算法
          分為三步:pre-training、fine-tuning、distillation(self-distillation)
          • Pretraining:用了SimCLR,然后用了更深的projection head,同時(shí)不是直接把projection head丟了,而是用projection head的1st layer,來做后面的fine tune。(這也太trick了吧)
          • Fine-tune:用SimCLR訓(xùn)練出來的網(wǎng)絡(luò),接下游的MLP,做classification任務(wù),進(jìn)行fine-tune
          • disitill:用訓(xùn)好的teacher network給無label的數(shù)據(jù)打上標(biāo)簽,作為ground truth,送給student network訓(xùn)練。這個(gè)地方作者也嘗試了加入有標(biāo)簽的(樣本+標(biāo)簽),發(fā)現(xiàn)差距不大,所以就沒有使用有監(jiān)督樣本的(樣本+標(biāo)簽)
          實(shí)驗(yàn)結(jié)果
          實(shí)驗(yàn)圖就不全貼了,想看detail的可以直接看我的「paper_reading記錄:https://bytedance.feishu.cn/docx/doxcn9P6oMZzuwZOrYAhYc5AUUe
          看一張放在論文首頁(yè)的圖吧(按照李沐大神的話說,放在首頁(yè)的圖一定是非常牛逼的圖!),確實(shí)可以看出只用1%的數(shù)據(jù)+標(biāo)簽,就能獲得到和有監(jiān)督學(xué)習(xí)用100%數(shù)據(jù)+標(biāo)簽的效果;用10%的數(shù)據(jù)+標(biāo)簽就已經(jīng)超過SOTA了,確實(shí)還是挺牛逼的
          • Distillation Using Unlabeled Data Improves Semi-Supervised Learning

            這個(gè)實(shí)驗(yàn)很有意思的點(diǎn)是,無論是self-distillation還是distill small model,效果都比teacher model效果好,這里的解釋可以看這里:

              • 知乎:https://zhuanlan.zhihu.com/p/347890400;

              • 原文:https://arxiv.org/pdf/2012.09816.pdf

                很有趣~主要在說:distill能讓student學(xué)到更多的視圖,從而提升了效果~

          • Bigger Models Are More Label-Efficient

          • Bigger/Deeper Projection Heads Improve Representation Learning

          Mutual Information Neural Estimation

          論文鏈接:https://arxiv.org/abs/1801.04062
          One Sentence Summary
          將互信息加入到loss function中,從理論上證明了MINE更flexible/scalable;減輕了GAN中的mode-dropping問題,同時(shí)提高了ALI的重建和推理效果。(這篇文章的理論推導(dǎo)很多,感興趣的建議看原paper或者Link)
          算法
          • 給定一個(gè)batch內(nèi)的數(shù)據(jù) ,其中 就是我們的訓(xùn)練集,batch_size = b
          • 然后從訓(xùn)練集中隨機(jī)sample b個(gè)z,作為負(fù)樣本
          • 計(jì)算loss,并回傳梯度
          實(shí)驗(yàn)
          實(shí)驗(yàn)圖就不全貼了,想看detail的可以直接看我的「paper_reading記錄:https://bytedance.feishu.cn/docx/doxcnMHzZBeWFV4HZV6NAU7W73o
          • 捕獲非線性的依賴的能力
          接下來看下怎么將互信息運(yùn)用到GAN和Bi-GAN上。
          • GAN上的應(yīng)用:
          • Bi-GAN上的應(yīng)用:

          對(duì)比學(xué)習(xí)在推薦里的應(yīng)用場(chǎng)景

          在召回階段:
          • 負(fù)采樣邏輯優(yōu)化:現(xiàn)在很多推薦系統(tǒng)里的負(fù)采樣都是隨機(jī)采樣的,雖然隨機(jī)采樣已經(jīng)能拿到不錯(cuò)的效果了,但是一定還有優(yōu)化空間,比如InfoNce文章中提到的增大負(fù)采樣的個(gè)數(shù)能夠提升互信息的下界,同時(shí)在工業(yè)界的best practice中,往往也能發(fā)現(xiàn)batch_softmax的效果也很不錯(cuò)
          • i2i召回:基于item2item召回的時(shí)候,往往是基于item1的embedding去召回與item1相似的items,這時(shí)候embedding的相似性就顯得尤為重要,但是這里有個(gè)問題,如何選擇構(gòu)造與item1相似的item作為正樣本?(用戶點(diǎn)擊過的作為item作為相似的樣本也不合理,畢竟用戶的興趣是多維的,點(diǎn)過的每個(gè)樣本不可能都屬于同一個(gè)類別或者相似的,雖然通過推薦的大量數(shù)據(jù),協(xié)同過濾可能可以在全局找到一個(gè)還不錯(cuò)的結(jié)果,但是直接拿用戶序列作為正樣本來做一定是不合理的)

          一點(diǎn)小思考

          對(duì)比學(xué)習(xí)的優(yōu)勢(shì):
          • 可以比較好的單獨(dú)優(yōu)化representation,和下游任務(wù)無關(guān),能夠最大程度上的保留meta-information,如果一旦做有監(jiān)督的學(xué)習(xí),那抽取出來的信息就是和當(dāng)前目標(biāo)相關(guān)的,不排除可能學(xué)到一些噪音特征
          • 在做data augumentation,模型見到了更多的樣本,記憶的東西更全,效果好也是預(yù)期之中的
          • 去噪

          Reference

          1. Gutmann M, Hyv?rinen A. Noise-contrastive estimation: A new estimation principle for unnormalized statistical models[C]//Proceedings of the thirteenth international conference on artificial intelligence and statistics. JMLR Workshop and Conference Proceedings, 2010: 297-304.
          2. Oord A, Li Y, Vinyals O. Representation learning with contrastive predictive coding[J]. arXiv preprint arXiv:1807.03748, 2018.
          3. Hjelm R D, Fedorov A, Lavoie-Marchildon S, et al. Learning deep representations by mutual information estimation and maximization[J]. arXiv preprint arXiv:1808.06670, 2018.
          4. Hjelm R D, Fedorov A, Lavoie-Marchildon S, et al. Learning deep representations by mutual information estimation and maximization[J]. arXiv preprint arXiv:1808.06670, 2018.
          5. GitHub - asheeshcric/awesome-contrastive-self-supervised-learning: A comprehensive list of awesome contrastive self-supervised learning papers. (https://github.com/asheeshcric/awesome-contrastive-self-supervised-learning)
          6. 張俊林:對(duì)比學(xué)習(xí)(Contrastive Learning):研究進(jìn)展精要 (https://zhuanlan.zhihu.com/p/367290573)
          7. 極市平臺(tái):深度學(xué)習(xí)三大謎團(tuán):集成、知識(shí)蒸餾和自蒸餾:https://zhuanlan.zhihu.com/p/347890400
          8. Chen T, Kornblith S, Norouzi M, et al. A simple framework for contrastive learning of visual representations[C]//International conference on machine learning. PMLR, 2020: 1597-1607.
          9. Chen T, Kornblith S, Swersky K, et al. Big self-supervised models are strong semi-supervised learners[J]. Advances in neural information processing systems, 2020, 33: 22243-22255.
          10. Belghazi M I, Baratin A, Rajeshwar S, et al. Mutual information neural estimation[C]//International conference on machine learning. PMLR, 2018: 531-540.
          11. Allen-Zhu Z, Li Y. Towards understanding ensemble, knowledge distillation and self-distillation in deep learning[J]. arXiv preprint arXiv:2012.09816, 2020.


          點(diǎn)個(gè)在看 paper不斷!

          瀏覽 147
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线无码中文字幕 | 国产精品免费观看视频 | 美臀av | 成人综合婷婷国产精品久久 | 高潮毛片又色又爽免费 |