Transformer+CNN,引領新一代AI發展

王樹一 發佈 2024-03-04T08:00:48.389101+00:00

它可以說是人工智慧機器的『眼睛』,賦予它感知的能力,使它能夠『看懂』這個世界。而計算機視覺中的深度神經網絡架構則是這雙眼睛的『視網膜』,賦予了它可視的源泉。

視覺應用作為人工智慧最普及的基礎設施層,重要性卻不言而喻。它可以說是人工智慧機器的『眼睛』,賦予它感知的能力,使它能夠『看懂』這個世界。而計算機視覺中的深度神經網絡(DNN)架構則是這雙眼睛的『視網膜』,賦予了它可視的源泉。

CNN橫空出世

2012年,一個名為AlexNet的CNN算法贏得了年度計算機視覺競賽——ImageNet大規模視覺識別挑戰賽(ILSVRC)的冠軍。該競賽的任務是讓機器進行學習並基於ImageNet數據集『分類』1000個不同的圖像,AlexNet實現了15.3%的top-5錯誤率。而往屆基於傳統編程模型的獲勝者,它們實現的top-5錯誤率大約為26%,至此,CNN橫空出世。

CNN(Convolutional Neural Network)即卷積神經網絡,它是一種前饋神經網絡,也是計算機視覺中最主要和最經常使用的DNN架構。CNN在大型圖像處理方面表現出色,可以說它的出現在圖像分類領域具有革命性意義。

在CNN出現前,圖像識別和分類對於人工智慧來說是一個難題,原因有二,一是圖像需要處理的數據量很大,導致成本高、效率低;二是,圖像在數位化過程中很難保留其原有特徵,導致圖像處理的準確率不高。

而CNN的出現很好解決了上述兩大難題。CNN主要由三個部分構成,卷積層、池化層和全連接層。卷積層負責提取圖像特徵,將大量的圖像數據『大事化小』,即將圖像的大量參數降維為少量參數,再做處理,而池化層則對提取的圖像特徵進行降維及防止過擬合,保留圖像的原始特徵,最後通過全連接層輸出結果。

隨著CNN模型的不斷完善,在2016年和2017年的ILSVRC挑戰賽上,獲勝的CNN甚至實現了比人類更高的圖像分類準確度。這也讓CNN在諸多視覺領域得到廣泛應用,如目標檢測、場景分割和全景分割等。

但CNN是一種只關注局部信息的網絡結構,將它使用在圖像特徵提取上或許還可以,但它在文本信息處理上則難以捕捉和存儲長距離的依賴信息。

Transformer應運而生

2017年,Google Brain在題為《Attention is all you need》的論文中首次詳細介紹了Transformer(轉換器)模型,該模型最初是為執行自然語言處理(NLP)任務而設計的,具體應用包括翻譯、問答以及對話式AI等。目前大火的ChatGPT的GPT-3訓練模型就是Transformer模型的一種。

而後在2021年,Google Brain又嘗試將Transformer模型應用於圖像分類,取得了令人驚訝的結果。通常Transformer模型在執行NLP任務時,需要處理的是一連串單詞和符號,Google Brain將其應用於圖像分類時,則是將圖像切分成一個個小塊,然後將這些小塊圖像中的像素放入矢量中,再將這些矢量傳送至Transformer中進行處理,最後得到的分類準確率甚至比當時最先進的CNN還高。

Transformer Vs CNN架構對比

那為何Transformer能夠挑戰在視覺應用領域稱霸十幾年的CNN呢?這可以從兩者的結構和機制對比中窺得一二。

如下圖所示的Transformer和CNN(以3X3卷積為例)的架構圖可見,Transformer和CNN的架構非常相似,Transformer的Feed Forward層的功能和CNN的1X1卷積層的相同,都使用矩陣乘法對像素中的每個點進行線性變換。

(圖源:新思科技)

Transformer和CNN架構最大的不同在於Multi-Head Attention層和3X3卷積層。這兩個層的作用都是混合相鄰像素之間的信息。但如下圖所示,這兩個機制混合信息的方式則非常不同。

(圖源:新思科技)

以卷積方式混合信息是基於各個像素的固定空間位置,以3X3卷積為例,它只採用相鄰像素(即中心像素周圍的9個像素)來計算加權和;而Attention混合信息的方式則不是基於固定空間位置的像素,而是更關注於權重。例如,它會學習其它像素的類型,獲取其它像素與目標像素之間相似的權重,從而判斷出需要混合哪些像素。

所以,相較於卷積,Attention機制具有更強的學習能力和表達更複雜關係的能力。此外,Transformer還有一個CNN沒有的特性,即Embedding,它的主要功能是為輸入的像素添加位置信息。

從上可以看出,兩種架構各有特點。但實時視覺應用不僅需要準確度,還需要更高的性能(fps)、縮小模型尺寸以及功率和面積效率等。Transformer在準確度方面高於CNN,但在fps方面則可能遜色於CNN;Transformer的attention機制可進行全局特徵的提取,而CNN在局部建模方面更有效。兩者各具特色,在未來的AI應用中,兩者不會是替代關係,而更多的是組合應用。

加速器加持

隨著人工智慧技術的不斷發展,不管是基於CNN還是Transformer架構,需要處理的任務都越來越複雜,需要計算的量也將顯著增加,從而導致它們的結構越來越龐大。為了加快任務完成的時間和效率,這時,就需要加速器的加持。但目前很多專門為CNN設計的加速器無法兼容有效地執行Transformer。

Synopsys的ARC® NPX6 NPU IP提供了一個兩全其美的解決方案,它是可同時應用於CNN和Transformer的AI加速器。NPX6的計算單元中包含卷積加速器(Convolution Accelerator),該加速器旨在處理對CNN和轉換器都至關重要的矩陣乘法。此外,張量加速器(Tencor Accelerator)也至關重要,因為它可以處理所有其他非卷積張量算子集架構(TOSA)運算,包括轉換器運算。

Transformer跨界之旅不停歇

目前,Transformer架構在不斷地被加強和擴展,衍生出很多不同的變種模型,使其應用領域不斷擴大,跨界之旅不停歇。

2022年,Google團隊提出了Vision Transformer(ViT),直接利用Transformer對圖像進行分類,而無需卷積網絡。該模型的準確率和識別時間均高於當時最先進的CNN架構。所以,ViT一經發布,就引起了業界轟動,它已經成為了圖像分類領域最著名的方法之一。但ViT需要進行的計算量非常大,導致其fps性能降低。

而Swin Transformer則採用了一種新的Attention方式,將Transformer的應用擴展至視頻領域。視頻相較於圖片來說,增加了時間維度,所以需要進行三維計算。SwinTransformer通過將Attention分別應用於時間和空間,可以實現動作識別,被廣泛應用於動作分類等領域。

除了基於Transformer進行擴展外,也有AI團隊將CNN和Transformer進行組合應用。特斯拉AI團隊就使用Transformer對矢量空間進行預測。CNN首先對車身上安裝的每個攝像頭拍攝的圖片進行特徵提取,Transformer則基於這些提取特徵進行預測。

蘋果於2022年初推出的MobileViT也是CNN和Transformer結合應用的案例之一。MobileViT針對移動應用程式的視覺分類創建了輕量級模型。與僅使用CNN的MobileNet相比,MobileViT使相同尺寸的模型(6M係數)的準確度提高了3%。

結語

如前文所述,CNN和Transformer各有各的技術特點,未來很長一段時間內,兩者不會是取代和被取代的關係,而是互相融合、取長補短,兩者組合應用的案例會越來越多。這種組合或許也會引領新一代AI的發展。

END

關鍵字: