這篇論文是北深信工 袁粒老師2021年的工作, 收錄在ICCV, 看到的時(shí)候已經(jīng)有421份引用了, 非常厲害.
論文摘要部分:
論文核心工作主要分為兩個(gè)部分:
1. Tokens 2 token模塊(T2T) 用于將被vit硬性割裂的tokens之間的信息進(jìn)行匯集
2. 參考CNN的架構(gòu)學(xué), 經(jīng)驗(yàn)發(fā)現(xiàn)深并且窄的架構(gòu)效果好代價(jià)小(MACs)
論文細(xì)節(jié)
其中T2T主要分為圖片還原和軟劃分, 圖片還原沒什么細(xì)節(jié)就是將token從一維拉到二維, 軟劃分則類似卷積窗口滑動(dòng), 不過stride會(huì)偏大一些, 保證相鄰patch有重疊但是不會(huì)太多, 劃分完后再拉成一維token. 所以從輸入輸出看是從多個(gè)tokens到少量tokens的一個(gè)映射(tokens 2 token).
整個(gè)模型設(shè)計(jì)主要分兩個(gè)部分: 一個(gè)是包含兩層T2T模塊的 T2T module, 另一個(gè)是正常transformer構(gòu)成的T2T-ViT backbone
注意到T2T-ViT backbone 輸入的地方添加了fixed tokens 和 position embedding. 這里是沿用ViT的設(shè)計(jì).
實(shí)驗(yàn)部分:
主實(shí)驗(yàn)部分主要有三組: 一組直接在ImageNet上不做預(yù)訓(xùn)練地與ViT進(jìn)行對(duì)比; 一組和參數(shù)相僅ResNet對(duì)比; 一組和輕量級(jí)MobileNet對(duì)比. 實(shí)驗(yàn)設(shè)計(jì)上比較全面地證明了模型的適應(yīng)性和性能. 后面考察不同CNN架構(gòu)到ViT的效果的部分更側(cè)重說明選擇的deep-narrow架構(gòu)的合理性, 但是感覺這部分工作量很大, 所以作者將其也放在主要實(shí)驗(yàn)內(nèi)(作為主要貢獻(xiàn)).
消融實(shí)驗(yàn)部分則分兩組:?
一組是比較T2T module和CNN, 因?yàn)閳D片還原和軟劃分思路上類似卷積的滑動(dòng)窗口, 兩者都具備共享領(lǐng)域信息的能力. 只不過卷積層的新embedding是用固定kernel做局部乘積求和(卷積)操作, 而T2T是用transformer層做全局匯總(attention)操作, 最后T2T要比卷積好1個(gè)點(diǎn)左右, 作者歸因于transformer能考慮全局信息. 但是換個(gè)角度這也說明CNN+transformer比純transformer性能要好. 并且看到這里我不禁設(shè)想如果全局都采用T2T module 會(huì)不會(huì)效果比用T2T module 和 ViT backbone 混合會(huì)更好呢? 或者如果CNN和transformer做更深層次的混合呢?
另一組則是上面提到的研究T2T-ViT backbone 采用不同CNN架構(gòu)時(shí)的效果好壞. 最終結(jié)論是deep-narrow架構(gòu)又能減少參數(shù)效果又好, 對(duì)比的shallow-wide架構(gòu)會(huì)讓性能下降2.7%.