<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>

          這可能是最簡(jiǎn)單又有效的自監(jiān)督學(xué)習(xí)方法了

          共 3881字,需瀏覽 8分鐘

           ·

          2021-03-31 20:34

          點(diǎn)擊上方“程序員大白”,選擇“星標(biāo)”公眾號(hào)

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

          轉(zhuǎn)載自 | 夕小瑤的賣萌屋

          文 | 王珣@知乎

          從Kaiming的MoCo和Hinton組Chen Ting的SimCLR開始,自監(jiān)督學(xué)習(xí)(SSL)成了計(jì)算機(jī)視覺的熱潮顯學(xué)。凡是大佬大組(Kaiming, VGG,MMLAB等),近兩年都是搞了幾個(gè)自監(jiān)督方法的。從一開始的新奇興奮地看著Arxiv上新發(fā)布的SSL方法(像MoCo, SwAV, BYOL, SimSiam等這些方法著實(shí)有趣),但是有一些相關(guān)的文章多少有些泛濫了,讓人有些眼花繚亂。最近FAIR的一個(gè)工作,著實(shí)讓我眼前一亮,覺得好有意思,頗為嘆服。關(guān)鍵的是這個(gè)方法特別簡(jiǎn)單,應(yīng)當(dāng)可以稱之為最簡(jiǎn)單的SSL。

          論文題目:
          Barlow Twins: Self-Supervised Learning via Redundancy Reduction

          論文鏈接:
          https://arxiv.org/abs/2103.03230.pdf

          藉此機(jī)會(huì),我也自己梳理一下SSL在這不到兩年的時(shí)間里的個(gè)人認(rèn)為比較重要的認(rèn)知變化的節(jié)點(diǎn):從SimCLR,MoCo為起點(diǎn),以這篇BarLow Twins為暫時(shí)的終點(diǎn)。從這個(gè)歷史線上去看SSL的發(fā)展非常有趣:計(jì)算機(jī)視覺圈子對(duì)于SSL的認(rèn)知在不斷打臉的過(guò)程中不斷深入。

          1.首先是2020年初的SimCLR

          這個(gè)文章的核心貢獻(xiàn)有二:一是提供了使用google的豐富的計(jì)算資源和強(qiáng)大的工程能力,使用高達(dá)4096的mini-batch size,把SSL的效果推到了supervised方法差不多的效果(預(yù)訓(xùn)練模型做下游任務(wù));二是細(xì)致地整理了一些對(duì)SSL效果提升很有用的tricks: 如更長(zhǎng)的訓(xùn)練,多層MLP的projector以及更強(qiáng)的data augmentations。這些有用的trick在后來(lái)的SSL的論文中一直被沿用,是SSL發(fā)展的基石,而第一個(gè)點(diǎn),則是指出了大batch-size出奇跡,為未來(lái)的論文指出了改進(jìn)的路,或者樹立了一個(gè)進(jìn)擊的靶子。

          2.MoCo 共有兩版本

          原始版本是2019年末放出來(lái)的。在SimCLR出現(xiàn)后之后,又吸收SimCLR的幾個(gè)SSL小技巧,改進(jìn)出了V2版,但是整體方法的核心是沒有變化的,V2僅僅是一個(gè)2頁(yè)試驗(yàn)報(bào)告。相比于SimCLR大力出奇跡,愷明設(shè)計(jì)了一個(gè)巧妙的momentum encoder 和 dynamic queue 去獲得大量的負(fù)樣本。這里的momentum encoder 采用了動(dòng)量更新機(jī)制,除了文章本身的分析,另一層的理解是:其實(shí)momentum encoder相當(dāng)于是teacher, 而dynamic里是來(lái)自不同mini-batch的樣本,所以teacher需要在時(shí)間維度上對(duì)于同一個(gè)樣本的輸出具有一致性,否則,要學(xué)習(xí)的encoder 也就是student,會(huì)沒有一個(gè)穩(wěn)定的學(xué)習(xí)目標(biāo),難以收斂;當(dāng)然另一方面,teacher 也不能一直不變,如果teacher一直不變,student就是在向一個(gè)隨機(jī)的teacher學(xué)習(xí)。綜上,動(dòng)量更新機(jī)制是一個(gè)相當(dāng)好理解的選擇。

          階段小結(jié)

          拋開細(xì)節(jié),SimCLR和MoCo的核心點(diǎn),都是認(rèn)為negatives(負(fù)樣本) 非常重要,一定要有足夠多的負(fù)樣本,只不過(guò)實(shí)現(xiàn)方式略有不同。SimCLR 拿著TPU,直接把batch size搞到4096,一力降十會(huì);愷明則是巧妙設(shè)計(jì)Momentum機(jī)制,避開了硬件工程的限制,做出了可以飛入尋常百姓家的MoCo。再次重申,這時(shí)候的認(rèn)識(shí),還是停留在需要大量的負(fù)樣本,來(lái)提升SSL model的效果這個(gè)歷史局限里。

          3.BYOL 是Deep Mind 在2020年發(fā)布的工作

          文章的核心點(diǎn)就是要破除負(fù)樣本迷信 ,BYOL認(rèn)為不使用負(fù)樣本,照樣可以訓(xùn)練出效果拔群的SSL model。但是如果直接拋棄負(fù)樣本,只拉近正樣本對(duì)的話,model 會(huì)容易陷入平凡解:對(duì)于任意樣本,輸出同樣的embedding。為了在沒有負(fù)樣本的幫助下,解決這個(gè)問(wèn)題。BYOL 在Projector之上,增加了一個(gè)新的模塊,取名Predictor。整體可以理解為在MoCo的基礎(chǔ)上,但是不再直接拉近正樣本對(duì)(即同一個(gè)樣本,不同增強(qiáng)后的輸出)的距離,而是通過(guò)Predictor去學(xué)習(xí)online encoder 到 target encoder (即moco里的momentum encoder)的映射。另外,對(duì)target network梯度不會(huì)傳遞,即Stop-Gradient。(注:在MoCo中,momentum encoder也是沒有梯度回傳的,不過(guò)MoCo這么沒有給momentum encoder回傳梯度是因?yàn)閝ueue里面的負(fù)樣本來(lái)自過(guò)去的mini-batch,其計(jì)算圖已經(jīng)丟失,沒有辦法回傳梯度,而如果只回傳正樣本對(duì)的梯度,會(huì)很不合理。而BYOL是只考慮正樣本對(duì),如果梯度對(duì)于online encoder 和 target encoder都回傳,不存在這個(gè)不合理的點(diǎn),因此,Stop-Gradient是BYOL的一個(gè)特別的設(shè)計(jì)。)

          4.SimSiam 是在BYOL的再次做減法

          這里在BYOL的基礎(chǔ)上去除了momentum更新的target encoder, 直接讓target encoder = online encoder。指出了predictor+stop-gradinent 是訓(xùn)練出強(qiáng)大SSL encoder的一個(gè)充分條件。

          再次的階段小結(jié)

          在這個(gè)階段,認(rèn)識(shí)進(jìn)展到了可以沒有負(fù)樣本的階段,但是不使用負(fù)樣本,模型就會(huì)有陷入平凡解的風(fēng)險(xiǎn)。為此,BYOL設(shè)計(jì)了predictor 模塊,并為之配套了stop-gradient技巧;SimSiam通過(guò)大量的試驗(yàn)和控制變量,進(jìn)一步做減法,去除了momentum update。讓模型進(jìn)一步變得簡(jiǎn)單。再次總結(jié),就是predictor模塊,避免了直接拉近正樣本對(duì),對(duì)于梯度的直接回傳,讓模型陷入平凡解。BYOL 和 SimSiam 在方法上都是很不錯(cuò)的,試驗(yàn)也做得很可信充分,可是對(duì)于方法的解釋并沒有那么深刻置信,可能要尋求一個(gè)扎實(shí)的解釋也確實(shí)很難。可以參見(https://spaces.ac.cn/archives/7980),也是另一個(gè)角度的解釋,頗為有趣合理。此時(shí)已經(jīng)進(jìn)入到了擺脫了負(fù)樣本了,但是在不使用負(fù)樣本的情況,要想成功訓(xùn)練好一個(gè)SSL model,需要引入新的trick: 即predictor+stop-gradient。這樣子來(lái)看,難免有點(diǎn)像左手換右手的無(wú)用功,但是整體的技術(shù)認(rèn)識(shí)是進(jìn)步了很多的。

          5.最后,終于到了這次的主角:Barlow Twins

          在不考慮數(shù)據(jù)增強(qiáng)這種大家都有的trick的基礎(chǔ)上, Barlow Twins 既沒有使用負(fù)樣本,沒有動(dòng)量更新,也沒有predictor和stop gradient的奇妙操作。Twins 所做的是換了一種視角去學(xué)習(xí)表示,從embeddig本身出發(fā),而不是從樣本出發(fā)。優(yōu)化目標(biāo)是使得不同視角下的特征的相關(guān)矩陣接近恒等矩陣,即讓不同的維度的特征盡量表示不同的信息,從而提升特征的表征能力。這種做法,和以前傳統(tǒng)降維(如PCA)的方法是有共通之處的,甚至優(yōu)化的目標(biāo)可以說(shuō)非常一致。

          ▲Barlow Twins 模型整體圖

          設(shè)模型為,其模型參數(shù)記為

          對(duì)于不同的視角下的輸入,分別輸出的特征, 其中

          那么Twins 方法和以上的基于正負(fù)樣本對(duì)的所有方法的區(qū)別,不嚴(yán)格(拋去特征normalize,BN等操作來(lái)說(shuō))的來(lái)說(shuō),可以用一句話,或者說(shuō)兩個(gè)式子來(lái)概括。

          過(guò)去的方法大多基于InfoNCE loss 或者類似的對(duì)比損失函數(shù),其目的是為了是的樣本相關(guān)陣接近恒等矩陣,即

          而Twins的目的是為了讓特征相關(guān)陣接近恒等,即:

          對(duì)于對(duì)比損失類方法,比如SimCLR或MoCo需要很大的Batchsize或者用queue的方式去模擬很大的batchsize, 而Twins需要極大的特征維度(8192)。這種特性和以上兩個(gè)公式是完全對(duì)應(yīng)且對(duì)稱的。一個(gè)需要大,一個(gè)需要大

          ▲Barlow Twins 的核心在于提出了圖中新的損失函數(shù)

          總結(jié)

          從歷史線上來(lái)看,從SimCLR和MoCo說(shuō)一定要有大量的負(fù)樣本,到BYOL和SimSiam通過(guò)神奇操作(stop-grad+predictor)驗(yàn)證了負(fù)樣本并非不可或缺,最終到了Twins切換了一直以來(lái)從對(duì)比學(xué)習(xí)去訓(xùn)練SSL的視角,轉(zhuǎn)向從特征本身出發(fā),推開了另一扇大門。對(duì)比而言,相比于最簡(jiǎn)單的裸InfoNCE,Twins僅僅是換了一個(gè)loss function (+大維度的特征)。不過(guò),大的維度相比于增加batchsize的代價(jià)要小得多,就是多占一點(diǎn)的顯存。


          國(guó)產(chǎn)小眾瀏覽器因屏蔽視頻廣告,被索賠100萬(wàn)(后續(xù))

          年輕人“不講武德”:因看黃片上癮,把網(wǎng)站和786名女主播起訴了

          中國(guó)聯(lián)通官網(wǎng)被發(fā)現(xiàn)含木馬腳本,可向用戶推廣色情APP

          張一鳴:每個(gè)逆襲的年輕人,都具備的底層能力


          關(guān)


          學(xué)西學(xué)學(xué)運(yùn)營(yíng)護(hù)號(hào)樂(lè)質(zhì)結(jié)識(shí)關(guān)[]學(xué)習(xí)進(jìn)


          瀏覽 71
          點(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>
                  色婷婷色丁香 | 波多野视频在线 | 爱爱免费视频网址 | 九九色九九九 | 免费国产黄色电影 |