1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        【深度學(xué)習(xí)】SimSiam:孿生網(wǎng)絡(luò)表征學(xué)習(xí)的頂級(jí)理論解釋

        共 3630字,需瀏覽 8分鐘

         ·

        2022-01-10 02:37

        關(guān)注"Smarter",加"星標(biāo)"置頂

        及時(shí)獲取最優(yōu)質(zhì)的CV內(nèi)容

        之前太菜了,SimSiam最精彩的理論解釋沒完全看懂,元旦重新讀了一遍,太牛逼了,我原本以為SimSiam就是BYOL的一個(gè)簡化版本,實(shí)則是孿生網(wǎng)絡(luò)表征學(xué)習(xí)的頂級(jí)理論解釋,剖析出帶stop-gradient孿生網(wǎng)絡(luò)表征學(xué)習(xí)的本質(zhì)是EM算法


        為了講清楚SimSiam和EM算法以及k-means算法有什么內(nèi)在聯(lián)系,本文先簡單闡述一下EM算法和k-means算法的思想,然后從EM算法出發(fā)推導(dǎo)出SimSiam的優(yōu)化目標(biāo),并且通過推導(dǎo)結(jié)果解釋predictor和momentum encoder(EMA)的作用。

        EM

        EM算法的全稱是Expectation-Maximization,是機(jī)器學(xué)習(xí)中最為經(jīng)典的算法之一。EM算法可以認(rèn)為是一種算法思想,其實(shí)很多機(jī)器學(xué)習(xí)算法中都用到了EM思想,比如非常經(jīng)典的k-means聚類算法,等下也會(huì)講到k-means是如何應(yīng)用EM的。

        EM算法可以認(rèn)為是極大似然估計(jì)的拓展,極大似然估計(jì)只估計(jì)一個(gè)變量,而EM算法需要同時(shí)估計(jì)兩個(gè)變量。學(xué)過概率統(tǒng)計(jì)的都知道,直接估計(jì)兩個(gè)變量是很困難的問題,所以EM算法實(shí)際上是為了解決多個(gè)變量估計(jì)困難提出來的算法思想,通過一個(gè)迭代的方式,先固定其中一個(gè)變量,估計(jì)另一個(gè)變量,然后交替迭代更新,循環(huán)往復(fù)直至收斂。一個(gè)迭代有兩個(gè)步驟(分別估計(jì)兩個(gè)變量),先E步,然后M步(M步其實(shí)就是極大似然估計(jì))。


        有關(guān)EM算法的詳細(xì)解釋可以看文章鏈接:

        https://zhuanlan.zhihu.com/p/36331115

        k-means

        一個(gè)最直觀了解 EM 算法思路的是 k-means 算法(一個(gè)變量是如何得到聚類中心,另一個(gè)變量是如何劃分?jǐn)?shù)據(jù))。在 k-means 聚類時(shí),每個(gè)聚類簇的中心是隱含數(shù)據(jù)。我們會(huì)假設(shè) K 個(gè)初始化中心(初始化中心隨機(jī)得到,后續(xù)迭代中心通過聚類平均進(jìn)行更新),即 EM 算法的 E 步;然后計(jì)算得到每個(gè)樣本最近的中心,并把樣本聚類到最近的這個(gè)中心,即 EM 算法的 M 步。重復(fù)這個(gè) E 步和 M 步,直到中心不再變化為止,這樣就完成了 k-means 聚類。

        SimSiam

        圖片來源:https://zhuanlan.zhihu.com/p/367290573

        SimSiam也可以用EM算法解釋。SimSiam實(shí)際上隱式的包含了兩個(gè)變量,并且同時(shí)解決了兩個(gè)潛在的子問題。實(shí)際上stop-gradient操作引入了其中一個(gè)變量。

        我們可以把SimSiam的損失函數(shù)定義成以下形式(這里先不考慮SimSiam的predictor):


        ??


        其中??表示前面的數(shù)據(jù)增強(qiáng)函數(shù),??表示Encoder加Projector的網(wǎng)絡(luò)函數(shù)。期望E是關(guān)于圖像x和數(shù)據(jù)增強(qiáng)??的分布(也就是所有圖片和數(shù)據(jù)增強(qiáng)的損失期望之和)。為了方便分析,用L2余弦相似度的等價(jià)形式MSE來表示相似度。??表示圖片x的表征(也就是上圖下面分支的輸出)。那么優(yōu)化目標(biāo)就可以定義成:


        ??


        這個(gè)優(yōu)化目標(biāo)的形式就類似于EM和k-means算法。其中變量??和聚類中心類似,是encoder和projector的可學(xué)習(xí)參數(shù);變量??和采樣點(diǎn)x的分配向量類似,是圖片x的表征。那么SimSiam可以和k-means算法一樣,通過一個(gè)EM迭代算法來解決,固定住一個(gè)變量,估計(jì)另一個(gè)變量。形式上可以寫成以下兩個(gè)子問題:


        ??


        其中t表示迭代輪次,??表示賦值。

        可以通過SGD來求解??,從這個(gè)求解式子可知,stop-gradient是必須的操作,試想一下,如果沒有stop-gradient,那么??就不是一個(gè)常數(shù),也就是第一個(gè)子問題有兩個(gè)變量,無法求解。

        求解完??之后,第二個(gè)子問題就只剩下一個(gè)變量??。將??代入損失函數(shù)中,第二個(gè)子問題就變成了:


        ??


        通過期望公式可得:


        ??


        這個(gè)式子表示第t個(gè)迭代輪次的圖片x表征由該圖片所有數(shù)據(jù)增強(qiáng)期望計(jì)算得到。


        One-step alternation

        上述兩個(gè)子問題的一次step可以近似為SimSiam。


        1. 首先,可以用一次采樣的數(shù)據(jù)增強(qiáng)??來對(duì)第二個(gè)子問題進(jìn)行近似(一次數(shù)據(jù)增強(qiáng)的期望等于本身):


        ??


        然后把上式代入第一個(gè)子問題中:


        ??


        其中??是子問題中的一個(gè)常數(shù),??和??表示兩個(gè)不同的數(shù)據(jù)增強(qiáng),于是上式就變成了一個(gè)孿生網(wǎng)絡(luò)結(jié)構(gòu)。


        2. 如果上式用一個(gè)SGD來降低loss,那么就可以得到接近SimSiam的算法(這里沒有考慮SimSiam的predictor,等下解釋predictor的作用):一個(gè)使用stop-gradient的孿生網(wǎng)絡(luò)。


        Multi-step alternation

        如果把上面一次step拓展到多次step,就可以得到多次step的SimSiam。

        多次step的SimSiam可以設(shè)計(jì)成將t作為迭代的外循環(huán)次數(shù),第一個(gè)子問題設(shè)計(jì)成一次迭代k個(gè)step SGD(k個(gè)step SGD的所有??表征預(yù)先計(jì)算緩存到內(nèi)存中)。

        上述實(shí)驗(yàn)中n-step表示SimSiam一次迭代的step數(shù),1-epoch表示一個(gè)epoch中一次迭代總的step數(shù)??梢园l(fā)現(xiàn),適當(dāng)?shù)脑黾覵imSiam的一次迭代的step數(shù),可以提升精度(可以認(rèn)為在一次迭代中變相的增加數(shù)據(jù)量,從k-means的角度考慮聚類效果會(huì)更好)。


        Predictor

        上述推導(dǎo)為了簡便起見,省略了predictor h,如果增加一個(gè)predictor h,第二個(gè)子問題就變成了:


        ??


        通過期望公式可得:


        ??


        前面的一次step近似推導(dǎo)可以省略掉期望E,但是由于predictor h的存在,可以不進(jìn)行一次step近似,predictor h可以彌補(bǔ)??和期望E的gap。實(shí)際上,直接計(jì)算出數(shù)據(jù)增強(qiáng)??的期望E是不現(xiàn)實(shí)的,但是可能直接通過predictor h來預(yù)測(cè)出期望E(因?yàn)槎鄠€(gè)epoch中數(shù)據(jù)增強(qiáng)??的采樣是一個(gè)隱式分布,可以通過學(xué)習(xí)的方式記住)。


        Symmetrization

        上述推導(dǎo)沒有考慮對(duì)稱計(jì)算loss的情況,實(shí)際上,對(duì)稱loss相當(dāng)于一次SGD密集采樣數(shù)據(jù)增強(qiáng)??,也就是優(yōu)化效率高一倍。

        上述實(shí)驗(yàn)驗(yàn)證了這個(gè)結(jié)論,對(duì)稱loss優(yōu)化效率大大提高,非對(duì)稱loss即使使用兩倍訓(xùn)練時(shí)間,效果也不如單倍對(duì)稱loss,猜測(cè)因?yàn)閷?duì)稱loss下數(shù)據(jù)量更多,從k-means的角度考慮聚類效果會(huì)更好。


        EMA

        SimSiam進(jìn)一步發(fā)現(xiàn)predictor h用來預(yù)測(cè)期望E不是必須的,還有其他的替代方案。SimSiam又做了一個(gè)對(duì)比實(shí)驗(yàn),去掉predictor h的SimSiam其實(shí)就是上面推導(dǎo)的一次step近似,使用momentum encoder(EMA)來得到??,EMA相當(dāng)于提供了更多數(shù)據(jù)增強(qiáng)??的views的近似期望E,在沒有predictor h的時(shí)取得55.0%的精度;但是如果同時(shí)沒有EMA和predictor,精度迅速掉到0.1%。這兩個(gè)實(shí)驗(yàn)側(cè)面證實(shí)了EMA和predictor都能起到預(yù)測(cè)期望E的作用。


        并且EMA和predictor的實(shí)驗(yàn)同時(shí)說明了SimSiam和BYOL沒有負(fù)樣本對(duì)也能work的原因,因?yàn)镾imSiam雖然沒有EMA但是有predictor,BYOL既有predictor也有EMA。

        總結(jié)

        SimSiam的理論解釋意味著所有帶stop-gradient的孿生網(wǎng)絡(luò)表征學(xué)習(xí)都可以用EM算法解釋。stop-gradient起到至關(guān)重要的作用,并且需要一個(gè)預(yù)測(cè)期望E的方法進(jìn)行輔助使用。但是SimSiam仍然無法解釋模型坍塌現(xiàn)象,SimSiam以及它的變體不坍塌現(xiàn)象仍然是一個(gè)經(jīng)驗(yàn)性的觀察,模型坍塌仍然需要后續(xù)的工作進(jìn)一步討論。

        看懂了SimSiam對(duì)孿生網(wǎng)絡(luò)表征學(xué)習(xí)的解釋,再看其他應(yīng)用孿生網(wǎng)絡(luò)的算法就清爽了許多,SimSiam值一個(gè)best paper(雖然只拿了2021 CVPR Best Paper Honorable Mention)。


        Reference

        [1] Exploring Simple Siamese Representation Learning

        [2]?https://zhuanlan.zhihu.com/p/36331115

        [3]?https://zhuanlan.zhihu.com/p/367290573


        往期精彩回顧




        站qq群955171419,加入微信群請(qǐng)掃碼:
        瀏覽 117
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            男人操女人视频软件 | 操屄视频大全 | 免费的又色又爽又黄的片捆绑美女 | 三级片亚洲 | 欧美国产视频在线观看 | 国产成人精品www牛牛影视 | 办公室挺进美艳老师后臀 | 美女操大逼| 少妇口述疯狂刺激的交换经历 | 人人妻人人澡人人爽人人D |