淺談視覺Transformer技術(shù)
1.標(biāo)準(zhǔn)Transformer
2.視覺Transformer
標(biāo)準(zhǔn)Transformer編碼器的輸入是一維embedding,為了能將該編碼器應(yīng)用于圖像任務(wù),將尺寸為(H,W,C)的圖像切分成尺寸為(P,P,C)的圖像塊,一共得到 個圖像塊,reshape后得到尺寸為(
,
的輸入embedding,這系列操作將2維圖像數(shù)據(jù)轉(zhuǎn)為1維,使得標(biāo)準(zhǔn)Transformer編碼器能對其進行處理,編碼后將特征送入MLP模塊進行分類,這就是標(biāo)準(zhǔn)的ViT(Vision Transformer),ViT在大型數(shù)據(jù)集上預(yù)訓(xùn)練,針對較小的下游任務(wù)作微調(diào)訓(xùn)練。在ImageNet數(shù)據(jù)集上取得了88.55% Top-1的準(zhǔn)確率,超越了ResNet系列模型,打破了CNN(卷積神經(jīng)網(wǎng)絡(luò))在視覺任務(wù)上的壟斷,相較于CNN具有更強泛化能力。但是,該模型在小規(guī)模數(shù)據(jù)集的表現(xiàn)不如CNN,并且隨著圖像尺寸的增加,Vision Transformer的計算量會成指數(shù)倍的增長,于是有2種流派來提升Vision Transformer的效果。
一種是改良派,該流派認為Transformer缺少CNN的歸納偏置(平移不變性,局部相關(guān)性),改良Transformer編碼器結(jié)構(gòu),在其中加入圖像任務(wù)的歸納偏置。標(biāo)準(zhǔn)的ViT模型的輸出特征是扁平的,其尺寸為輸入圖像尺寸的1/16,這種維度的特征對于分類任務(wù)是可以接受的,對于檢測或者分割任務(wù)通常需要{1/4,1/8,1/16,1/32}尺度的特征,而大尺度的特征圖也會極大增加Self-Attention模塊的計算量,所以必須在引入多尺度特征的同時降低計算量。Pyramid Vision Transformer(PVT)[3]提出了Spatial-Reduction Attention(SRA)層,如下圖左SRA與MHA一樣接收query Q、key K和value V作為輸入,不同之處在于SRA在attention操作之前降低了K和V的特征維度,這可以將計算和內(nèi)存的開銷減少為之前的
另一種是大模型派,在NLP領(lǐng)域,模型越大,模型對于零樣本和少樣本任務(wù)的能力越強。增加ViT模型的參數(shù)規(guī)模和訓(xùn)練數(shù)據(jù),再結(jié)合自監(jiān)督訓(xùn)練,也能提升各種下游任務(wù)的表現(xiàn)。ViT比CNN需要更多的訓(xùn)練數(shù)據(jù),自監(jiān)督學(xué)習(xí)的設(shè)計顯得尤為重要。BEiT-3[5]模型架構(gòu)基于40層的ViT-Giant組成,如下圖左模型共包含19億個參數(shù)。在預(yù)訓(xùn)練數(shù)據(jù)上,BEiT-3 在單模態(tài)(即圖像與文本)和多模態(tài)數(shù)據(jù)(即圖像-文本對)上通過統(tǒng)一的掩碼-預(yù)測任務(wù)進行 BEiT-3 預(yù)訓(xùn)練。預(yù)訓(xùn)練期間,會隨機掩蓋一定百分比的文本字符或像素塊,模型通過被訓(xùn)練恢復(fù)掩蓋的文本字符或其視覺符號,來學(xué)習(xí)不同模態(tài)的表示及不同模態(tài)間的對齊,BEiT-3在分類、檢測、分割多個基準(zhǔn)上刷新了記錄。22年12月智源開源了簡單又強大的視覺基礎(chǔ)模型EVA[6],將最強語義學(xué)習(xí)與最強幾何結(jié)構(gòu)學(xué)習(xí)相結(jié)合,在ImageNet分類、COCO檢測分割、Kinetics視頻分類等廣泛的視覺感知任務(wù)中取得當(dāng)前最強性能。EVA,如下圖右將ViT規(guī)模擴大到十億參數(shù)(1-Billion)ViT-Giant進行訓(xùn)練,CLIP[7]模型輸入為完整的圖像,而EVA模型的輸入為有遮蓋的圖像,訓(xùn)練過程是讓EVA模型遮蓋部分的輸出去重構(gòu)CLIP模型對應(yīng)位置的輸出。
3.總結(jié)
ViT技術(shù)使得目標(biāo)檢測、圖像識別、自動駕駛等領(lǐng)域都得到了質(zhì)的飛躍,通過在預(yù)訓(xùn)練ViT基礎(chǔ)上微調(diào)下游任務(wù),企業(yè)可以快速地將AI技術(shù)應(yīng)用到實際生產(chǎn)和業(yè)務(wù)中,創(chuàng)造出更多的商業(yè)價值。筆者在微調(diào)ViT-Giant檢測模型時發(fā)現(xiàn),batchszie設(shè)置為1時顯存達到25GB以上,P40(22GB)顯卡已經(jīng)無法容納微調(diào)訓(xùn)練,只能將代碼及數(shù)據(jù)遷移至V100云主機得以繼續(xù)訓(xùn)練,大型ViT的預(yù)訓(xùn)練則需要更大的算力,這導(dǎo)致只有擁有大量算力的資源和數(shù)據(jù)的企業(yè)才能夠開發(fā)和應(yīng)用大型ViT模型,從而加深產(chǎn)業(yè)的技術(shù)壁壘。ViT技術(shù)給AI產(chǎn)業(yè)帶來了巨大的影響,其影響將持續(xù)深遠。
參考文獻
[1]Attention is all you need
[2]AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
[3]Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions
[4]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
[5]Image as a Foreign Language: BEIT Pretraining for All Vision and Vision-Language Tasks
[6]EVA: Exploring the Limits of Masked Visual Representation Learning at Scale
[7]Contrastive Language-Image Pre-Training
