亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        深度對(duì)比學(xué)習(xí)綜述

        2023-01-16 07:35:46張重生李岐龍鄧斌權(quán)陳承功
        自動(dòng)化學(xué)報(bào) 2023年1期
        關(guān)鍵詞:分支架構(gòu)損失

        張重生 陳 杰 李岐龍 鄧斌權(quán) 王 杰 陳承功

        近年來,以深度學(xué)習(xí)為代表的新一代人工智能技術(shù)取得了迅猛發(fā)展,并成功應(yīng)用于計(jì)算機(jī)視覺、智能語音等多個(gè)領(lǐng)域.然而,深度學(xué)習(xí)通常依賴于海量的標(biāo)注數(shù)據(jù)進(jìn)行模型訓(xùn)練,才能獲得較好的性能表現(xiàn).當(dāng)可用的標(biāo)注數(shù)據(jù)較少、而無標(biāo)注數(shù)據(jù)較多時(shí),如何提高深度學(xué)習(xí)的特征表達(dá)能力是亟需解決的重要現(xiàn)實(shí)需求.自監(jiān)督學(xué)習(xí)[1]是解決該問題的有效途徑之一,能夠利用大量的無標(biāo)注數(shù)據(jù)進(jìn)行自我監(jiān)督訓(xùn)練,得到更好的特征提取模型.

        早期的對(duì)比學(xué)習(xí)起源于自監(jiān)督學(xué)習(xí),通過設(shè)置實(shí)例判別代理任務(wù)完成自監(jiān)督學(xué)習(xí)的目標(biāo).具體而言,對(duì)比學(xué)習(xí)首先對(duì)同一幅圖像進(jìn)行不同的圖像增廣,然后衡量得到的圖像對(duì)特征之間的相似性,旨在使同一幅圖像增廣后的圖像對(duì)特征之間的相似度增加,而不同圖像特征之間的相似度減小.隨著技術(shù)的發(fā)展,對(duì)比學(xué)習(xí)已經(jīng)擴(kuò)展到監(jiān)督和半監(jiān)督學(xué)習(xí)中,以進(jìn)一步利用標(biāo)注數(shù)據(jù)提升模型的特征表達(dá)能力.

        近年來,基于深度學(xué)習(xí)的對(duì)比學(xué)習(xí)技術(shù)取得了突飛猛進(jìn)的發(fā)展.典型的對(duì)比學(xué)習(xí)方法有SimCLR[2](Simple framework for contrastive learning of visual representations),MoCo[3](Momentum contrast),BYOL[4](Bootstrap your own latent),SwAV[5](Swapping assignments between multiple views of the same image),SimSiam[6](Simple siamese networks) 等算法.這些技術(shù)通常基于類孿生神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)架構(gòu),但訓(xùn)練過程中所用的圖像對(duì)為同一幅圖像分別增廣后得到的圖像對(duì) (正樣本對(duì)),或不同圖像分別增廣后構(gòu)成的圖像對(duì) (負(fù)樣本對(duì)).深度對(duì)比學(xué)習(xí)通過大量的正負(fù)樣本對(duì)間的比對(duì)計(jì)算,使得神經(jīng)網(wǎng)絡(luò)模型能夠?qū)?shù)據(jù)自動(dòng)提取到更好的特征表達(dá).CPC[7](Contrastive predictive poding) 是深度對(duì)比學(xué)習(xí)的奠基之作,該算法通過最大化序列數(shù)據(jù)的預(yù)測(cè)結(jié)果和真實(shí)結(jié)果之間的相似度 (一致性程度),優(yōu)化特征提取網(wǎng)絡(luò),并提出InfoNCE 損失,該損失如今已廣泛地應(yīng)用在對(duì)比學(xué)習(xí)研究中.Khosla 等[8]提出監(jiān)督對(duì)比學(xué)習(xí)損失(Supervised contrastive learning loss,SCL loss),將對(duì)比學(xué)習(xí)的思想擴(kuò)充到了監(jiān)督學(xué)習(xí)中,旨在利用有標(biāo)注的數(shù)據(jù)進(jìn)一步提升模型的特征表達(dá)能力.Chen 等[9]設(shè)計(jì)了半監(jiān)督對(duì)比學(xué)習(xí)算法,首先對(duì)所有數(shù)據(jù)進(jìn)行對(duì)比學(xué)習(xí)預(yù)訓(xùn)練,然后使用標(biāo)注數(shù)據(jù)將預(yù)訓(xùn)練模型的知識(shí)通過蒸餾學(xué)習(xí)的方法遷移到新的模型中.

        目前,很少有系統(tǒng)總結(jié)對(duì)比學(xué)習(xí)最新進(jìn)展的英文綜述論文[10-12],中文綜述論文更是極度缺乏.因此,學(xué)術(shù)界迫切需要對(duì)深度對(duì)比學(xué)習(xí)的最新文獻(xiàn)及進(jìn)展進(jìn)行全面系統(tǒng)的總結(jié)、歸納和評(píng)述,并分析存在的問題,預(yù)測(cè)未來發(fā)展趨勢(shì).本文聚焦視覺領(lǐng)域的深度對(duì)比學(xué)習(xí)技術(shù),系統(tǒng)梳理深度對(duì)比學(xué)習(xí)2018 年至今的技術(shù)演進(jìn),總結(jié)該方向代表性的算法和技術(shù).如圖1 所示,本文首先將深度對(duì)比學(xué)習(xí)的相關(guān)技術(shù)歸納為樣本對(duì)構(gòu)造方法層、圖像增廣層、網(wǎng)絡(luò)架構(gòu)層、損失函數(shù)層及應(yīng)用層5 大類型.然后,綜合歸納現(xiàn)有技術(shù)的特點(diǎn)及異同之處,并分析其性能表現(xiàn),指出尚未解決的共性問題及相關(guān)挑戰(zhàn),最后勾勒該領(lǐng)域的未來發(fā)展方向與趨勢(shì).

        圖1 對(duì)比學(xué)習(xí)方法歸類Fig.1 Taxonomy of contrastive learning methods

        本文的主要貢獻(xiàn)概括如下:

        1) 基于一種新的歸類方法,將現(xiàn)有的深度對(duì)比學(xué)習(xí)工作進(jìn)行了系統(tǒng)總結(jié);

        2) 比較分析了不同對(duì)比學(xué)習(xí)方法的區(qū)別和聯(lián)系,及其在基準(zhǔn)數(shù)據(jù)集上的性能表現(xiàn);

        3) 討論了當(dāng)前對(duì)比學(xué)習(xí)研究存在的挑戰(zhàn),展望了未來的研究方向.

        本文的剩余章節(jié)結(jié)構(gòu)安排如下:第1 節(jié)介紹對(duì)比學(xué)習(xí)的背景知識(shí).第2 節(jié)引入本文提出的歸類方法,并對(duì)每種類型的方法進(jìn)行詳細(xì)總結(jié).第3 節(jié)對(duì)現(xiàn)有的對(duì)比學(xué)習(xí)技術(shù)進(jìn)行整體分析,并比較性能表現(xiàn).第4 節(jié)探討對(duì)比學(xué)習(xí)當(dāng)前存在的挑戰(zhàn),及未來發(fā)展方向.最后是全文總結(jié).

        1 背景介紹

        1.1 對(duì)比學(xué)習(xí)思想

        對(duì)比學(xué)習(xí)的思想有兩個(gè)起源,一個(gè)是同類數(shù)據(jù)對(duì)比的思想[13],另一個(gè)是自監(jiān)督學(xué)習(xí)中的實(shí)例判別任務(wù)[14].文獻(xiàn)[13]最早提出了使用兩幅圖像進(jìn)行對(duì)比學(xué)習(xí)的思想,主要使用孿生神經(jīng)網(wǎng)絡(luò)[15]進(jìn)行訓(xùn)練,旨在拉近同類圖像的特征之間的距離、推遠(yuǎn)不同類圖像之間的距離,以獲得更好的特征提取模型.而自監(jiān)督學(xué)習(xí)中的實(shí)例判別任務(wù),將同一批次中的每個(gè)樣本視作一個(gè)獨(dú)立的類,故類別的數(shù)量與該批次的樣本數(shù)量相同.通過該設(shè)計(jì),將無監(jiān)督學(xué)習(xí)任務(wù)轉(zhuǎn)化為分類任務(wù) (實(shí)例判別任務(wù),尋找圖像集中與輸入圖像特征相似度最高的圖像).SimCLR[2]和MoCo[3]是最早結(jié)合上述兩個(gè)思想的方法,它們通過同一幅圖像分別增廣后的圖像對(duì)之間的特征比對(duì)計(jì)算,增強(qiáng)神經(jīng)網(wǎng)絡(luò)模型的特征提取能力,再應(yīng)用于下游任務(wù)中.

        1.2 對(duì)比學(xué)習(xí)定義

        對(duì)比學(xué)習(xí)的研究目前仍處于不斷發(fā)展的階段,尚無明確的定義.為了更清晰直觀的闡述對(duì)比學(xué)習(xí)問題,本文嘗試給出一個(gè)對(duì)比學(xué)習(xí)的公式化定義及常用網(wǎng)絡(luò)架構(gòu),如式(1)及圖2 所示.

        在式(1)中,xi表示數(shù)據(jù)集X={x1,x2,···,xn}中的一個(gè)樣本,z1(xi1) 是圖像xi先經(jīng)過圖像增強(qiáng)方法T1,再經(jīng)過圖2 中的分支1 (上部分支) 得到的特征,z2(xi2) 是同一幅圖像xi先經(jīng)過圖像增強(qiáng)方法T2,再經(jīng)過分支2 (下部分支) 得到的特征 (正樣本),z1(xj1),z2(xj2) 是另一幅圖像xj經(jīng)過增廣得到的特征(負(fù)樣本).s為兩個(gè)特征向量之間的相似度度量方法,默認(rèn)使用余弦相似度.該公式的目標(biāo)是最大化相同圖像增廣后的兩個(gè)樣本之間的相似度,同時(shí)最小化不同圖像經(jīng)過不同增廣后的特征之間的相似度及不同圖像經(jīng)過相同增廣后的特征之間的相似度.圖2 是對(duì)比學(xué)習(xí)常用的網(wǎng)絡(luò)架構(gòu),采用了本文所歸納的同步對(duì)稱網(wǎng)絡(luò)架構(gòu),后續(xù)章節(jié)將進(jìn)行詳述.

        圖2 常用的對(duì)比學(xué)習(xí)網(wǎng)絡(luò)架構(gòu)Fig.2 Commonly used contrastive learning network architecture

        1.3 對(duì)比學(xué)習(xí)與度量學(xué)習(xí)的關(guān)系

        對(duì)比學(xué)習(xí)與度量學(xué)習(xí)[16]之間有較高的關(guān)聯(lián)性.其相似之處在于學(xué)習(xí)目標(biāo)類似,二者都在優(yōu)化特征空間,使得數(shù)據(jù)在特征空間中類內(nèi)距離減小、類間距離增大.度量學(xué)習(xí)通常需要基于標(biāo)注數(shù)據(jù),而對(duì)比學(xué)習(xí)則不要求樣本必須有標(biāo)注,其目標(biāo)是使得同一幅圖像的不同增廣之后的圖像對(duì)在特征空間中靠近.

        兩者的不同之處在于:

        1) 訓(xùn)練數(shù)據(jù)構(gòu)建方式不同

        對(duì)一個(gè)數(shù)據(jù)集,度量學(xué)習(xí)通過標(biāo)簽信息篩選樣本對(duì),分別得到正樣本對(duì)和負(fù)樣本對(duì).而對(duì)比學(xué)習(xí)的正樣本對(duì)是通過同一幅圖像的兩個(gè)隨機(jī)增廣得到.圖像增廣操作是對(duì)比學(xué)習(xí)的關(guān)鍵技術(shù)之一,多樣、有效的圖像增廣方法能夠提高對(duì)比學(xué)習(xí)的訓(xùn)練效果[2].

        2) 網(wǎng)絡(luò)架構(gòu)不同

        對(duì)比學(xué)習(xí)通常需要在特征提取網(wǎng)絡(luò)之后增加小型的投影頭網(wǎng)絡(luò),將特征空間轉(zhuǎn)換到投影空間中進(jìn)行損失計(jì)算.訓(xùn)練結(jié)束后,將該小型投影頭去掉,僅保留特征提取網(wǎng)絡(luò),用于下游任務(wù).而在度量學(xué)習(xí)任務(wù)中,通常只有特征提取網(wǎng)絡(luò),通過設(shè)計(jì)度量損失函數(shù)優(yōu)化特征提取模型.

        3) 適用情況不同

        度量學(xué)習(xí)需要使用有標(biāo)注的數(shù)據(jù),適用于監(jiān)督學(xué)習(xí);而對(duì)比學(xué)習(xí)不要求數(shù)據(jù)有標(biāo)注,適用于無標(biāo)注的數(shù)據(jù)及有標(biāo)注或部分標(biāo)注的數(shù)據(jù),支持監(jiān)督、無監(jiān)督和半監(jiān)督學(xué)習(xí).

        1.4 對(duì)比學(xué)習(xí)與自監(jiān)督學(xué)習(xí)的關(guān)系

        初始的對(duì)比學(xué)習(xí)方法[2-3]是自監(jiān)督學(xué)習(xí)的一種,目標(biāo)是通過無標(biāo)注數(shù)據(jù)的自我監(jiān)督學(xué)習(xí),獲得良好的特征表達(dá).隨著技術(shù)的發(fā)展,對(duì)比學(xué)習(xí)研究已經(jīng)拓展到監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)中(如第1.3 節(jié)所述).

        對(duì)比學(xué)習(xí)與無監(jiān)督學(xué)習(xí)的關(guān)系.無監(jiān)督學(xué)習(xí)大體可分為生成式學(xué)習(xí)和對(duì)比式學(xué)習(xí).對(duì)比學(xué)習(xí)是實(shí)現(xiàn)無監(jiān)督學(xué)習(xí)的一種重要途徑,能夠?qū)W習(xí)到更好的特征表示.

        對(duì)比學(xué)習(xí)與監(jiān)督學(xué)習(xí)的關(guān)系.隨著對(duì)比學(xué)習(xí)技術(shù)的發(fā)展,在構(gòu)造對(duì)比學(xué)習(xí)所需的樣本對(duì)時(shí),若數(shù)據(jù)有標(biāo)注或部分標(biāo)注,則屬于同一類的圖像都可以用于構(gòu)造正樣本,而不再局限于同一幅圖像,這樣可以增加正樣本對(duì)的多樣性,有利于提取更好的特征表達(dá).另外,對(duì)比學(xué)習(xí)也可以作為監(jiān)督學(xué)習(xí)的前置,進(jìn)行模型預(yù)訓(xùn)練,以進(jìn)一步提高監(jiān)督學(xué)習(xí)的模型性能.

        1.5 常用數(shù)據(jù)集介紹

        本節(jié)所介紹的數(shù)據(jù)集總結(jié)如表1 所示:

        表1 對(duì)比學(xué)習(xí)常用數(shù)據(jù)集總結(jié)Table 1 Summary of common datasets

        ImageNet-1K[17]是對(duì)比學(xué)習(xí)方法最常用的數(shù)據(jù)集,該數(shù)據(jù)集是ImageNet 數(shù)據(jù)集的一個(gè)子集,包含1 000 個(gè)類別,訓(xùn)練集約128 萬幅彩色圖像.該數(shù)據(jù)集因其包含的圖像種類多、數(shù)量多以及樣本質(zhì)量高的特點(diǎn)常常被認(rèn)為是最有挑戰(zhàn)性的數(shù)據(jù)集之一.該數(shù)據(jù)集各類樣本數(shù)量分布相對(duì)均衡.

        Cifar10和Cifar100[18]是常見的應(yīng)用于圖像分類的數(shù)據(jù)集,Cifar10 包含10 個(gè)類別的6 萬幅彩色圖像,Cifar100 包含100 個(gè)類別的6 萬幅彩色圖像.Cifar10和Cifar100 的圖像尺寸均為 32×32 像素.

        常用于分類任務(wù)評(píng)估的數(shù)據(jù)集還有:Food101[19]包含101 個(gè)類別的食物,共10 萬幅圖像.Birdsnap[20]包含500 個(gè)類別的鳥的圖像,共4.7 萬幅訓(xùn)練集圖像.Sun397[21]包含397 個(gè)類別的場(chǎng)景圖像,共有近11 萬幅圖像.Cars[22]包含196 個(gè)類別的汽車圖像,共有1.6 萬幅圖像.Aircraft[23],包含102 個(gè)類別的飛行器圖像,共有約1 萬幅圖像.DTD[24],包含47個(gè)類別的紋理圖像,共有5 640 幅圖像.Pets[25],包含37 個(gè)類別的寵物圖像,共有3 680 幅訓(xùn)練集圖像.Caltech-101[26],包含101 個(gè)類別的圖像,共有9 144 幅圖像.Flowers[27],包含102 個(gè)類別的花卉圖像,共有7 169 幅圖像.

        VOC[28]數(shù)據(jù)集常用來評(píng)估目標(biāo)檢測(cè)和分割任務(wù),總共包含20 類圖像,共約1 萬幅圖像,包含13 000多個(gè)物體目標(biāo).

        COCO[29]數(shù)據(jù)集是一個(gè)可用于大規(guī)模目標(biāo)檢測(cè)、分割和關(guān)鍵點(diǎn)檢測(cè)的數(shù)據(jù)集,該數(shù)據(jù)集包含有80 個(gè)目標(biāo)類別、91 個(gè)物品類別,約33 萬幅彩色圖像組成.

        1.6 評(píng)價(jià)方法

        目前,衡量對(duì)比學(xué)習(xí)模型的效果最常用兩種評(píng)估方法是線性評(píng)估方法和微調(diào)(Finetune)評(píng)估方法.在進(jìn)行評(píng)估之前,將預(yù)訓(xùn)練好的模型作為下游任務(wù)的主干網(wǎng)絡(luò),然后,根據(jù)下游任務(wù)和數(shù)據(jù)集的要求,在主干網(wǎng)絡(luò)后加入對(duì)應(yīng)的任務(wù)頭網(wǎng)絡(luò),最后采用線性或微調(diào)方法進(jìn)行評(píng)估.

        線性評(píng)估方法.采用該方法評(píng)估主干網(wǎng)絡(luò)時(shí),需要凍結(jié)主干網(wǎng)絡(luò)參數(shù),只訓(xùn)練下游任務(wù)頭網(wǎng)絡(luò).然后采用下游任務(wù)數(shù)據(jù)集中的測(cè)試集對(duì)模型的能力進(jìn)行評(píng)估.

        微調(diào)評(píng)估方法.采用該方法評(píng)估主干網(wǎng)絡(luò)時(shí),采用下游任務(wù)的數(shù)據(jù)訓(xùn)練由主干網(wǎng)絡(luò)及任務(wù)頭組成的整體網(wǎng)絡(luò),然后同樣采用下游任務(wù)數(shù)據(jù)集的測(cè)試集評(píng)估模型.

        1.7 本文符號(hào)定義

        本文中所使用的數(shù)學(xué)符號(hào)定義說明如表2 所示:

        表2 本文所用符號(hào)總結(jié)Table 2 Summary of the symbols used in this paper

        2 對(duì)比學(xué)習(xí)研究現(xiàn)狀

        在本章內(nèi)容中,首先引入所提出的歸類方法,在此基礎(chǔ)上歸納總結(jié)國(guó)內(nèi)外對(duì)比學(xué)習(xí)研究成果.值得注意的是,對(duì)比學(xué)習(xí)亦深受我國(guó)學(xué)者的關(guān)注,很多優(yōu)秀的對(duì)比學(xué)習(xí)論文雖然發(fā)表在國(guó)外學(xué)術(shù)會(huì)議和刊物上,但作者為國(guó)內(nèi)學(xué)者.

        2.1 歸類方法

        本文提出一種新的歸類方法,以對(duì)最新的對(duì)比學(xué)習(xí)工作進(jìn)行系統(tǒng)歸納總結(jié).如圖1 所示,按照對(duì)比學(xué)習(xí)的整體流程,將現(xiàn)有方法劃分為樣本對(duì)構(gòu)造層、圖像增廣層、神經(jīng)網(wǎng)絡(luò)架構(gòu)層、損失函數(shù)層以及應(yīng)用層等類型.

        圖3 將每種類型的對(duì)比學(xué)習(xí)方法進(jìn)行細(xì)分及可視化表示.其中,樣本對(duì)構(gòu)造層方法可以細(xì)分為困難樣本構(gòu)造、剔除假負(fù)樣本、正樣本擴(kuò)充及構(gòu)造多視角樣本四種方法.圖像增廣層可以細(xì)分為圖像變換、圖像合成及圖像語義增廣三種方法.網(wǎng)絡(luò)架構(gòu)層方法可以分為同步對(duì)稱、同步非對(duì)稱、異步對(duì)稱、異步非對(duì)稱對(duì)比學(xué)習(xí),及基于聚類的網(wǎng)絡(luò)架構(gòu).特征提取網(wǎng)絡(luò)主要使用ResNet[30](Residual neural network)、Transformer[31]等主流神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),損失函數(shù)層分為基于互信息的損失函數(shù)、傳統(tǒng)損失函數(shù)和混合損失函數(shù).下面將分別介紹各類型的方法.

        圖3 對(duì)比學(xué)習(xí)的整體流程及各模塊的細(xì)分類方法Fig.3 Overall framework of the contrastive learning process and the sub-category of each module

        2.2 樣本處理及樣本對(duì)構(gòu)造方法

        在對(duì)比學(xué)習(xí)過程中,樣本對(duì)的選擇指的是對(duì)數(shù)據(jù)集的采樣過程.1) 對(duì)無標(biāo)注數(shù)據(jù)集,通常采用隨機(jī)采樣的方法構(gòu)建一個(gè)批次的數(shù)據(jù),因此一個(gè)批次的數(shù)據(jù)可能存在類別分布不均勻的情況,導(dǎo)致假負(fù)樣本的出現(xiàn)及困難負(fù)樣本過少的問題;2) 對(duì)有標(biāo)注數(shù)據(jù)集,通過標(biāo)簽信息采樣訓(xùn)練數(shù)據(jù),能夠有效提高對(duì)比學(xué)習(xí)效果.下面將分別介紹各種細(xì)分的樣本處理及樣本對(duì)構(gòu)造方法.

        2.2.1 困難樣本構(gòu)造

        如圖4 所示,圖(a) 是狗,圖(b) 是狼,在選擇樣本進(jìn)行模型訓(xùn)練的時(shí)候,這兩種動(dòng)物在視覺上相似度很高,同時(shí)在經(jīng)過網(wǎng)絡(luò)提取特征之后,他們的特征之間的余弦相似度也比較高,容易被誤認(rèn)為是相同類的樣本,而這兩張圖像并非同類,這種情況稱為困難負(fù)樣本對(duì),同理,若兩張圖片屬于同一類,但特征相似度不高則稱為困難正樣本對(duì).多個(gè)研究表明,困難負(fù)樣本和困難正樣本對(duì)在對(duì)比學(xué)習(xí)中具有至關(guān)重要的作用.

        圖4 困難負(fù)樣本對(duì)示例Fig.4 Example of hard negative pair

        Zhu 等[32]通過對(duì)MoCo 算法訓(xùn)練過程的可視化分析,發(fā)現(xiàn)增加困難樣本在同批次中的比例能夠提升網(wǎng)絡(luò)在下游任務(wù)中的表現(xiàn).通過這一現(xiàn)象,作者提出了在特征空間上將負(fù)樣本對(duì)圖像對(duì)應(yīng)的兩個(gè)特征向量插值,正樣本對(duì)圖像對(duì)應(yīng)的兩個(gè)特征向量外推,構(gòu)造新的、更加困難的樣本對(duì),最終提高了對(duì)比學(xué)習(xí)的效果.采用類似的思想,Kalantidis 等[33]提出了一種合成困難負(fù)樣本的方法,該方法也作用于特征空間中,首先通過余弦相似性度量方法將輸入樣本對(duì)應(yīng)的所有負(fù)樣本進(jìn)行降序排序并取前K個(gè)樣本,然后使用與文獻(xiàn)[32]相同的方法依次合成K個(gè)困難負(fù)樣本.但是該方法只適用于帶隊(duì)列存儲(chǔ)庫(kù) (Memory bank) 的對(duì)比學(xué)習(xí)模型.Zhong 等[34]提出了一種結(jié)合圖像混合 (Mixup) 技術(shù)的困難樣本構(gòu)造方法,該方法首先利用Mixup 方法合成新的樣本,然后通過余弦相似性度量方法挑選困難的合成樣本,加入到原始數(shù)據(jù)中進(jìn)行對(duì)比學(xué)習(xí)訓(xùn)練,提高了對(duì)比學(xué)習(xí)的訓(xùn)練效果.

        2.2.2 剔除假負(fù)樣本

        如圖5 所示,在同一批次的訓(xùn)練圖像中,如果輸入圖像和同一個(gè)批次的其他某一張圖像是同一類,但是在計(jì)算損失的時(shí)候把它們誤歸為負(fù)樣本對(duì),這種情況就稱為假負(fù)樣本對(duì).在對(duì)比學(xué)習(xí)中,負(fù)樣本的質(zhì)量和數(shù)量是制約最后訓(xùn)練效果的關(guān)鍵,如果在訓(xùn)練的批次中出現(xiàn)假負(fù)樣本,會(huì)降低最后的網(wǎng)絡(luò)效果.

        圖5 假負(fù)樣本示例Fig.5 Example of false negative pair

        為了解決該問題,Huynh 等[35]提出一種啟發(fā)式的方法來避免假負(fù)樣本對(duì)訓(xùn)練的影響.該方法將同一幅圖像使用多種增廣方法得到的所有圖像作為該幅圖像對(duì)應(yīng)的支持集,然后將同一個(gè)批次中該圖像對(duì)應(yīng)的每個(gè)負(fù)樣本依次與其支持集中的每幅圖像進(jìn)行特征相似性計(jì)算,并將前K個(gè)最相似的負(fù)樣本視為假負(fù)樣本,認(rèn)為這些負(fù)樣本與輸入圖像具有相同的類標(biāo)簽.得到假負(fù)樣本后,可以直接剔除假負(fù)樣本,或?qū)⒓儇?fù)樣本移入到正樣本集合.通過大量實(shí)驗(yàn),作者證明了兩種處理方式都能提高對(duì)比學(xué)習(xí)的效果.針對(duì)相同的問題,Chuang 等[36]提出修正Info-NCE 損失函數(shù)中所有負(fù)樣本相似度的指數(shù)冪和,以降低可能采樣到的假負(fù)樣本對(duì)損失值帶來的影響.

        2.2.3 正樣本擴(kuò)充法

        擴(kuò)充正樣本有助于提高對(duì)比學(xué)習(xí)的效果.這里的擴(kuò)充不包含圖像增廣方法,而是指從可用的數(shù)據(jù)資源中尋找隱藏的、與輸入樣本類別相同的圖像的方法.在監(jiān)督對(duì)比學(xué)習(xí)中,由于同類樣本已知,一般無需擴(kuò)充正樣本.而在無監(jiān)督對(duì)比學(xué)習(xí)中,若圖像數(shù)據(jù)沒有標(biāo)注信息,一般無法進(jìn)行正樣本擴(kuò)充.但在一些特殊場(chǎng)景下,如行人重識(shí)別、遙感圖像處理、視頻分析,可以基于某些假設(shè),對(duì)正樣本進(jìn)行擴(kuò)充.

        Kim 等[37]將Mixup 方法應(yīng)用到了對(duì)比學(xué)習(xí)領(lǐng)域,提出MixCo 方法,該方法將經(jīng)過增廣之后的兩幅異類圖像進(jìn)行Mixup 操作合成新的圖像.然后對(duì)所有合成的圖像,計(jì)算其InfoNCE 損失,由于每幅合成圖像對(duì)應(yīng)兩個(gè)類別,因此可以認(rèn)為是擴(kuò)充了每個(gè)樣本對(duì)應(yīng)的正樣本個(gè)數(shù).最終損失由原始圖像上的對(duì)比損失和上述合成圖像上的對(duì)比損失構(gòu)成.

        在行人重識(shí)別領(lǐng)域,王夢(mèng)琳[38]提出一種度量不同相機(jī)中行人關(guān)聯(lián)性的方法,將關(guān)聯(lián)性強(qiáng)的樣本視作同類樣本,以擴(kuò)充正樣本的數(shù)量.

        在遙感圖像處理中,基于同一地點(diǎn)的遙感圖像中的內(nèi)容隨時(shí)間變化較小的特點(diǎn),Ayush 等[39]使用同一地點(diǎn)的不同時(shí)刻的遙感圖像擴(kuò)充正樣本.

        在視頻分析中,Qian 等[40]基于鄰近的視頻幀圖像可作為同類樣本的假設(shè),擴(kuò)充正樣本,用于對(duì)比學(xué)習(xí).Kumar 等[41]同樣采用這一假設(shè)擴(kuò)充正樣本.Han 等[42]發(fā)現(xiàn)對(duì)于兩個(gè)不同的視頻片段,做的動(dòng)作相同時(shí),在RGB 視角下,提取的特征相似度不高,但在光流 (Optical flow) 視角下,提取的特征相似度很高,反之亦然.基于以上發(fā)現(xiàn),作者提出將光流視角下相似度高的視頻片段作為RGB 視角下的正樣本,同樣,可采用相同方法擴(kuò)充光流視角下的正樣本.

        在半監(jiān)督學(xué)習(xí)領(lǐng)域,Wang 等[43]提出通過部分標(biāo)簽訓(xùn)練的分類器,在當(dāng)前訓(xùn)練批次中利用余弦相似度指標(biāo)尋找正樣本的方法,擴(kuò)充正樣本數(shù)量.Yang 等[44]采用同樣的思路設(shè)計(jì)類感知模塊,擴(kuò)充正樣本數(shù)量.

        2.2.4 構(gòu)造多視圖樣本

        多數(shù)對(duì)比學(xué)習(xí)方法所使用的數(shù)據(jù)只有一個(gè)來源(又稱為同一個(gè)視圖).針對(duì)該問題,研究人員探索使用多視圖數(shù)據(jù)的方法提升對(duì)比學(xué)習(xí)的效果.Tian等[45]提出基于多視圖特征的對(duì)比學(xué)習(xí)方法.該方法將同一幅圖像在多個(gè)不同視圖下的表達(dá)分別進(jìn)行特征提取,然后進(jìn)行對(duì)比學(xué)習(xí),有利于提升模型的效果.在視頻分析中,Rai 等[46]對(duì)同一幅圖像分別提取光流、語義分割、關(guān)鍵點(diǎn)等多視圖特征,然后進(jìn)行對(duì)比學(xué)習(xí),提升了視頻特征表達(dá)能力.

        2.3 圖像增廣方法

        2.3.1 圖像變換方法

        圖像增廣是對(duì)比學(xué)習(xí)的天然組成部分,以產(chǎn)生網(wǎng)絡(luò)所需的輸入樣本對(duì).如圖6 所示,傳統(tǒng)的圖像變換方法有隨機(jī)裁剪、顏色失真、灰度化等方法.需要說明的是,單一的圖像變換方法不利于有效的對(duì)比學(xué)習(xí).SimCLR 綜合對(duì)比了一系列圖像變換的效果,發(fā)現(xiàn)由隨機(jī)裁剪和顏色失真組成的變換組合能夠獲得更好的對(duì)比學(xué)習(xí)效果.

        圖6 常用圖像變換方法示例Fig.6 Example of common image augmentations

        在眾多的圖像變換方法之中,裁剪通常是必須的變換方法之一,但可能存在經(jīng)過裁剪后的正樣本對(duì)信息重疊過多或者完全不重疊的情況.如圖7(a)所示,如果裁剪到的正樣本對(duì)是兩個(gè)矩形框中的區(qū)域,那么該圖像對(duì)并不能促進(jìn)對(duì)比學(xué)習(xí),這種情況稱為錯(cuò)誤正樣本 (False positive,FP).圖7(b)給出了裁剪的兩個(gè)圖像區(qū)域重疊過多的情況,若選擇它們作為正樣本對(duì),也無助于對(duì)比學(xué)習(xí).Peng 等[47]針對(duì)以上問題,首先利用熱圖定位目標(biāo)區(qū)域,然后采用中心抑制抽樣策略,在目標(biāo)區(qū)域內(nèi)離物體中心越遠(yuǎn)的像素點(diǎn)被采樣到的概率越高.得到采樣點(diǎn)后,以采樣點(diǎn)為中心,并使用隨機(jī)生成的寬高,進(jìn)行最終的圖像裁剪操作.在SwAV 中,作者提出了一種多裁剪策略 (Multi-crop),該策略給編碼器提供多個(gè)不同尺度的裁剪圖像作為正樣本,并驗(yàn)證了該策略有助于提高對(duì)比學(xué)習(xí)算法的性能.

        圖7 裁剪操作對(duì)正樣本對(duì)構(gòu)造的影響示例Fig.7 The influence of constructing positive pairs by image crop

        2.3.2 圖像合成方法

        圖像合成不同于圖像變換,前者能夠生成新的內(nèi)容.在視頻分析中,Ding 等[48]提出復(fù)制粘貼的圖像合成方法,將所選視頻幀的前景區(qū)域粘貼到其他視頻幀的背景圖像中,得到合成的視頻幀,通過這種簡(jiǎn)單的合成方法,使得對(duì)比學(xué)習(xí)模型能夠更加關(guān)注前景信息,提取到更加良好的特征表達(dá).

        2.3.3 圖像語義增廣方法

        圖像語義增廣是一種直接對(duì)圖像中物體的語義進(jìn)行修改的圖像增廣方法,如將圖像中的物體的顏色或角度進(jìn)行改變.現(xiàn)有的一些語義增廣算法[49-51]已證明其在不同問題和應(yīng)用中的有效性.相較于圖像變換方法和圖像合成方法,圖像語義增廣是一種更強(qiáng)的圖像增廣方法.Tian 等[52]認(rèn)為最小化在不同增廣下樣本間的互信息有利于提高對(duì)比學(xué)習(xí)的效果,為了最小化訓(xùn)練樣本對(duì)之間的互信息,作者引入了對(duì)抗訓(xùn)練策略尋找可以最小化訓(xùn)練樣本對(duì)互信息的圖像變換編碼器Sg,通過與InfoNCE 聯(lián)合訓(xùn)練,獲得了更適用于下游任務(wù)的模型,經(jīng)過訓(xùn)練得到的圖像變換編碼器Sg可認(rèn)為是一個(gè)語義增廣器.

        2.4 對(duì)比學(xué)習(xí)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)

        根據(jù)對(duì)比學(xué)習(xí)網(wǎng)絡(luò)架構(gòu)的更新方式是同步或異步,及該網(wǎng)絡(luò)架構(gòu)是對(duì)稱或非對(duì)稱,本文將對(duì)比學(xué)習(xí)所涉及的網(wǎng)絡(luò)架構(gòu)劃分為同步對(duì)稱、同步非對(duì)稱、異步對(duì)稱和異步非對(duì)稱4 種類型.同步更新指的是對(duì)比學(xué)習(xí)網(wǎng)絡(luò)的兩個(gè)分支 (分支1和分支2) 同時(shí)進(jìn)行梯度更新,異步更新指的是兩個(gè)分支網(wǎng)絡(luò)的權(quán)值更新方法不同.對(duì)稱指的是分支1和分支2 的網(wǎng)絡(luò)結(jié)構(gòu)完全相同,非對(duì)稱則指相反的情況.除此之外,本節(jié)還將含有聚類算法的對(duì)比學(xué)習(xí)方法總結(jié)為聚類對(duì)比學(xué)習(xí)架構(gòu).

        2.4.1 同步對(duì)稱網(wǎng)絡(luò)架構(gòu)

        典型的同步對(duì)稱網(wǎng)絡(luò)架構(gòu)如圖8 所示,分支1和分支2 采用相同的網(wǎng)絡(luò)結(jié)構(gòu),并且同時(shí)采用梯度更新.

        圖8 同步對(duì)稱網(wǎng)絡(luò)架構(gòu)Fig.8 The architecture of synchronous symmetrical network

        SimCLR[2]是最早提出采用同步對(duì)稱網(wǎng)絡(luò)架構(gòu)的對(duì)比學(xué)習(xí)工作.該網(wǎng)絡(luò)架構(gòu)采用了結(jié)構(gòu)相同的兩個(gè)網(wǎng)絡(luò)分支,每一個(gè)分支都包含特征提取網(wǎng)絡(luò)和投影頭.特征提取網(wǎng)絡(luò)可以是任意的網(wǎng)絡(luò)結(jié)構(gòu),例如ResNet和Transformer,投影頭一般使用多層感知機(jī) (Multilayer perceptron,MLP).如圖8 所示,使用該網(wǎng)絡(luò)架構(gòu)進(jìn)行對(duì)比學(xué)習(xí)的前向過程為:首先,輸入一個(gè)樣本,經(jīng)過兩種圖像增廣方法產(chǎn)生成對(duì)的訓(xùn)練樣本.然后,通過特征提取網(wǎng)絡(luò)和投影頭將樣本輸出到投影空間.最后,在投影空間進(jìn)行損失計(jì)算并回傳梯度,更新特征提取網(wǎng)絡(luò)和投影頭的參數(shù).同步對(duì)稱網(wǎng)絡(luò)架構(gòu)除了可以用于自監(jiān)督對(duì)比學(xué)習(xí)之外,Khosla 等[8]將該類網(wǎng)絡(luò)架構(gòu)應(yīng)用到了監(jiān)督對(duì)比學(xué)習(xí)之中.值得注意的是,采用該類網(wǎng)絡(luò)架構(gòu)的對(duì)比學(xué)習(xí)算法若想獲得良好效果,往往需要在訓(xùn)練時(shí)采用很大的批次進(jìn)行訓(xùn)練,比如1 024 或2 048.

        2.4.2 同步非對(duì)稱網(wǎng)絡(luò)架構(gòu)

        典型的同步非對(duì)稱網(wǎng)絡(luò)結(jié)構(gòu)如圖9 同步非對(duì)稱網(wǎng)絡(luò)所示,分支1和分支2 采用不同的網(wǎng)絡(luò)結(jié)構(gòu),但同時(shí)采用梯度更新.同步非對(duì)稱網(wǎng)絡(luò)架構(gòu)與同步對(duì)稱網(wǎng)絡(luò)架構(gòu)的相同之處在于兩個(gè)分支都進(jìn)行了梯度更新,不同之處在于前者的兩個(gè)分支的網(wǎng)絡(luò)結(jié)構(gòu)不同,而后者相同.

        Van 等[7]提出一種基于該種網(wǎng)絡(luò)架構(gòu)的對(duì)比預(yù)測(cè)編碼方法CPC.在該方法中,分支1 的輸入為某一個(gè)時(shí)間點(diǎn)的數(shù)據(jù),分支2 的輸入為未來某一個(gè)時(shí)間點(diǎn)的數(shù)據(jù),訓(xùn)練的目標(biāo)是利用分支1 的輸出預(yù)測(cè)分支2 的輸出,如圖9 所示,然后計(jì)算對(duì)應(yīng)的預(yù)測(cè)損失.在CPC 算法之后,衍生出很多改進(jìn)的算法[41,53],這些方法均采用典型的同步非對(duì)稱網(wǎng)絡(luò)架構(gòu),其主要改進(jìn)之處在于采樣方法或損失函數(shù).

        圖9 同步非對(duì)稱網(wǎng)絡(luò)架構(gòu)Fig.9 The architecture of synchronous unsymmetrical network

        除了如圖9 所示的同步非對(duì)稱架構(gòu)之外,還存在一些其它形式的同步非對(duì)稱的網(wǎng)絡(luò)架構(gòu),主要有如下兩種形式:1) 分支1 與分支2 均含有投影頭,但投影頭結(jié)構(gòu)不相同[54-55].2) 分支1和分支2 的特征提取網(wǎng)絡(luò)數(shù)量不相等[56-57].

        Nguyen 等[54]將對(duì)比學(xué)習(xí)方法應(yīng)用于網(wǎng)絡(luò)結(jié)構(gòu)搜索任務(wù) (Neural architecture search,NAS),提出CSNAS 方法,該方法構(gòu)造了一個(gè)類似于上述第1 種形式的同步非對(duì)稱網(wǎng)絡(luò)架構(gòu).Misra 等[55]在分支2 中使用拼圖代理任務(wù)進(jìn)行特征學(xué)習(xí),因此在分支2 的投影頭之前還包含拼接操作以及多層感知機(jī)的映射,構(gòu)成了符合上述第1 種形式的同步非對(duì)稱網(wǎng)絡(luò)架構(gòu).

        Bae 等[56]提出自對(duì)比學(xué)習(xí) (Self contrastive learning,SelfCon) 方法,該方法構(gòu)造了一個(gè)類似于上述第2 種形式的同步非對(duì)稱網(wǎng)絡(luò)架構(gòu),在該方法中,將一個(gè)特征提取網(wǎng)絡(luò)和一個(gè)投影頭組合在一起,稱為一個(gè)主干網(wǎng)絡(luò)塊,分支1 采用多個(gè)主干網(wǎng)絡(luò)塊進(jìn)行特征映射,分支2 從分支1 中的某個(gè)節(jié)點(diǎn)引出,通過一次主干網(wǎng)絡(luò)塊映射得到另一個(gè)視圖下的特征,最后進(jìn)行損失計(jì)算.類似地,Chaitanya 等[57]提出可用于圖像分割的對(duì)比學(xué)習(xí)方法,在該方法中,分支1和分支2 共享編碼器,但分支1 直接在編碼器后加入投影頭,分支2 在編碼器后加入一個(gè)解碼器,然后再加入投影頭.

        2.4.3 異步對(duì)稱網(wǎng)絡(luò)架構(gòu)

        在異步對(duì)稱的網(wǎng)絡(luò)架構(gòu)中,分支1和分支2 采用相同的網(wǎng)絡(luò)結(jié)構(gòu),但是兩個(gè)分支的神經(jīng)網(wǎng)絡(luò)權(quán)值更新方式不同,因此稱作異步更新,如圖10 所示.

        圖10 異步對(duì)稱網(wǎng)絡(luò)架構(gòu)Fig.10 The architecture of asynchronous symmetrical network

        MoCo 是經(jīng)典的采用異步對(duì)稱網(wǎng)絡(luò)架構(gòu)的對(duì)比學(xué)習(xí)方法.其中,分支1 中的特征提取網(wǎng)絡(luò)和投影頭采用SGD 等梯度更新方法更新權(quán)值,而分支2的特征提取網(wǎng)絡(luò)和投影頭采用動(dòng)量更新的方式,動(dòng)量更新的公式如式 (2) 所示:

        其中,是分支2 中動(dòng)量特征提取網(wǎng)絡(luò)在時(shí)刻t的參數(shù)值,是分支1 中特征提取網(wǎng)絡(luò)經(jīng)過t時(shí)刻梯度反傳訓(xùn)練過后的參數(shù)值,m是 0-1 之間的動(dòng)量系數(shù).這種動(dòng)量更新機(jī)制能夠有效防止極端樣本對(duì)參數(shù)更新影響過大的問題.

        在對(duì)比學(xué)習(xí)中,負(fù)樣本的數(shù)量對(duì)最終的模型效果起決定性的作用.在原始的對(duì)比學(xué)習(xí)方法中,負(fù)樣本的來源是同批次的訓(xùn)練數(shù)據(jù),為了增加負(fù)樣本的數(shù)量,必須采用大批次的數(shù)據(jù)來支撐訓(xùn)練,但這樣會(huì)造成存儲(chǔ)資源過大,計(jì)算消耗巨大的問題.MoCo設(shè)計(jì)了隊(duì)列 (Queue) 結(jié)構(gòu),存儲(chǔ)一定數(shù)量的之前批次用到的樣本的特征,當(dāng)隊(duì)列容量滿時(shí),最老樣本的特征出隊(duì),最新樣本的特征入隊(duì).在MoCo 方法中,對(duì)比學(xué)習(xí)所需的負(fù)樣本將從該隊(duì)列中抽樣產(chǎn)生,避免了原始對(duì)比學(xué)習(xí)方法為獲得較多負(fù)樣本而構(gòu)建大的批容量帶來的問題.簡(jiǎn)言之,該隊(duì)列結(jié)構(gòu)減小了對(duì)存儲(chǔ)資源的要求,又取消了訓(xùn)練必須采用大批次數(shù)據(jù)的約束,提升了計(jì)算速度.后續(xù)的基于異步對(duì)稱網(wǎng)絡(luò)架構(gòu)的方法都將該隊(duì)列結(jié)構(gòu)作為其默認(rèn)的組成部分.

        近年來,隨著Transformer 技術(shù)的發(fā)展,研究者將其引入到計(jì)算機(jī)視覺領(lǐng)域,例如ViT[58].在對(duì)比學(xué)習(xí)的研究中.Caron 等[59]提出了一種名為DINO(Self-distillation with no labels) 的異步對(duì)稱對(duì)比學(xué)習(xí)方法,該方法采用Transformer 作為骨干網(wǎng)絡(luò),并將自監(jiān)督對(duì)比學(xué)習(xí)轉(zhuǎn)換為蒸餾學(xué)習(xí)的任務(wù),將分支1 視作學(xué)生網(wǎng)絡(luò),將分支2 視作教師網(wǎng)絡(luò).學(xué)生網(wǎng)絡(luò)采用梯度回傳更新參數(shù),教師網(wǎng)絡(luò)采用動(dòng)量更新方式更新參數(shù).

        2.4.4 異步非對(duì)稱網(wǎng)絡(luò)架構(gòu)

        異步非對(duì)稱網(wǎng)絡(luò)架構(gòu)指的是分支1和分支2 采用不同的網(wǎng)絡(luò)結(jié)構(gòu),同時(shí)參數(shù)更新方式也不同.異步非對(duì)稱網(wǎng)絡(luò)架構(gòu)與異步對(duì)稱網(wǎng)絡(luò)架構(gòu)的相同之處在于兩個(gè)分支的更新方式相同,不同之處在于前者的兩個(gè)分支的網(wǎng)絡(luò)結(jié)構(gòu)不同,而后者相同.

        異步非對(duì)稱網(wǎng)絡(luò)架構(gòu)存在兩種形式,一種是采用MoCo 作為主干網(wǎng)絡(luò),但是投影頭數(shù)量不一致,以BYOL[4]方法為典型代表.另一種是網(wǎng)絡(luò)架構(gòu)不對(duì)稱,同時(shí)采用梯度交叉更新的方法,以SimSiam[6]方法為典型代表.

        BYOL 的網(wǎng)絡(luò)結(jié)構(gòu)如圖11 所示.其主干網(wǎng)絡(luò)結(jié)構(gòu)是MoCo,分支2 的網(wǎng)絡(luò)參數(shù)采用動(dòng)量更新機(jī)制.BYOL 是首個(gè)只采用正樣本進(jìn)行對(duì)比學(xué)習(xí)的工作,但由于訓(xùn)練集中不存在負(fù)樣本,如果上下網(wǎng)絡(luò)分支結(jié)構(gòu)完全相同,訓(xùn)練就有可能出現(xiàn) “捷徑解”的問題 (亦可稱為 “網(wǎng)絡(luò)崩塌”問題),“捷徑解”指的是對(duì)不同的輸入,輸出的特征向量完全相同.為了解決這一問題,BYOL 在分支1 中額外增加了一個(gè)預(yù)測(cè)頭 (MLP),構(gòu)成了非對(duì)稱網(wǎng)絡(luò)架構(gòu),并將對(duì)比學(xué)習(xí)的實(shí)例判別代理任務(wù)替換為比對(duì)任務(wù),即分支1 最終得到的特征與分支2 最終得到的特征要盡可能的相似.BYOL 的性能提升歸因于以下兩點(diǎn)設(shè)計(jì):1) 良好的模型初始化.2) 在投影頭和預(yù)測(cè)頭中加入正則化技術(shù).如果沒有這兩種設(shè)計(jì),BYOL 仍可能出現(xiàn) “捷徑解”的問題[60].

        圖11 BYOL 網(wǎng)絡(luò)架構(gòu)Fig.11 The architecture of BYOL

        Chen 等[61]提出了一種基于視覺Transformer的異步非對(duì)稱網(wǎng)絡(luò)架構(gòu)MoCov3.MoCov3 采了BYOL型異步非對(duì)稱網(wǎng)絡(luò)架構(gòu).在分支1 中額外加入了一個(gè)預(yù)測(cè)頭,分支2 的編碼器采用動(dòng)量更新,獲得了更好的對(duì)比學(xué)習(xí)效果.

        另一種代表性的異步非對(duì)稱架構(gòu)是SimSiam.如圖12 所示,SimSiam 方法也不需要利用負(fù)樣本訓(xùn)練網(wǎng)絡(luò).為了避免網(wǎng)絡(luò)出現(xiàn) “捷徑解”,該方法的兩個(gè)分支的網(wǎng)絡(luò)結(jié)構(gòu)采用交叉梯度更新的方式.具體而言,訓(xùn)練分支1 的時(shí)候,投影頭放在分支1 的編碼器之后,計(jì)算其損失,而分支2 的梯度停止回傳.在訓(xùn)練分支2 的時(shí)候,將分支1 的投影頭接入到分支2 的編碼器之后,并計(jì)算損失,而分支1 的梯度停止回傳.這就是交叉梯度更新.

        圖12 SimSiam 網(wǎng)絡(luò)架構(gòu)Fig.12 The architecture of SimSiam

        2.4.5 聚類對(duì)比學(xué)習(xí)結(jié)構(gòu)

        在上述四種網(wǎng)絡(luò)架構(gòu)的基礎(chǔ)上,還可以結(jié)合聚類技術(shù)進(jìn)行進(jìn)一步的優(yōu)化.

        基于實(shí)例的對(duì)比學(xué)習(xí)算法在計(jì)算損失差別過大,不利于模型學(xué)習(xí)到良好的語義特征.而聚類算法能夠在無監(jiān)督情況下自動(dòng)學(xué)習(xí)數(shù)據(jù)的語義信息.因此,一些方法將對(duì)比學(xué)習(xí)與聚類方法結(jié)合在起來,嵌入到上述四種網(wǎng)絡(luò)架構(gòu)中.

        Caron 等[62]首次將K-Means 聚類算法與無監(jiān)督深度學(xué)習(xí)結(jié)合,提出深度聚類算法 (Deep cluster),該算法通過K-Means 聚類產(chǎn)生偽標(biāo)簽,然后利用偽標(biāo)簽對(duì)模型進(jìn)行自監(jiān)督訓(xùn)練.在該方法的基礎(chǔ)上,作者又提出了一種基于聚類的對(duì)比學(xué)習(xí)算法SwAV,該算法采用同步對(duì)稱網(wǎng)絡(luò)架構(gòu)訓(xùn)練特征提取網(wǎng)絡(luò).在分支1和分支2 之間引入聚類中心信息,并計(jì)算相關(guān)損失,幫助網(wǎng)絡(luò)進(jìn)行訓(xùn)練.相關(guān)的細(xì)節(jié)在第2.5.2節(jié)中給出.

        Li 等[63]提出原型對(duì)比學(xué)習(xí)算法 (Prototypical contrastive learning,PCL),該方法采用異步對(duì)稱網(wǎng)絡(luò)架構(gòu),分支1 采用梯度更新,分支2 采用動(dòng)量更新.在PCL 的前向傳播過程中,當(dāng)分支2 對(duì)輸入樣本提取特征之后,采用K-Means 算法依據(jù)樣本特征進(jìn)行聚類.然后,將分支1 得到的每個(gè)樣本特征與分支2 的所有聚類中心計(jì)算聚類對(duì)比學(xué)習(xí)損失,將分支1 的樣本與其所屬的聚類中心的向量視作正樣本對(duì),其余為負(fù)樣本對(duì).最終的損失函數(shù)由聚類對(duì)比學(xué)習(xí)損失和原有 (實(shí)例) 對(duì)比學(xué)習(xí)損失構(gòu)成.聚類對(duì)比學(xué)習(xí)損失計(jì)算的目標(biāo)是最大化樣本實(shí)例與其相對(duì)應(yīng)的聚類中心特征之間的相似度,因此這種設(shè)計(jì)也能在一定程度上緩解實(shí)例對(duì)比學(xué)習(xí)中的假負(fù)樣本問題.PCL 僅在分支2 上進(jìn)行聚類計(jì)算,后續(xù)工作嘗試在兩個(gè)分支上都進(jìn)行聚類,如Wang 等[64]提出的方法,將分支1和分支2 都進(jìn)行聚類計(jì)算,然后進(jìn)行交叉聚類對(duì)比學(xué)習(xí)損失計(jì)算.

        在現(xiàn)實(shí)圖像數(shù)據(jù)集中,往往存在多層級(jí)的語義結(jié)構(gòu),例如在"狗"這個(gè)分類的數(shù)據(jù)中,還存在 “哈士奇”、“金毛”、“雪納瑞”等不同品種的狗.現(xiàn)有的很多對(duì)比學(xué)習(xí)方法沒有考慮到數(shù)據(jù)集的這個(gè)特點(diǎn).針對(duì)這一問題,Guo 等[65]提出了一種分層聚類的對(duì)比學(xué)習(xí)方法(Hierarchical contrastive selective coding,HCSC),HCSC 的網(wǎng)絡(luò)架構(gòu)如圖13 所示,和PCL 的神經(jīng)網(wǎng)絡(luò)架構(gòu)相同,都屬于異步對(duì)稱網(wǎng)絡(luò)架構(gòu).HCSC 通過多層聚類來實(shí)現(xiàn)對(duì)數(shù)據(jù)集中存在的分層語義現(xiàn)象的模擬.具體而言,在分支2 的特征提取操作之后,首先,通過K-means 算法計(jì)算第一層聚類中心,隨后針對(duì)第一層聚類中心再使用K-means 算法尋找下一層的聚類中心,循環(huán)N次,得到N個(gè)層次的聚類向量,完成對(duì)N層語義的模擬.同時(shí)HCSC 還提出一種新的負(fù)樣本采樣方法:在每一層語義結(jié)構(gòu)中尋找與當(dāng)前輸入樣本特征的原型相似度較低的樣本作為負(fù)樣本.這種采樣負(fù)樣本的方法能夠有效緩解采樣到假負(fù)樣本的問題.

        圖13 HCSC 網(wǎng)絡(luò)架構(gòu)Fig.13 The architecture of HCSC

        此外,Li 等[66]提出了一種聚類中心可自動(dòng)學(xué)習(xí)的聚類對(duì)比學(xué)習(xí)算法.該網(wǎng)絡(luò)設(shè)計(jì)了一個(gè)共享特征網(wǎng)絡(luò)的雙分支同步對(duì)稱網(wǎng)絡(luò)架構(gòu),兩個(gè)分支分別構(gòu)建投影頭,即用于實(shí)例對(duì)比學(xué)習(xí)的投影頭I,和用于聚類對(duì)比學(xué)習(xí)的投影頭C.投影頭I采用線性激活,投影頭C采用softmax 激活.將投影頭C輸出的矩陣中的列向量作為聚類中心,通過InfoNCE 損失和交叉熵?fù)p失聯(lián)合訓(xùn)練模型,在訓(xùn)練過程中由于投影頭C參數(shù)在更新,聚類中心因此也獲得自動(dòng)更新的能力.

        Cui 等[67]提出了一種新的異步非對(duì)稱聚類網(wǎng)絡(luò)架構(gòu)PaCo,該方法將聚類思想和MoCo 結(jié)合在一起,通過構(gòu)建一個(gè)可隨著模型一同學(xué)習(xí)的參數(shù)化類別中心c,使數(shù)據(jù)少的類別在訓(xùn)練中的重要性提升,從而在長(zhǎng)尾學(xué)習(xí)中實(shí)現(xiàn)對(duì)損失的再平衡.

        2.5 損失函數(shù)設(shè)計(jì)

        為了實(shí)現(xiàn)對(duì)比學(xué)習(xí)的優(yōu)化目標(biāo),研究者使用了多種針對(duì)性的損失函數(shù),可以分為基于互信息的損失函數(shù) (InfoNCE 類)、傳統(tǒng)損失函數(shù)和混合損失函數(shù).

        值得注意的是,對(duì)比損失[13]與對(duì)比學(xué)習(xí)損失很容易在字面上產(chǎn)生混淆,實(shí)際上,對(duì)比損失是一種度量學(xué)習(xí)損失,只能用于監(jiān)督學(xué)習(xí),且樣本對(duì)數(shù)據(jù)來源與對(duì)比學(xué)習(xí)不同,因此,對(duì)比損失不一定是對(duì)比學(xué)習(xí)的損失函數(shù).

        2.5.1 InfoNCE 損失函數(shù)及變種

        對(duì)于深度學(xué)習(xí)模型來說,理想的訓(xùn)練目標(biāo)是獲得一個(gè)從樣本到特征的映射模型p(z|x;θ),其中x是樣本,z是模型輸出的特征,θ為需要學(xué)習(xí)的參數(shù).很多自監(jiān)督學(xué)習(xí)方法通過交叉熵或均方誤差訓(xùn)練網(wǎng)絡(luò)達(dá)到上述目標(biāo).然而,基于交叉熵或均方誤差這樣的單峰函數(shù)的損失往往效果不好[7].因此Van 等[7]提出通過最大化互信息的方法訓(xùn)練特征提取網(wǎng)絡(luò).互信息I(X;Y) 是一個(gè)概率論中的概念,可以衡量?jī)蓚€(gè)隨機(jī)變量X和Y之間的相關(guān)性.互信息的定義如式 (3) 所示:

        由于直接最大化互信息是十分困難的,因此作者提出了通過InfoNCE 損失來間接優(yōu)化互信息的方法.InfoNCE 損失的思想是將最大化互信息轉(zhuǎn)換為真實(shí)分布占合成分布的概率密度比的預(yù)測(cè)問題[68].原始InfoNCE 公式 (4) 所示:

        其中,X={x1,···,xN}為采樣的N個(gè)樣本,f為特征提取網(wǎng)絡(luò),q=f(xq) 為查詢樣本的特征向量,h+=f(xi) 為xq為對(duì)應(yīng)的正樣本的特征向量.在訓(xùn)練中,每個(gè)查詢樣本xq只對(duì)應(yīng)1 個(gè)正樣本xi,其余都視為從噪聲分布里面采樣的負(fù)樣本.s為相似度度量函數(shù),這里采用余弦相似度.Van 等[7]和Poole等[69]證明了優(yōu)化InfoNCE 損失等價(jià)于優(yōu)化變量之間的互信息的下界,并且I(xq,xi)≥lnN -LinfoNCE,可知如果想獲得一個(gè)較高的互信息值,需要大批次的樣本參與訓(xùn)練.

        SimCLR 首先將InfoNCE 損失引入到對(duì)比學(xué)習(xí)中來,由于訓(xùn)練所用的樣本對(duì)來自于同一幅圖像的兩次不同增廣,因此InfoNCE 的優(yōu)化目標(biāo)變?yōu)樽畲蠡粋€(gè)樣本的兩個(gè)不同增廣圖像之間的互信息,SimCLR 中采用的InfoNCE 如式 (5) 所示:

        其中,X={x1,···,xN}為采樣的N個(gè)樣本,f為特征提取網(wǎng)絡(luò),g為投影頭,T為圖像增廣函數(shù),zi=g(f(T1(xi)))為樣本經(jīng)過第1種圖像增廣之后產(chǎn)生的投影向量,=g(f(T2(xi)))為樣本經(jīng)過第2種圖像增廣之后產(chǎn)生的投影向量,為一個(gè)指示器函數(shù),當(dāng)時(shí)為1,否則為0.s為相似度度量函數(shù),此處使用余弦相似度函數(shù),即s(u,v)=uTv/(||u||||v||).總結(jié)而言,在SimCLR的InfoNCE公式中,分子表示同一個(gè)樣本的兩種不同變換得到的正樣本對(duì)的特征相似度,分母是不同圖像組成的負(fù)樣本集合中的每個(gè)負(fù)樣本對(duì)的相似度的和.

        在InfoNCE 引入到對(duì)比學(xué)習(xí)之后,許多方法[3,9,32-33,40,48,52-54,57,70]對(duì)其直接調(diào)用并擴(kuò)展到更多的學(xué)習(xí)任務(wù)中.表3 列出了一些對(duì)InfoNCE 改動(dòng)較大的方法,包括ProtoNCE[63],DCL[71],DirectNCE[72],SCL[8],FNCL[35].其中,第一行為原始的InfoNCE損失函數(shù),其他部分為對(duì)其改進(jìn)的損失函數(shù),包括ProtoNCE,DCL,DirectNCE,SCL,FNCL 等損失函數(shù).

        1) ProtoNCE 損失函數(shù).與原始InfoNCE 損失函數(shù)相比,ProtoNCE 的分子部分將正樣本實(shí)例之間的相似度修改為正樣本與其所在的聚類中心之間的相似度,分母部分改為計(jì)算樣本與其它聚類中心之間的相似度.具體而言,當(dāng)前實(shí)例特征與其對(duì)應(yīng)的聚類中心互為正樣本對(duì),與其它聚類中心互為負(fù)樣本對(duì).在實(shí)際操作中,通過設(shè)置不同的聚類中心個(gè)數(shù)對(duì)一個(gè)批次的數(shù)據(jù)進(jìn)行M次聚類,計(jì)算M次ProtoNCE 損失,然后求其損失均值,最后得到的效果會(huì)更好.

        ProtoNCE 方法是在同一個(gè)語義層級(jí)上進(jìn)行聚類,但無法獲得分層的語義結(jié)構(gòu).Guo 等[65]針對(duì)該問題提出分層聚類的方法,該方法對(duì)每個(gè)聚類迭代地進(jìn)行下一級(jí)細(xì)分聚類,使特征網(wǎng)絡(luò)能夠?qū)W習(xí)到分層的語義結(jié)構(gòu),獲得更好的效果.

        2) DCL 損失函數(shù).Yeh 等[71]通過對(duì)InfoNCE的反傳梯度進(jìn)行分析,發(fā)現(xiàn)損失的梯度中存在一個(gè)負(fù)正耦合系數(shù),該系數(shù)體現(xiàn)了采用InfoNCE訓(xùn)練網(wǎng)絡(luò)時(shí)大批次樣本的重要性,同時(shí)揭示當(dāng)訓(xùn)練樣本中存在簡(jiǎn)單正樣本對(duì)和簡(jiǎn)單負(fù)樣本時(shí),會(huì)明顯降低對(duì)比學(xué)習(xí)訓(xùn)練的效率,因此作者提出了解耦對(duì)比學(xué)習(xí)損失 (Decoupled contrastive loss,DCL),解決上述問題.與InfoNCE 損失函數(shù)相比,DCL 去除InfoNCE損失函數(shù)中的負(fù)正耦合項(xiàng),并將損失展開成兩部分,具體如表3 中的DCL 損失函數(shù)公式所示,該式展示的是單個(gè)樣本的DCL 損失計(jì)算公式,原InfoNCE包含的負(fù)正耦合系數(shù)在該式中已去除.該式的第一項(xiàng)表示正樣本對(duì)之間的相似度,第二項(xiàng)是當(dāng)前樣本與同批次其他樣本組成的負(fù)樣本對(duì)之間的相似度之和.從該式可以看出,DCL 損失的計(jì)算相較于In-foNCE 損失更加簡(jiǎn)單、高效.

        表3 InfoNCE 損失函數(shù)及其變種Table 3 InfoNCE loss and some varieties based on InfoNCE

        3) DirectNCE 損失函數(shù).Jing 等[72]從解決對(duì)比學(xué)習(xí)中的網(wǎng)絡(luò)崩塌問題入手,經(jīng)過一系列分析,提出去掉投影頭,然后將特征提取網(wǎng)絡(luò)輸出向量的前d個(gè)維度單獨(dú)取出,計(jì)算InfoNCE 損失.由于論文中并沒有給改動(dòng)后的損失起名,因此為了便于對(duì)比,本論文中將其命名為DirectNCE.DirectNCE與InfoNCE 的區(qū)別在于所使用的樣本特征維度大小,在DirectNCE 中,樣本只取前d個(gè)維度計(jì)算損失.

        4) FNCL 損失函數(shù).針對(duì)在訓(xùn)練對(duì)比學(xué)習(xí)模型時(shí)可能存在的假負(fù)樣本問題,Huynh 等[35]首先提出了一種假負(fù)樣本的檢測(cè)策略,然后對(duì)InfoNCE 進(jìn)行改進(jìn),在損失函數(shù)中剔除了假負(fù)樣本的干擾.本文將該方法暫定名為FNCL.與InfoNCE 相比,FNCL方法首先確定當(dāng)前正在處理的樣本對(duì)應(yīng)的假負(fù)樣本,然后在分母中計(jì)算負(fù)樣本對(duì)之間的相似度時(shí),去除假負(fù)樣本的部分.

        5) SCL 損失函數(shù).SCL[8]損失函數(shù)面向有監(jiān)督學(xué)習(xí),對(duì)InfoNCE 損失函數(shù)進(jìn)行改進(jìn),旨在解決深度有監(jiān)督學(xué)習(xí)中采用交叉熵?fù)p失時(shí)神經(jīng)網(wǎng)絡(luò)對(duì)噪聲標(biāo)簽敏感[73]的問題.

        令P(i) 表示當(dāng)前批中正在處理的樣本對(duì)應(yīng)的同類樣本集合 (因?yàn)閿?shù)據(jù)為有標(biāo)注數(shù)據(jù)),|P(i)|表示該集合中樣本的數(shù)量,與InfoNCE 損失函數(shù)相比,SCL 損失函數(shù)的分子計(jì)算當(dāng)前樣本與其對(duì)應(yīng)的P(i)集合中每個(gè)正樣本之間的相似度的和,而分母部分并無變化.該損失在特定情況下可以等價(jià)于三元組損失[74]和N-Pair 損失[75].在SCL 的基礎(chǔ)上,研究者還研究了利用對(duì)比學(xué)習(xí)提升長(zhǎng)尾學(xué)習(xí)效果的方法,此部分工作將在第2.6.4 節(jié)進(jìn)行詳細(xì)介紹.

        2.5.2 傳統(tǒng)損失函數(shù)在對(duì)比學(xué)習(xí)中的應(yīng)用

        如何衡量特征空間中不同特征點(diǎn)之間的距離是對(duì)比學(xué)習(xí)中一個(gè)很重要的問題.歐氏距離是衡量特征點(diǎn)之間距離的一個(gè)最直觀的方法.通過最小化均方誤差損失 (Mean square error,MSE),可以直接減小同類特征點(diǎn)之間的歐式距離,實(shí)現(xiàn)讓同類特征靠近的目的.BYOL 先對(duì)兩個(gè)分支的特征進(jìn)行L2正則化,然后采用MSE 損失計(jì)算兩個(gè)特征之間的距離,對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化.

        除了歐氏距離外,余弦相似度也能夠衡量特征之間的相似性,因此直接最大化相同樣本的不同增廣的特征之間的余弦相似度也能達(dá)到對(duì)比學(xué)習(xí)的目標(biāo).SimSiam[6]對(duì)其中一個(gè)分支的投影向量z和另一個(gè)分支的特征向量h計(jì)算余弦相似度,直接將負(fù)的余弦相似度作為損失函數(shù)進(jìn)行訓(xùn)練,由于網(wǎng)絡(luò)結(jié)構(gòu)是一個(gè)非對(duì)稱結(jié)構(gòu),為了平衡訓(xùn)練,作者將投影頭依次放在兩個(gè)分支后面進(jìn)行損失計(jì)算,從而提出對(duì)稱損失,其計(jì)算公式如式 (6) 所示:

        歐式距離和余弦相似度都是非監(jiān)督的特征相似度度量方法.除此之外,還有一些有監(jiān)督的相似度計(jì)算方法.

        在SwAV 方法中,首先初始化聚類中心,然后將聚類中心矩陣分別與分支1和分支2 的特征矩陣相乘,計(jì)算交換預(yù)測(cè)編碼矩陣Q1和Q2,最后,采用交叉熵?fù)p失訓(xùn)練模型,訓(xùn)練分支1 時(shí)將Q2作為標(biāo)簽,訓(xùn)練分支2 時(shí)將Q1作為標(biāo)簽.聚類中心利用回傳梯度進(jìn)行更新.

        此外,Shah 等[76]將支持向量機(jī)與對(duì)比學(xué)習(xí)結(jié)合在了一起,采用改進(jìn)后的合頁損失 (Hinge loss)優(yōu)化對(duì)比學(xué)習(xí)網(wǎng)絡(luò).

        2.5.3 混合損失函數(shù)

        在某些情況下,只采用InfoNCE 損失不能獲得良好的效果,而將多種損失函數(shù)結(jié)合,有助于提升對(duì)比學(xué)習(xí)的效果.

        有監(jiān)督混合損失.Wang 等[77]提出了一種將SCL 與交叉熵?fù)p失結(jié)合起來的損失.該方法采用一個(gè)平滑因子,在訓(xùn)練早期,SCL 占據(jù)損失的主導(dǎo)地位,隨著學(xué)習(xí)過程的進(jìn)行,交叉熵?fù)p失會(huì)逐漸占據(jù)主導(dǎo)地位.Li 等[78]將ProtoNCE 的思想帶入到SCL中,即在SCL的分子中計(jì)算每個(gè)樣本與其同類樣本所形成聚類中心之間的相似度.在該算法中,聚類中心直接由同類樣本的特征求平均值得到.最后,作者將上述損失與交叉熵分類損失聯(lián)合訓(xùn)練,獲得了較好的遙感圖像分類效果.

        半監(jiān)督混合損失.Li 等[79]設(shè)計(jì)了一個(gè)基于偽標(biāo)簽圖結(jié)構(gòu)對(duì)比學(xué)習(xí)方法CoMatch.CoMatch 方法采用三部分損失訓(xùn)練網(wǎng)絡(luò).對(duì)比學(xué)習(xí)網(wǎng)絡(luò)中的一個(gè)分支,對(duì)于有標(biāo)簽的數(shù)據(jù),采用交叉熵計(jì)算損失,得到分類模型.在對(duì)比學(xué)習(xí)網(wǎng)絡(luò)的另外一個(gè)分支,首先利用分類模型對(duì)無標(biāo)簽數(shù)據(jù)進(jìn)行預(yù)測(cè),產(chǎn)生軟標(biāo)簽,該分支對(duì)每個(gè)無標(biāo)注的數(shù)據(jù),進(jìn)行特征提取,并利用預(yù)測(cè)頭產(chǎn)生預(yù)測(cè)結(jié)果,當(dāng)樣本對(duì)應(yīng)的軟標(biāo)簽的置信度較高時(shí),采用交叉熵?fù)p失優(yōu)化網(wǎng)絡(luò),同時(shí),每個(gè)無標(biāo)簽的樣本還將采用InfoNCE 計(jì)算損失.Yang等[44]采用與CoMatch 相似的損失構(gòu)建方法,對(duì)有標(biāo)簽的數(shù)據(jù)采用交叉熵?fù)p失訓(xùn)練,對(duì)軟標(biāo)簽置信度高的無標(biāo)簽數(shù)據(jù)采用交叉熵訓(xùn)練,對(duì)其余數(shù)據(jù)采用InfoNCE 進(jìn)行對(duì)比學(xué)習(xí)訓(xùn)練,在該算法中,由于包含類感知模塊,可以獲得與當(dāng)前訓(xùn)練樣本相同類的樣本集合,因此對(duì)比學(xué)習(xí)損失部分采用實(shí)例InfoNCE和SCL 相結(jié)合的損失函數(shù).此外,Wang 等[43]將交叉熵?fù)p失和SCL 結(jié)合在一起,獲得了良好的效果.

        無監(jiān)督混合損失.Park 等[80]將對(duì)比學(xué)習(xí)損失融合到基于GAN 的圖像風(fēng)格遷移任務(wù)中,該方法對(duì)變換前后相同位置的圖像塊進(jìn)行對(duì)比學(xué)習(xí),將對(duì)比學(xué)習(xí)損失輔助于GAN 損失,訓(xùn)練圖像風(fēng)格遷移模型,獲得了良好的效果.

        其他混合損失.Rai 等[46]對(duì)于具有多視圖特征的數(shù)據(jù),對(duì)同一樣本在不同視角下的特征,分別采用InfoNCE、MSE和合頁損失計(jì)算這些特征之間的相似性,并將三個(gè)相似性度量結(jié)果進(jìn)行混合,用于網(wǎng)絡(luò)模型優(yōu)化.Kim 等[37]將Mixup 方法用在了對(duì)比學(xué)習(xí)中,該方法假定合成后的樣本同時(shí)屬于合成前的兩個(gè)樣本的類別,然后將合成樣本分別與合成前的樣本進(jìn)行對(duì)比學(xué)習(xí),得到兩個(gè)損失,這兩個(gè)損失的混合系數(shù)與合成圖像時(shí)所產(chǎn)生的混合系數(shù)一致.基于相似的InfoNCE 與交叉熵?fù)p失結(jié)合的思想,Kumar 等[41]解決了無監(jiān)督視頻動(dòng)作分割問題,Yang 等[81]解決了文本-圖像跨模態(tài)特征提取問題,Dong 等[82]實(shí)現(xiàn)對(duì)五種模態(tài)數(shù)據(jù)的跨模態(tài)特征提取.

        2.6 相關(guān)應(yīng)用

        對(duì)比學(xué)習(xí)在分類、分割、預(yù)測(cè)等下游任務(wù)中均有重要應(yīng)用.本文針對(duì)每種下游任務(wù),按照數(shù)據(jù)的類型,介紹相關(guān)的應(yīng)用.本文將數(shù)據(jù)的類型概括為靜態(tài)數(shù)據(jù)和序列數(shù)據(jù),其中靜態(tài)數(shù)據(jù)主要有圖像、關(guān)系型數(shù)據(jù)、點(diǎn)云和圖結(jié)構(gòu)等類型,序列數(shù)據(jù)主要有視頻、音頻、信號(hào)等類型.

        2.6.1 分類任務(wù)

        分類任務(wù)是對(duì)比學(xué)習(xí)最常見的下游應(yīng)用.在靜態(tài)數(shù)據(jù)中,針對(duì)圖像分類任務(wù),Hou 等[83]提出基于對(duì)比學(xué)習(xí)的半監(jiān)督高光譜圖像分類算法,解決有標(biāo)注數(shù)據(jù)不足時(shí)高光譜圖像分類問題.該算法分為2個(gè)階段對(duì)模型進(jìn)行訓(xùn)練,第1 階段,對(duì)于無標(biāo)簽樣本,利用對(duì)比學(xué)習(xí)方法對(duì)模型進(jìn)行預(yù)訓(xùn)練.第2 階段,利用有標(biāo)注的樣本對(duì)模型進(jìn)行監(jiān)督學(xué)習(xí).針對(duì)小樣本遙感場(chǎng)景分類問題,Li 等[78]將無監(jiān)督對(duì)比學(xué)習(xí)方法融合到小樣本學(xué)習(xí)的框架中,提高了模型的特征提取能力.郭東恩等[84]將監(jiān)督對(duì)比學(xué)習(xí)方法引入到遙感圖像場(chǎng)景分類任務(wù)中,通過監(jiān)督對(duì)比學(xué)習(xí)預(yù)訓(xùn)練,提高了遙感圖像分類精度.Aberdam 等[85]將對(duì)比學(xué)習(xí)應(yīng)用到文本圖像識(shí)別任務(wù).由于對(duì)文本圖像采用隨機(jī)增廣的方法可能會(huì)導(dǎo)致文本內(nèi)容的丟失等問題,因此,作者首先設(shè)計(jì)可對(duì)齊的文本圖像增廣技術(shù),然后,基于同步對(duì)稱網(wǎng)絡(luò)架構(gòu)進(jìn)行對(duì)比學(xué)習(xí)訓(xùn)練,最終提高了文本圖像識(shí)別的準(zhǔn)確率.在細(xì)粒度分類問題中,Zhang 等[86]直接采用數(shù)據(jù)集中包含的分層語義標(biāo)簽,利用SCL 損失構(gòu)建了一個(gè)細(xì)粒度分類對(duì)比學(xué)習(xí)算法.對(duì)遙感圖像數(shù)據(jù)而言,同一個(gè)地理位置的圖像語義信息幾乎不隨時(shí)間的變化而變化.基于該特點(diǎn),Ayush 等[39]設(shè)計(jì)了一個(gè)針對(duì)遙感圖像的對(duì)比學(xué)習(xí)方法,該方法將同一地理位置不同時(shí)間的兩幅圖像作為對(duì)比學(xué)習(xí)中的正樣本對(duì).基于MoCo 架構(gòu),該方法將圖像定位的代理任務(wù)添加到其中一個(gè)分支的特征提取網(wǎng)絡(luò)之后,輔助模型訓(xùn)練,從而提高了下游任務(wù)的預(yù)測(cè)性能.

        盧紹帥等[87]將監(jiān)督對(duì)比學(xué)習(xí)應(yīng)用到了文本數(shù)據(jù)的情感分類研究中.在弱監(jiān)督預(yù)訓(xùn)練階段,采用三元組損失預(yù)訓(xùn)練模型;隨后,在下游的分類器訓(xùn)練階段,采用SCL 損失和交叉熵?fù)p失聯(lián)合優(yōu)化網(wǎng)絡(luò),獲得更好的分類結(jié)果.

        在序列數(shù)據(jù)的分類中,也涌現(xiàn)出了一些基于對(duì)比學(xué)習(xí)的算法.李巍華等[88]將MoCo 方法遷移到故障信號(hào)診斷研究領(lǐng)域中,首先,通過對(duì)信號(hào)進(jìn)行無監(jiān)督對(duì)比學(xué)習(xí)預(yù)訓(xùn)練,獲得良好的特征提取網(wǎng)絡(luò).然后,再進(jìn)行分類網(wǎng)絡(luò)訓(xùn)練,解決了信號(hào)故障診斷問題.

        自監(jiān)督對(duì)比學(xué)習(xí)的訓(xùn)練通常分為兩個(gè)獨(dú)立的階段,即特征提取網(wǎng)絡(luò)訓(xùn)練和分類器訓(xùn)練.在分類器訓(xùn)練階段,有是否凍結(jié)特征提取網(wǎng)絡(luò)參數(shù)的兩種選擇.Wang 等[77]認(rèn)為這種兩階段的學(xué)習(xí)方式會(huì)損害特征提取網(wǎng)絡(luò)和分類器的兼容性,因此提出一個(gè)混合框架進(jìn)行特征提取和分類器的聯(lián)合學(xué)習(xí).該方法的對(duì)比學(xué)習(xí)部分采用同步對(duì)稱網(wǎng)絡(luò)架構(gòu),并在特征提取網(wǎng)絡(luò)后面加入一個(gè)分類器.在訓(xùn)練過程中,通過一個(gè)平滑因子來調(diào)整兩個(gè)損失的權(quán)重,使得對(duì)比學(xué)習(xí)在訓(xùn)練開始時(shí)起主導(dǎo)作用,隨著訓(xùn)練時(shí)間的推移,分類器學(xué)習(xí)過程逐漸主導(dǎo)訓(xùn)練.

        2.6.2 分割任務(wù)

        分割任務(wù)指的是對(duì)圖像的語義分割、實(shí)例分割,視頻中的動(dòng)作分割等任務(wù).圖像分割任務(wù)關(guān)注像素級(jí)的分類,因此在此類任務(wù)中,特征提取網(wǎng)絡(luò)能否學(xué)習(xí)到良好的局部特征至關(guān)重要.Wang 等[89]為了更好地學(xué)習(xí)到圖像的局部空間特征,提出密集對(duì)比學(xué)習(xí)算法 (Dense contrastive learning,DenseCL).該方法提出全局對(duì)比學(xué)習(xí)框架和局部對(duì)比學(xué)習(xí)框架,每個(gè)框架均采用同步對(duì)稱網(wǎng)絡(luò)架構(gòu),兩個(gè)框架共享同一個(gè)特征提取網(wǎng)絡(luò).其中,局部對(duì)比學(xué)習(xí)框架對(duì)卷積得到的特征取消拉平操作,從而保留特征的空間信息,使得學(xué)習(xí)到的特征提取網(wǎng)絡(luò)更適合于分割任務(wù).在醫(yī)學(xué)圖像分割領(lǐng)域,由于數(shù)據(jù)的標(biāo)注過程非常依賴專家知識(shí),獲取大量的有標(biāo)注數(shù)據(jù)代價(jià)十分高昂,因此,如何利用大量的無標(biāo)簽醫(yī)學(xué)數(shù)據(jù)訓(xùn)練圖像分割模型是一個(gè)很重要的研究問題.Chaitanya 等[57]將對(duì)比學(xué)習(xí)的思想應(yīng)用到該領(lǐng)域,提出基于自編碼器框架的全局-局部對(duì)比學(xué)習(xí)網(wǎng)絡(luò),在該方法中,全局對(duì)比學(xué)習(xí)目標(biāo)是學(xué)習(xí)圖像的全局語義信息,局部對(duì)比學(xué)習(xí)目標(biāo)是學(xué)習(xí)局部特征信息.全局網(wǎng)絡(luò)和局部網(wǎng)絡(luò)共享同一個(gè)編碼器.醫(yī)學(xué)圖像中有一個(gè) “卷” (Volume) 的概念,對(duì)于全局網(wǎng)絡(luò),正樣本對(duì)來自于同一幅圖像的不同卷.對(duì)于局部網(wǎng)絡(luò),正樣本對(duì)來自同一幅圖像編碼后特征的同一個(gè)空間位置.兩個(gè)分支均采用InfoNCE 進(jìn)行損失計(jì)算.康健等[90]采用監(jiān)督對(duì)比學(xué)習(xí)方法解決高分辨率SAR 圖像的分割問題,通過改進(jìn)的SCL損失提高同類建筑像素特征之間的相關(guān)性,最終提高模型對(duì)建筑物的分割精度.Wang 等[91]在Mask RCNN[92]框架中加入對(duì)比學(xué)習(xí)模塊,提高了像素級(jí)特征的可分辨能力,獲得更好的圖像分割結(jié)果.

        在視頻動(dòng)作分割問題中,Kumar 等[41]提出基于對(duì)比學(xué)習(xí)的無監(jiān)督視頻動(dòng)作分割方法.該方法對(duì)SwAV 算法進(jìn)行改進(jìn),且不需要圖像增廣,利用 “視頻數(shù)據(jù)的相鄰幀為同類樣本”這一假設(shè),將相鄰幀的圖像作為正樣本對(duì)進(jìn)行對(duì)比學(xué)習(xí),完成視頻動(dòng)作分割任務(wù).

        2.6.3 視頻及關(guān)系數(shù)據(jù)預(yù)測(cè)任務(wù)

        在視頻預(yù)測(cè)問題中,研究者使用密集預(yù)測(cè)編碼(Dense predictive coding,DPC)[53],預(yù)測(cè)視頻未來幀的信息.Han 等[42]將DPC 與存儲(chǔ)庫(kù)思想結(jié)合起來,提出存儲(chǔ)增強(qiáng)密集預(yù)測(cè)編碼方法,該方法將視頻的特征保存到存儲(chǔ)庫(kù)模塊中,并設(shè)計(jì)了存儲(chǔ)庫(kù)尋址機(jī)制.通過該存儲(chǔ)庫(kù)模塊的設(shè)計(jì),網(wǎng)絡(luò)在訓(xùn)練過程中能夠考慮更長(zhǎng)時(shí)間段的特征,使預(yù)測(cè)結(jié)果更好.此外,為了更好地捕捉到視頻中的重要信息,Zhang 等[93]提出對(duì)編碼視頻同時(shí)進(jìn)行幀間以及幀內(nèi)的對(duì)比學(xué)習(xí),Han 等[53]對(duì)不同視角的特征進(jìn)行對(duì)比學(xué)習(xí).

        Bahri 等[94]將對(duì)比學(xué)習(xí)方法應(yīng)用到了關(guān)系型數(shù)據(jù)預(yù)測(cè)任務(wù)中.為了構(gòu)建訓(xùn)練所需的正樣本對(duì),作者提出了一種面向關(guān)系型數(shù)據(jù)的增廣方法.該方法受啟發(fā)于關(guān)系型數(shù)據(jù)中同一維度 (屬性) 下的信息語義相同的特點(diǎn),先在輸入樣本的對(duì)應(yīng)維度上隨機(jī)抹除一部分?jǐn)?shù)據(jù),然后,從其他樣本的相同維度的數(shù)據(jù)中隨機(jī)抽取信息填充到當(dāng)前輸入樣本被抹除的位置中,最后,基于同步對(duì)稱架構(gòu)的網(wǎng)絡(luò)進(jìn)行對(duì)比學(xué)習(xí).訓(xùn)練得到的模型可用于預(yù)測(cè)關(guān)系型數(shù)據(jù)中丟失區(qū)域的信息.

        2.6.4 長(zhǎng)尾識(shí)別任務(wù)

        粗略地說,長(zhǎng)尾數(shù)據(jù)是指尾部類眾多的不均衡數(shù)據(jù),而長(zhǎng)尾學(xué)習(xí)的主要研究目標(biāo)是提升尾部類的識(shí)別正確率.最近幾年,研究者們開始嘗試將對(duì)比學(xué)習(xí)的思想和技術(shù)應(yīng)用到長(zhǎng)尾學(xué)習(xí)任務(wù)中.

        文獻(xiàn)[95]提出K-正樣本對(duì)比損失 (K-positive contrastive loss,KCL),將對(duì)比學(xué)習(xí)與長(zhǎng)尾識(shí)別任務(wù)結(jié)合起來.具體而言,在長(zhǎng)尾學(xué)習(xí)的特征學(xué)習(xí)階段,KCL 使用對(duì)比學(xué)習(xí)方法,但每個(gè)訓(xùn)練樣本僅隨機(jī)選取K個(gè)同類樣本.而在后續(xù)的分類器訓(xùn)練階段,仍采用傳統(tǒng)的交叉熵?fù)p失,但使用類均衡采樣,以平衡不同類的樣本量、提升少數(shù)類的分類準(zhǔn)確度.文獻(xiàn)[96]提出目標(biāo)監(jiān)督對(duì)比學(xué)習(xí) (Targeted supervised contrastive learning,TSC) 方法,將監(jiān)督對(duì)比學(xué)習(xí)用于長(zhǎng)尾識(shí)別的任務(wù)中.該方法首先在特征空間中設(shè)定均勻分布的聚類中心,然后,在KCL 損失的基礎(chǔ)上,增加樣本到其聚類中心之間的距離計(jì)算的損失項(xiàng),以將樣本逼近其聚類中心,使得不同類別之間的分類界限更加清晰.

        文獻(xiàn)[97]提出平衡對(duì)比學(xué)習(xí)損失 (Balanced contrastive learning,BCL),用于長(zhǎng)尾識(shí)別.該方法將類別中心加入到對(duì)比學(xué)習(xí)計(jì)算中,并求批中每個(gè)類別的樣本的梯度的平均值,以減少多數(shù)類樣本在梯度方面的影響.

        2.6.5 其他任務(wù)

        對(duì)比學(xué)習(xí)除了在分類、分割、預(yù)測(cè)這些任務(wù)中有廣泛的應(yīng)用以外,在多模態(tài)學(xué)習(xí)任務(wù)中,也有重要作用.多模態(tài)學(xué)習(xí)任務(wù)通常包含兩大類子問題,即模態(tài)內(nèi)的特征學(xué)習(xí)問題和模態(tài)間特征對(duì)齊問題.

        Yang 等[81]提出了一種視覺-語言跨模態(tài)對(duì)比學(xué)習(xí)方法.該方法提出將對(duì)比學(xué)習(xí)方法應(yīng)用于模態(tài)內(nèi)特征提取網(wǎng)絡(luò)的訓(xùn)練,使各模態(tài)的特征提取網(wǎng)絡(luò)能力更強(qiáng),解決了跨模態(tài)學(xué)習(xí)過程中模態(tài)內(nèi)的特征學(xué)習(xí)問題.Dong 等[82]將對(duì)比學(xué)習(xí)運(yùn)用在包含5 個(gè)模態(tài)數(shù)據(jù)的模型訓(xùn)練中.針對(duì)模態(tài)內(nèi)特征學(xué)習(xí)問題,該方法采用掩碼恢復(fù)任務(wù)作為模態(tài)內(nèi)模型的代理任務(wù).然后,針對(duì)不同模態(tài)特征之間的對(duì)齊問題,設(shè)計(jì)模態(tài)間對(duì)比學(xué)習(xí)模塊,利用模態(tài)間的對(duì)齊得分矩陣衡量不同模態(tài)間信息的相似度,進(jìn)行更好的對(duì)比學(xué)習(xí).Afham 等[98]將對(duì)比學(xué)習(xí)算法引入到3D 點(diǎn)云表示學(xué)習(xí)中.該模型采用兩個(gè)并行的對(duì)比學(xué)習(xí)方法,其中一個(gè)對(duì)比學(xué)習(xí)方法基于SimCLR 網(wǎng)絡(luò)結(jié)構(gòu),在點(diǎn)云數(shù)據(jù)內(nèi)部進(jìn)行對(duì)比學(xué)習(xí),另一個(gè)對(duì)比學(xué)習(xí)方法引入二維圖像數(shù)據(jù),將點(diǎn)云數(shù)據(jù)與對(duì)應(yīng)的二維圖像數(shù)據(jù)進(jìn)行跨模態(tài)的對(duì)比學(xué)習(xí).

        Laskin 等[99]將對(duì)比學(xué)習(xí)結(jié)合到強(qiáng)化學(xué)習(xí)中,用于提高特征提取網(wǎng)絡(luò)的能力.該方法基于MoCo 架構(gòu),分支1 的輸出,送入強(qiáng)化學(xué)習(xí)中;分支1和分支2 的輸出,組對(duì)送入對(duì)比學(xué)習(xí)中.

        3 綜合對(duì)比分析

        本節(jié)根據(jù)前文提出的對(duì)比學(xué)習(xí)歸類方法,對(duì)現(xiàn)有的方法進(jìn)行歸納匯總和整體分析.表4 匯總了代表性的對(duì)比學(xué)習(xí)方法及其所屬歸類 (包括具體樣本對(duì)構(gòu)造、圖像增廣方法、網(wǎng)絡(luò)架構(gòu)類型和損失函數(shù)).另外,本節(jié)還對(duì)代表性對(duì)比學(xué)習(xí)方法的性能進(jìn)行了對(duì)比分析.

        3.1 整體分析

        表4 以時(shí)間為序,依據(jù)前文提出的歸類方法,對(duì)主要的深度對(duì)比學(xué)習(xí)算法進(jìn)行歸納匯總,從樣本對(duì)構(gòu)造、圖像增廣、網(wǎng)絡(luò)架構(gòu)和損失函數(shù)4 個(gè)層面進(jìn)行分析.該表的最后一列主要是為了區(qū)分是否為有監(jiān)督對(duì)比學(xué)習(xí)方法,“無標(biāo)簽”表示數(shù)據(jù)無標(biāo)注,對(duì)應(yīng)無監(jiān)督對(duì)比學(xué)習(xí)方法,“部分標(biāo)簽”表示半監(jiān)督對(duì)比學(xué)習(xí)算法,而 “有標(biāo)簽”表示監(jiān)督對(duì)比學(xué)習(xí)算法.

        表4 對(duì)比學(xué)習(xí)方法整體歸類分析Table 4 Analysis of different contrastive learning methods based on our proposed taxonomy

        圖14 從宏觀上統(tǒng)計(jì)各細(xì)分類所采用方法的占比情況.其中,1) 在樣本對(duì)構(gòu)造層,最常采用的為隨機(jī)采樣方法,即將數(shù)據(jù)集打亂順序,從其中隨機(jī)抽樣一個(gè)批次進(jìn)行訓(xùn)練.但其它樣本對(duì)構(gòu)造方法越來越受到研究者的關(guān)注 (尤其是正樣本擴(kuò)充和困難樣本構(gòu)造類方法);2) 在網(wǎng)絡(luò)架構(gòu)層,最常用的是同步對(duì)稱網(wǎng)絡(luò)架構(gòu),但以MoCo 為代表的異步對(duì)稱網(wǎng)絡(luò)架構(gòu)和同步非對(duì)稱網(wǎng)絡(luò)架構(gòu)也得到了大量關(guān)注;3) 在損失函數(shù)層面,最常用的是InfoNCE 損失函數(shù)及其變種,占比約70%,但隨著對(duì)比學(xué)習(xí)下游應(yīng)用的發(fā)展,混合損失函數(shù)不斷涌現(xiàn);4) 在應(yīng)用領(lǐng)域?qū)用?目前對(duì)比學(xué)習(xí)最常用于無監(jiān)督學(xué)習(xí)領(lǐng)域,但也有越來越多的工作將其應(yīng)用在有監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)中.需要說明的是,在圖像增廣層,大部分工作都是直接采用簡(jiǎn)單的圖像變換方法,而數(shù)據(jù)合成及圖像語義增強(qiáng)方法較少,故未對(duì)其進(jìn)行可視化展示.

        圖14 不同類型的對(duì)比學(xué)習(xí)方法統(tǒng)計(jì)展示Fig.14 The statistical results of different contrastive learning methods

        分析不同對(duì)比學(xué)習(xí)方法隨時(shí)間演進(jìn)的規(guī)律,發(fā)現(xiàn)對(duì)比學(xué)習(xí)呈現(xiàn)以下發(fā)展趨勢(shì):從樣本對(duì)構(gòu)造層面來看,對(duì)比學(xué)習(xí)從一開始需要大批次采樣負(fù)樣本,發(fā)展到通過隊(duì)列采樣負(fù)樣本,再發(fā)展到不需要負(fù)樣本的對(duì)比學(xué)習(xí)方法,以減輕對(duì)比學(xué)習(xí)對(duì)計(jì)算資源的要求,這亦是其必須解決的關(guān)鍵問題之一.

        從網(wǎng)絡(luò)架構(gòu)層面來看,對(duì)比學(xué)習(xí)有以下發(fā)展趨勢(shì):最初的對(duì)比學(xué)習(xí)架構(gòu)主要采用同步對(duì)稱和異步對(duì)稱架構(gòu),但隨著BYOL和SimSiam 等異步非對(duì)稱網(wǎng)絡(luò)發(fā)展,因其只需要正樣本和小批次數(shù)據(jù)就能進(jìn)行對(duì)比學(xué)習(xí)訓(xùn)練的優(yōu)點(diǎn),這種網(wǎng)絡(luò)架構(gòu)得到了越來越多的關(guān)注.同時(shí),由于聚類方法能夠有效地提取數(shù)據(jù)的語義信息,因此聚類方法與上述4 種架構(gòu)的結(jié)合也越來越受到研究者的關(guān)注,并得到了一定的發(fā)展.此外,所采用的主干網(wǎng)絡(luò)的結(jié)構(gòu)也逐漸從卷積神經(jīng)網(wǎng)絡(luò)向Transformer 過渡.從損失函數(shù)層面來看,對(duì)比學(xué)習(xí)呈以下發(fā)展趨勢(shì):從初始的InfoNCE 損失函數(shù)發(fā)展到各種變種,再到嘗試采用多種傳統(tǒng)損失函數(shù)進(jìn)行對(duì)比學(xué)習(xí),再到混合多種不同類型的損失函數(shù)進(jìn)行訓(xùn)練,以提升模型的性能.

        從下游任務(wù)來看,對(duì)比學(xué)習(xí)從開始時(shí)只關(guān)注圖像分類,逐漸向視頻分析、遙感圖像處理、醫(yī)學(xué)影像分析、文本分析和多模態(tài)學(xué)習(xí)等任務(wù)拓展,且具有進(jìn)一步的發(fā)展空間.

        3.2 不同對(duì)比方法的性能分析

        本部分內(nèi)容將不同對(duì)比學(xué)習(xí)算法在常用數(shù)據(jù)集上的性能表現(xiàn)進(jìn)行對(duì)比和分析.

        1) 圖像分類.圖像分類是最常見的下游任務(wù),現(xiàn)有方法通常在ImageNet 數(shù)據(jù)集上采用第1.6 節(jié)中給出的線性評(píng)估方法進(jìn)行比較.表5 給出了不同算法在ImageNet 數(shù)據(jù)集上的分類準(zhǔn)確度.可以觀察到,在ImageNet 數(shù)據(jù)集上的分類任務(wù)中,在無監(jiān)督學(xué)習(xí)中,SwAV 方法獲得了最佳的分類效果,在有監(jiān)督學(xué)習(xí)中,PaCo 獲得了最好的效果.除了ImageNet 之外,常用于圖像分類評(píng)估的數(shù)據(jù)集還有Cifar10和Cifar100,Food101,Birdsnap,Sun397,Cars,Aircraft,DTD,Pets,Caltech-101,Flowers等.為全面評(píng)估對(duì)比學(xué)習(xí)方法得到模型的可遷移性能,在這些數(shù)據(jù)集上采用第1.6 節(jié)中給出的評(píng)估方法進(jìn)行對(duì)比分析,其中,主干網(wǎng)絡(luò)模型均采用Res-Net50,在ImageNet 數(shù)據(jù)集上訓(xùn)練得到.結(jié)果如表6所示.表中VOC07 采用mAP (Mean average precision) 指標(biāo)進(jìn)行驗(yàn)證,Aircraft、Pets、Caltech和Flowers 數(shù)據(jù)集采用平均準(zhǔn)確率 (Mean per class accuracy) 進(jìn)行驗(yàn)證,其余數(shù)據(jù)集采用Top 1 分類進(jìn)度進(jìn)行驗(yàn)證.半監(jiān)督學(xué)習(xí)根據(jù)所采用的有標(biāo)注數(shù)據(jù)的比例進(jìn)行分類性能的評(píng)估.如表7 所示,1%指的是訓(xùn)練過程中使用了1%的有標(biāo)注數(shù)據(jù),10%指的是訓(xùn)練過程中使用了10%的有標(biāo)注數(shù)據(jù).其中,所有方法采用的主干網(wǎng)絡(luò)均為ResNet50.整體而言,SimCLRv2 取得了最佳的半監(jiān)督分類效果.

        表5 不同對(duì)比學(xué)習(xí)算法在ImageNet 數(shù)據(jù)集上的分類效果Table 5 The classification results of different contrastive learning methods on ImageNet

        表7 不同半監(jiān)督對(duì)比學(xué)習(xí)算法在ImageNet 上的分類效果Table 7 The classification results of different semi-supervised contrastive learning methods on ImageNet

        2) 圖像檢測(cè)和分割.在圖像檢測(cè)和分割任務(wù)中,VOC和COCO 數(shù)據(jù)集是較為常用的數(shù)據(jù)集.不同對(duì)比學(xué)習(xí)算法在這兩個(gè)數(shù)據(jù)集上的分割性能在表8 中進(jìn)行了匯總展示.

        表8 中的所有模型均在ImageNet 數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,隨后在VOC 數(shù)據(jù)集或COCO 數(shù)據(jù)集上進(jìn)行微調(diào).表中所列出的算法均采用圖像變換方法進(jìn)行圖像增廣.網(wǎng)絡(luò)結(jié)構(gòu)方面,SimCLR 采用同步對(duì)稱結(jié)構(gòu),MoCo和DenseCL 采用異步對(duì)稱結(jié)構(gòu),BYOL和SimSiam 采用異步非對(duì)稱結(jié)構(gòu),SwAV采用聚類對(duì)比學(xué)習(xí)結(jié)構(gòu).損失函數(shù)層面,SimCLR、MoCo 以及DenseCL 均采用InfoNCE 損失函數(shù);BYOL、SwAV 及SimSiam 均采用傳統(tǒng)損失函數(shù)(如第2.5.2 節(jié)所述).

        表8 不同對(duì)比學(xué)習(xí)算法在圖像分割任務(wù)上的性能表現(xiàn)Table 8 The image segmentation results of different contrastive learning methods on VOC and COCO dataset

        由于DenseCL 在訓(xùn)練過程中加入了局部對(duì)比學(xué)習(xí)結(jié)構(gòu),使得學(xué)習(xí)到的模型對(duì)局部信息的提取能力提高,進(jìn)而提高了模型的檢測(cè)和分割能力,獲得了目前最好的圖像檢測(cè)和分割效果.

        4 現(xiàn)存挑戰(zhàn)和未來發(fā)展方向

        4.1 現(xiàn)存挑戰(zhàn)

        4.1.1 對(duì)比學(xué)習(xí)中的崩塌問題研究

        崩塌問題是對(duì)比學(xué)習(xí)研究中經(jīng)常會(huì)遇到的問題,崩塌包含兩種現(xiàn)象,第1 種稱為完全崩塌,第2種稱為維度崩塌.完全崩塌指的是對(duì)于任意輸入,模型會(huì)將其輸出到同一個(gè)特征向量上.維度崩塌是指特征向量只能占據(jù)特征空間的某一個(gè)子空間中的現(xiàn)象.完全崩塌如圖15(a)所示,維度崩塌如圖15(b)所示.

        圖15 完全崩塌與維度崩塌示例Fig.15 Example of complete collapse and dimensional collapse

        一般來說,有兩種辦法觀測(cè)網(wǎng)絡(luò)是否發(fā)生崩塌:1) 將訓(xùn)練好的特征提取網(wǎng)絡(luò)應(yīng)用到下游任務(wù),若下游任務(wù)表現(xiàn)不好,則可能出現(xiàn)崩塌.2) 特征提取網(wǎng)絡(luò)訓(xùn)練完成后,首先,將一個(gè)批次的測(cè)試數(shù)據(jù)進(jìn)行特征提取.然后,計(jì)算該批次特征矩陣的協(xié)方差矩陣.最后,對(duì)協(xié)方差矩陣進(jìn)行奇異值分解.如果奇異值矩陣對(duì)角線上的值在某一個(gè)維度開始發(fā)生斷層現(xiàn)象,則網(wǎng)絡(luò)發(fā)生了崩塌[72].

        對(duì)于采用負(fù)樣本進(jìn)行對(duì)比學(xué)習(xí)的方法來說,由于訓(xùn)練過程中網(wǎng)絡(luò)可以見到大量不同的負(fù)樣本,因此在一定程度上可以避免維度崩塌問題.而對(duì)于只采用正樣本進(jìn)行對(duì)比學(xué)習(xí)的算法來說,則需要一些特殊的設(shè)計(jì)以避免崩塌[4-6].SwAV 采用聚類的思想避免了不同的輸入輸出到同一個(gè)特征向量上的問題,從而防止了完全崩塌的出現(xiàn).BYOL 采用了非對(duì)稱的網(wǎng)絡(luò)設(shè)計(jì)和動(dòng)量更新方法避免網(wǎng)絡(luò)的完全崩塌.SimSiam 通過實(shí)驗(yàn)證明了,通過交叉梯度回傳,能夠有效的防止網(wǎng)絡(luò)完全崩塌.在避免維度崩塌問題上,有一些論文專門對(duì)其進(jìn)行研究和討論,根據(jù)這些論文的討論內(nèi)容,可以將其分為兩種思路,即緩解維度崩塌思路和避免維度崩塌思路.

        1) 緩解維度崩塌

        Jing 等[72]探討了對(duì)比學(xué)習(xí)中出現(xiàn)的維度崩塌問題,作者發(fā)現(xiàn),在對(duì)比學(xué)習(xí)中,強(qiáng)大的圖像增廣方法和隱式正則化可能是產(chǎn)生維度崩塌的原因.在該論文中,作者提出了一個(gè)簡(jiǎn)單有效的解決維度崩塌辦法:DirectCLR.DirectCLR 采用與SimCLR 相似的同步對(duì)稱網(wǎng)絡(luò)架構(gòu),但進(jìn)行了下述兩點(diǎn)改進(jìn):1) 拋棄投影頭.2) 在完成特征提取之后,只在特征向量的前d個(gè)維度上計(jì)算損失.對(duì)于這種方法的一個(gè)直觀的理解是:通過訓(xùn)練,將沒有崩塌的維度全部集中到前d個(gè)維度中去,因此最后在前d個(gè)維度上就沒有了崩塌問題.在這種理解下,超參數(shù)d的物理意義為沒有發(fā)生崩塌的子空間維度.

        DirectCLR 中的實(shí)驗(yàn)證明,與沒有投影頭的SimCLR 相比,DirectCLR 的效果要好一些.然而當(dāng)SimCLR 有一個(gè)兩層的非線性投影頭的時(shí)候,表現(xiàn)會(huì)比DirectCLR 要好很多.這個(gè)現(xiàn)象可能在一定程度上證明了如下觀點(diǎn):投影頭在對(duì)比學(xué)習(xí)方法中承擔(dān)著尋找無崩塌子空間的任務(wù).在該觀點(diǎn)下,首先,特征提取網(wǎng)絡(luò)將輸入樣本進(jìn)行特征提取,獲得特征矩陣.然后,投影頭將高維特征矩陣映射為低維投影矩陣.最后,在低維的投影空間中計(jì)算損失.通過一次投影頭的降維變換,將在高維特征空間中可能出現(xiàn)的崩塌現(xiàn)象轉(zhuǎn)移到?jīng)]有崩塌的低維投影空間中,從而保證了損失計(jì)算的有效性.

        2) 避免維度崩塌

        對(duì)維度崩塌的直觀理解是特征空間中的部分維度失去了信息.為了避免這種情況的出現(xiàn),Zbontar 等[101]等計(jì)算分支1 特征矩陣和分支2 特征矩陣的協(xié)方差矩陣,通過將協(xié)方差矩陣的學(xué)習(xí)目標(biāo)設(shè)計(jì)為同形狀的單位矩陣,來完成以下兩個(gè)目標(biāo):1) 保證每個(gè)維度信息的有效性.2) 消除不同維度之間信息的相關(guān)性.通過設(shè)計(jì)上述學(xué)習(xí)目標(biāo),在訓(xùn)練過程中,協(xié)方差矩陣的主對(duì)角線上的元素值會(huì)逐漸向1 靠近,其它元素的值會(huì)逐漸向0 靠近.由于協(xié)方差矩陣的主對(duì)角線元素可以代表該維度信息的信息量,大于0 可以保證該維度沒有發(fā)生崩塌,非對(duì)角線元素代表不同維度之間信息的相關(guān)性,等于0 即可保證各維度信息獨(dú)立.因此通過學(xué)習(xí),在避免維度崩塌出現(xiàn)的同時(shí)也消除了維度間的冗余性,使得訓(xùn)練過程更加穩(wěn)定有效.Hua 等[102]深度分析了自監(jiān)督學(xué)習(xí)中的特征崩塌問題,同樣提出特征去相關(guān)方法避免崩塌.

        Bardes 等[103]進(jìn)行了更加深入的探索,提出分別在分支1和分支2 的特征矩陣上采用與Zbontar類似的方法去除維度間的冗余性.與Zbontar 方法不同的是,Bardes 引入了特征矩陣的方差信息,當(dāng)某一個(gè)維度的方差信息向0 靠近時(shí),可以認(rèn)為該維度發(fā)生了崩塌,因此作者通過合頁損失使得每個(gè)維度的方差信息向超參數(shù)γ靠近,從而避免了崩塌.此外,該方法還引入了不變項(xiàng)約束,該約束采用MSE 損失減小同一個(gè)樣本在分支1 中特征和在分支2 中特征之間的距離.

        4.2 算法效率優(yōu)化

        在對(duì)比學(xué)習(xí)獲得成功的背后,因其需要大批次樣本參與學(xué)習(xí)的特點(diǎn),從而對(duì)計(jì)算資源和存儲(chǔ)資源產(chǎn)生較高要求,這在一定程度上限制了對(duì)比學(xué)習(xí)的發(fā)展.Bao 等[104]將對(duì)比學(xué)習(xí)過程中使用的負(fù)樣本數(shù)量N與分類任務(wù)訓(xùn)練過程進(jìn)行聯(lián)合分析,發(fā)現(xiàn)增加N的值可以使得分類損失的上界和下界之間的截距減小.這篇論文從理論角度解釋了負(fù)樣本數(shù)量與下游任務(wù)性能之間的關(guān)系,證明了在無監(jiān)督預(yù)訓(xùn)練階段使用的負(fù)樣本數(shù)量越大,對(duì)后續(xù)的分類任務(wù)的訓(xùn)練結(jié)果就越穩(wěn)定.Yeh 等[71]通過對(duì)InfoNCE損失求解梯度發(fā)現(xiàn)對(duì)比學(xué)習(xí)存在負(fù)正耦合效應(yīng).此處的負(fù)正耦合效應(yīng)指的是以下兩種情況:1) 當(dāng)正樣本對(duì)相似度高 (簡(jiǎn)單正樣本對(duì)) 時(shí),損失對(duì)負(fù)樣本回傳的梯度變小.2) 當(dāng)查詢樣本與所有負(fù)樣本相似度都很小 (簡(jiǎn)單負(fù)樣本) 時(shí),損失對(duì)正樣本回傳的梯度變小.以上兩種情況說明無論是訓(xùn)練中采用簡(jiǎn)單正樣本對(duì)或簡(jiǎn)單負(fù)樣本集均會(huì)造成訓(xùn)練效率低的問題.為了解決這個(gè)問題,論文提出解耦對(duì)比學(xué)習(xí)損失函數(shù)DCL.該損失去除了InfoNCE 中的負(fù)正耦合系數(shù),從而可以用更小的批次來訓(xùn)練對(duì)比學(xué)習(xí)網(wǎng)絡(luò),同時(shí)提高計(jì)算效率.除此以外,很多經(jīng)典的對(duì)比學(xué)習(xí)方法如BYOL,SimSiam 等都對(duì)訓(xùn)練批次大小進(jìn)行了不同的實(shí)驗(yàn).然而,如何利用更小的批次獲得更好的對(duì)比學(xué)習(xí)效果,這仍是未來的一個(gè)挑戰(zhàn).

        4.3 一致性與均勻性矛盾問題

        在對(duì)比學(xué)習(xí)中,由于輸出特征經(jīng)過正則化,因此所有圖像均會(huì)被映射到特征空間的單位超球面上.為了使模型具有良好的泛化能力,希望在超球面上分布的特征具有以下兩點(diǎn)特質(zhì):1) 同類樣本特征集合具有一致性;2) 所有特征分布具有均勻性[62].一致性指的是相同類的樣本特征應(yīng)當(dāng)集合在超球面的同一片區(qū)域內(nèi),均勻性指的是所有樣本的特征應(yīng)當(dāng)在超球面均勻分布,直觀理解如圖16 所示.避免神經(jīng)網(wǎng)絡(luò)崩塌的最好辦法就是同時(shí)滿足一致性和均勻性.均勻性有助于對(duì)比學(xué)習(xí)學(xué)習(xí)到可分離的特征,但是過度追求均勻性,將會(huì)導(dǎo)致一些語義相似的樣本的特征一定程度上互相遠(yuǎn)離.Wang 等[105]針對(duì)這個(gè)問題進(jìn)行詳細(xì)分析,認(rèn)為在對(duì)比學(xué)習(xí)訓(xùn)練中,一致性與均勻性是一個(gè)互相對(duì)抗的關(guān)系.該論文通過對(duì)InfoNCE 損失函數(shù)中的溫度參數(shù)τ進(jìn)行分析,發(fā)現(xiàn)溫度參數(shù)τ的取值影響一致性與均勻性的結(jié)果,因此對(duì)于采用InfoNCE 損失進(jìn)行對(duì)比學(xué)習(xí)的方法來說,溫度參數(shù)τ的取值對(duì)模型最終的表現(xiàn)非常重要.

        圖16 對(duì)比學(xué)習(xí)中一致性和均勻性的概念Fig.16 The concept of uniformity and alignment in contrastive learning

        4.4 未來發(fā)展方向

        本文在對(duì)目前的對(duì)比學(xué)習(xí)論文進(jìn)行歸納和總結(jié)后,認(rèn)為該研究領(lǐng)域還存在許多可以探索的問題,同時(shí)存在一些可以與其他領(lǐng)域互相借鑒和發(fā)展的方向,具有廣泛的研究前景,以下是對(duì)該領(lǐng)域發(fā)展的展望:

        1) 對(duì)比學(xué)習(xí)中樣本對(duì)的選擇方法仍存在發(fā)展空間,在訓(xùn)練過程中剔除假負(fù)樣本以及選擇合適的正樣本對(duì)能夠有效地提高特征學(xué)習(xí)網(wǎng)絡(luò)的學(xué)習(xí)效果.因此如何更加合理地剔除假負(fù)樣本和選擇正樣本對(duì)是一個(gè)值得研究的關(guān)鍵問題.

        2) 解決對(duì)比學(xué)習(xí)訓(xùn)練過程中的一致性與均勻性矛盾是一個(gè)十分重要的問題,如果該問題得到解決,能在很大程度上提高特征提取網(wǎng)絡(luò)在下游任務(wù)上的泛化能力.

        3) 主動(dòng)學(xué)習(xí)是一種通過最少的標(biāo)注樣本獲得最好的訓(xùn)練效果的學(xué)習(xí)技術(shù)[106].在深度主動(dòng)學(xué)習(xí)領(lǐng)域,網(wǎng)絡(luò)模型需要首先在一個(gè)含有標(biāo)簽的數(shù)據(jù)集L0上進(jìn)行預(yù)訓(xùn)練,然后通過查詢策略從無標(biāo)簽數(shù)據(jù)集U中篩選最有用的樣本給專家進(jìn)行標(biāo)注,最后更新當(dāng)前訓(xùn)練的有標(biāo)簽數(shù)據(jù)集L,采用L的數(shù)據(jù)繼續(xù)訓(xùn)練網(wǎng)絡(luò).重復(fù)以上過程直到標(biāo)注預(yù)算耗盡或觸發(fā)停止策略[106].對(duì)比學(xué)習(xí)是一種良好的模型預(yù)訓(xùn)練方法,可以自發(fā)的通過無標(biāo)簽數(shù)據(jù)或少量標(biāo)簽數(shù)據(jù)訓(xùn)練出特征提取模型,因此可以將對(duì)比學(xué)習(xí)算法引入到主動(dòng)學(xué)習(xí)的網(wǎng)絡(luò)模型預(yù)訓(xùn)練過程中,或作為輔助主動(dòng)學(xué)習(xí)挑選待標(biāo)注樣本的方法.

        4) 對(duì)比學(xué)習(xí)和無監(jiān)督域自適應(yīng)[107-108]的結(jié)合.在無監(jiān)督域自適應(yīng)問題中,源域數(shù)據(jù)存在標(biāo)簽,目標(biāo)域數(shù)據(jù)不存在標(biāo)簽,源域數(shù)據(jù)和目標(biāo)域數(shù)據(jù)分布相近或相同,且擁有相同的任務(wù)[107],如何將源域數(shù)據(jù)和目標(biāo)域數(shù)據(jù)一同訓(xùn)練,使得模型能夠在目標(biāo)域上獲得良好的效果是無監(jiān)督域自適應(yīng)的核心問題.在無監(jiān)督域自適應(yīng)研究中,源域數(shù)據(jù)和目標(biāo)域數(shù)據(jù)可以通過自監(jiān)督訓(xùn)練方法聯(lián)合訓(xùn)練模型,對(duì)比學(xué)習(xí)就是一種先進(jìn)的自監(jiān)督訓(xùn)練算法,因此如何將對(duì)比學(xué)習(xí)方法與無監(jiān)督域自適應(yīng)方法進(jìn)行有效結(jié)合是一個(gè)值得研究的問題.

        5) 目前對(duì)比學(xué)習(xí)主要的下游應(yīng)用是分類任務(wù),如何設(shè)計(jì)更多的對(duì)比學(xué)習(xí)方法應(yīng)用到檢測(cè)、追蹤等下游任務(wù)中,也將是未來的發(fā)展方向之一.

        5 結(jié)束語

        對(duì)比學(xué)習(xí)是近年的研究熱點(diǎn).本文系統(tǒng)梳理了對(duì)比學(xué)習(xí)的研究現(xiàn)狀,提出一種將現(xiàn)有方法劃分為樣本對(duì)構(gòu)造層、圖像增廣層、網(wǎng)絡(luò)架構(gòu)層、損失函數(shù)層和應(yīng)用層的歸類方法,并從自監(jiān)督對(duì)比學(xué)習(xí)算法入手,分析和歸納近四年主要的對(duì)比學(xué)習(xí)方法.而且,本文還全面對(duì)比了不同方法在各種下游任務(wù)中的性能表現(xiàn),指出了對(duì)比學(xué)習(xí)現(xiàn)存的挑戰(zhàn),勾勒了其未來發(fā)展方向.對(duì)比學(xué)習(xí)研究作為一個(gè)快速發(fā)展的研究領(lǐng)域,在理論依據(jù)、模型設(shè)計(jì)、損失函數(shù)設(shè)計(jì)及與下游任務(wù)結(jié)合等方面還有較大的研究空間.

        猜你喜歡
        分支架構(gòu)損失
        基于FPGA的RNN硬件加速架構(gòu)
        少問一句,損失千金
        胖胖損失了多少元
        功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實(shí)踐
        汽車工程(2021年12期)2021-03-08 02:34:30
        巧分支與枝
        玉米抽穗前倒伏怎么辦?怎么減少損失?
        一類擬齊次多項(xiàng)式中心的極限環(huán)分支
        LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
        一般自由碰撞的最大動(dòng)能損失
        一種基于FPGA+ARM架構(gòu)的μPMU實(shí)現(xiàn)
        精品人妻一区二区三区蜜桃| 国产色在线 | 亚洲| 国产精品久久久久久久免费看| 一级毛片不卡在线播放免费| 国内色精品视频在线网址| 日本一二三区免费在线| 欧美69久成人做爰视频| 欧美国产日韩a在线视频| 国产韩国精品一区二区三区| 99青青草视频在线观看| 色五月丁香五月综合五月| 欧美亚洲精品一区二区| 精品视频在线观看一区二区三区| 91亚洲免费在线观看视频 | 日本大肚子孕妇交xxx| 日韩欧美在线综合网| 亚洲色四在线视频观看| 亚洲精品一区二区三区四区久久| 久久人妻无码一区二区| 日本55丰满熟妇厨房伦| 日本护士一区二区三区高清热线| 中文字幕av人妻少妇一区二区| 一进一出一爽又粗又大| 国产成人精品三级91在线影院| 久久国产精品av在线观看| 免费观看91色国产熟女| 亚洲色丰满少妇高潮18p| 国产日韩精品一区二区在线观看播放| 亚洲最大不卡av网站| 亚洲色欲久久久综合网东京热| 无码人妻精品一区二区三18禁| 亚洲一区不卡在线导航| 24小时在线免费av| 久久久久人妻一区精品色欧美| 亚洲VA不卡一区| 在线不卡精品免费视频| 国产av一区二区精品凹凸| 在线看亚洲十八禁网站| 中文在线最新版天堂av| 99精品国产在热久久无毒不卡| 亚洲一区精品无码色成人|