Facebook开源数据高效图像Transformer,媲美SOTA CNN
作者|魔王、小舟、杜偉
?來源|機器之心
將自然語言處理領域主流模型 Transformer 應用在視覺領域似乎正在成為趨勢。最近,Facebook 研究人員提出一項新技術——數據高效圖像 Transformer (DeiT),該方法所需的數據量和計算資源更少,且能產生高性能的圖像分類模型。
Transformer 是自然語言處理領域的主流方法,在多項任務中實現了 SOTA 結果。近期越來越多的研究開始把 Transformer 引入計算機視覺領域,例如 OpenAI 的 iGPT、Facebook 提出的 DETR 等。
最近,Facebook 提出了一項新技術 Data-efficient image Transformers(DeiT),需要更少的數據和更少的計算資源就能生成高性能的圖像分類模型。研究人員僅用一臺 8-GPU 的服務器對 DeiT 模型進行 3 天訓練,該方法就在 ImageNet 基準測試中達到了 84.2% 的 top-1 準確率,并且訓練階段未使用任何外部數據,該結果可以與頂尖的卷積神經網絡(CNN)媲美。
該研究提出的方法(DeiT 和帶蒸餾的 DeiT)與以前的視覺 Transformer 模型以及 SOTA CNN 的性能曲線對比,這些模型均在 ImageNet 上訓練而成。
該研究表明僅使用常規的學術數據集就能訓練 Transformer,使之高效處理圖像分類任務。研究者希望借此推動計算機視覺領域發展,將 Transformer 擴展到新的用例上,并讓無法使用大規模系統來訓練大型 AI 模型的研究者和工程師能夠利用該研究。DeiT 方法由 Facebook AI 與索邦大學的 Matthieu Cord 教授合作開發,目前代碼已開源。
論文標題:
Training data-efficient image transformers & distillation through attention
論文鏈接:
https://arxiv.org/pdf/2012.12877.pdf
代碼鏈接:
https://github.com/facebookresearch/deit
方法
圖像分類是理解一張圖像主要內容的任務,對于人類而言很簡單,但對機器來說卻很困難。圖像分類對 DeiT 這類無卷積 Transformer 模型來說尤其具有挑戰性,因為這些系統沒有很多關于圖像的統計先驗。所以,它們通常必須「觀察」大量的示例圖像之后才能學習對不同對象進行分類。然而,Facebook AI 研究者提出的 DeiT 僅使用 120 萬張圖像就可實現高效訓練,而不需要數億張圖像。
DeiT 首個重要的組件是其訓練策略。研究者在最初用于卷積神經網絡的現有研究基礎上進行了調整與改進,并提出了一種基于蒸餾 token 的新型蒸餾流程,它的作用與 class token 相同,不過其目的在于復制教師網絡估計的標簽。實驗結果表明,這種特定 transformer 策略大幅度優于 vanilla 蒸餾方法。
蒸餾流程如下圖所示。研究者僅添加了一個新的蒸餾 token,它通過自注意力層與 class token 和 patch token 交互作用。蒸餾 token 的作用與 class token 類似,不過前者的目的是復制教師網絡預測的(硬)標簽,而不是正確標簽。Transformer 的 class token 和蒸餾 token 輸入均通過反向傳播學得。
有趣的是,研究者觀察到,學得的 class token 和蒸餾 token 收斂到不同的向量:token 之間的余弦相似度等于 0.06。由于類和蒸餾嵌入是在每一層上進行計算的,因此它們在網絡中變得越來越相似,一直到最后一層時相似度達到非常高(cos=0.93),但仍低于 1。這種情況在預期之中,因為它們的目的是生成相似但不同的目標。
在測試時,Transformer 生成的類或蒸餾嵌入與線性分類器相聯系,并能夠推斷出圖像標簽。
實驗
研究者實施了多項分析實驗,首先探討了蒸餾策略,然后對比分析了卷積神經網絡和視覺 transformer 模型的效率與準確率權衡。
下表 1 展示了該研究考慮的多種模型變體,如無特殊說明,則 DeiT 指代的是 DeiT-B 模型。
表 1:DeiT 架構變體。DeiT-B 是其中較大的模型,架構與 ViT-B 相同,但是訓練策略和蒸餾 token 不同;DeiT-S 和 DeiT-Ti 是兩個較小的模型。
蒸餾
1. 不同教師網絡之間的對比
首先來看使用不同模型做教師網絡的情形。
實驗發現,使用 Convnet 做教師網絡的性能要優于使用 transformer。下表 2 對比了使用不同教師架構的蒸餾結果:
2. 不同蒸餾方法的對比
接下來,我們來看蒸餾方法的對比,不同蒸餾策略的性能對比結果參見下表 3。
從中可以看出,對于 transformer 而言,硬蒸餾顯著優于軟蒸餾,即使在只使用一個 class token 的情況下也是如此:硬蒸餾達到了 83.0% 的準確率,軟蒸餾為 81.8%。
該研究提出的蒸餾策略進一步提升了性能,表明 class token 和蒸餾 token 能夠提供對分類任務有用的補充信息:基于這兩個 token 的分類器性能顯著優于單獨的 class 分類器和蒸餾分類器,不過單獨的分類器依然超過了蒸餾基線方法。
3. 教師網絡和歸納偏置存在一致性嗎?
教師架構對性能有很大影響,那么它會繼承已有的歸納偏置嗎?Facebook AI 研究者分析了 convnet 教師網絡、僅基于標簽學得的 DeiT 和 transformer ,結果參見下表 4:
從中可以看出,該研究提出的蒸餾模型與 convnet 的相關性強于從頭開始學習的 transformer。使用蒸餾嵌入的分類器與 convnet 的差距比使用類別嵌入的分類器更小,使用類別嵌入的分類器更類似未經蒸餾的 DeiT。class+distil 分類器處于中間地帶。
效率與準確率權衡
下表總結了不同方法在 ImageNet V2 和 ImageNet Real 數據集上的性能結果。相比于具備同等參數量的 EfficientNet,convnet 變體速度更慢,原因在于大型矩陣乘法要比小型卷積提供更多硬件優化機會。在這兩個數據集上,EfficientNet-B4 的速度與相同,準確率也處于相同水平。
遷移學習:下游任務的性能
盡管 DeiT 在 ImageNet 數據集上表現良好,但通過遷移學習評估 DeiT 在其他數據集上的性能也很重要,這樣可以度量 DeiT 的泛化性能。
研究者通過對下表 7 中的數據集進行微調,在遷移學習任務上對此進行了評估。下表 8 則將 DeiT 遷移學習結果與 ViT 和 SOTA 卷積架構的結果進行了比較。該研究發現 DeiT 的結果和最佳卷積的結果相當,這和此前在 ImageNet 數據集上的結論是一致的。
參考鏈接:https://ai.facebook.com/blog/data-efficient-image-transformers-a-promising-new-technique-for-image-classification/
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Facebook开源数据高效图像Transformer,媲美SOTA CNN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腻子胶跟滑石粉拌在一起刷刷墙会有甲醛吗?
- 下一篇: 供应链金融在采购阶段的融资模式是