視覺應(yīng)用作為人工智能最普及的基礎(chǔ)設(shè)施層,重要性卻不言而喻。它可以說是人工智能機器的‘眼睛’,賦予它感知的能力,使它能夠‘看懂’這個世界。而計算機視覺中的深度神經(jīng)網(wǎng)絡(luò)(DNN)架構(gòu)則是這雙眼睛的‘視網(wǎng)膜’,賦予了它可視的源泉。
CNN橫空出世
2012年,一個名為AlexNet的CNN算法贏得了年度計算機視覺競賽——ImageNet大規(guī)模視覺識別挑戰(zhàn)賽(ILSVRC)的冠軍。該競賽的任務(wù)是讓機器進行學習并基于ImageNet數(shù)據(jù)集‘分類’1000個不同的圖像,AlexNet實現(xiàn)了15.3%的top-5錯誤率。而往屆基于傳統(tǒng)編程模型的獲勝者,它們實現(xiàn)的top-5錯誤率大約為26%,至此,CNN橫空出世。
CNN(Convolutional Neural Network)即卷積神經(jīng)網(wǎng)絡(luò),它是一種前饋神經(jīng)網(wǎng)絡(luò),也是計算機視覺中最主要和最經(jīng)常使用的DNN架構(gòu)。CNN在大型圖像處理方面表現(xiàn)出色,可以說它的出現(xiàn)在圖像分類領(lǐng)域具有革命性意義。
在CNN出現(xiàn)前,圖像識別和分類對于人工智能來說是一個難題,原因有二,一是圖像需要處理的數(shù)據(jù)量很大,導致成本高、效率低;二是,圖像在數(shù)字化過程中很難保留其原有特征,導致圖像處理的準確率不高。
而CNN的出現(xiàn)很好解決了上述兩大難題。CNN主要由三個部分構(gòu)成,卷積層、池化層和全連接層。卷積層負責提取圖像特征,將大量的圖像數(shù)據(jù)‘大事化小’,即將圖像的大量參數(shù)降維為少量參數(shù),再做處理,而池化層則對提取的圖像特征進行降維及防止過擬合,保留圖像的原始特征,最后通過全連接層輸出結(jié)果。
隨著CNN模型的不斷完善,在2016年和2017年的ILSVRC挑戰(zhàn)賽上,獲勝的CNN甚至實現(xiàn)了比人類更高的圖像分類準確度。這也讓CNN在諸多視覺領(lǐng)域得到廣泛應(yīng)用,如目標檢測、場景分割和全景分割等。
但CNN是一種只關(guān)注局部信息的網(wǎng)絡(luò)結(jié)構(gòu),將它使用在圖像特征提取上或許還可以,但它在文本信息處理上則難以捕捉和存儲長距離的依賴信息。
Transformer應(yīng)運而生
2017年,Google Brain在題為《Attention is all you need》的論文中首次詳細介紹了Transformer(轉(zhuǎn)換器)模型,該模型最初是為執(zhí)行自然語言處理(NLP)任務(wù)而設(shè)計的,具體應(yīng)用包括翻譯、問答以及對話式AI等。目前大火的ChatGPT的GPT-3訓練模型就是Transformer模型的一種。
而后在2021年,Google Brain又嘗試將Transformer模型應(yīng)用于圖像分類,取得了令人驚訝的結(jié)果。通常Transformer模型在執(zhí)行NLP任務(wù)時,需要處理的是一連串單詞和符號,Google Brain將其應(yīng)用于圖像分類時,則是將圖像切分成一個個小塊,然后將這些小塊圖像中的像素放入矢量中,再將這些矢量傳送至Transformer中進行處理,最后得到的分類準確率甚至比當時最先進的CNN還高。
Transformer Vs CNN架構(gòu)對比
那為何Transformer能夠挑戰(zhàn)在視覺應(yīng)用領(lǐng)域稱霸十幾年的CNN呢?這可以從兩者的結(jié)構(gòu)和機制對比中窺得一二。
如下圖所示的Transformer和CNN(以3X3卷積為例)的架構(gòu)圖可見,Transformer和CNN的架構(gòu)非常相似,Transformer的Feed Forward層的功能和CNN的1X1卷積層的相同,都使用矩陣乘法對像素中的每個點進行線性變換。
(圖源:新思科技)
Transformer和CNN架構(gòu)最大的不同在于Multi-Head Attention層和3X3卷積層。這兩個層的作用都是混合相鄰像素之間的信息。但如下圖所示,這兩個機制混合信息的方式則非常不同。
(圖源:新思科技)
以卷積方式混合信息是基于各個像素的固定空間位置,以3X3卷積為例,它只采用相鄰像素(即中心像素周圍的9個像素)來計算加權(quán)和;而Attention混合信息的方式則不是基于固定空間位置的像素,而是更關(guān)注于權(quán)重。例如,它會學習其它像素的類型,獲取其它像素與目標像素之間相似的權(quán)重,從而判斷出需要混合哪些像素。
所以,相較于卷積,Attention機制具有更強的學習能力和表達更復雜關(guān)系的能力。此外,Transformer還有一個CNN沒有的特性,即Embedding,它的主要功能是為輸入的像素添加位置信息。
從上可以看出,兩種架構(gòu)各有特點。但實時視覺應(yīng)用不僅需要準確度,還需要更高的性能(fps)、縮小模型尺寸以及功率和面積效率等。Transformer在準確度方面高于CNN,但在fps方面則可能遜色于CNN;Transformer的attention機制可進行全局特征的提取,而CNN在局部建模方面更有效。兩者各具特色,在未來的AI應(yīng)用中,兩者不會是替代關(guān)系,而更多的是組合應(yīng)用。
加速器加持
隨著人工智能技術(shù)的不斷發(fā)展,不管是基于CNN還是Transformer架構(gòu),需要處理的任務(wù)都越來越復雜,需要計算的量也將顯著增加,從而導致它們的結(jié)構(gòu)越來越龐大。為了加快任務(wù)完成的時間和效率,這時,就需要加速器的加持。但目前很多專門為CNN設(shè)計的加速器無法兼容有效地執(zhí)行Transformer。
Synopsys的ARC? NPX6 NPU IP提供了一個兩全其美的解決方案,它是可同時應(yīng)用于CNN和Transformer的AI加速器。NPX6的計算單元中包含卷積加速器(Convolution Accelerator),該加速器旨在處理對CNN和轉(zhuǎn)換器都至關(guān)重要的矩陣乘法。此外,張量加速器(Tencor Accelerator)也至關(guān)重要,因為它可以處理所有其他非卷積張量算子集架構(gòu)(TOSA)運算,包括轉(zhuǎn)換器運算。
Transformer跨界之旅不停歇
目前,Transformer架構(gòu)在不斷地被加強和擴展,衍生出很多不同的變種模型,使其應(yīng)用領(lǐng)域不斷擴大,跨界之旅不停歇。
2022年,Google團隊提出了Vision Transformer(ViT),直接利用Transformer對圖像進行分類,而無需卷積網(wǎng)絡(luò)。該模型的準確率和識別時間均高于當時最先進的CNN架構(gòu)。所以,ViT一經(jīng)發(fā)布,就引起了業(yè)界轟動,它已經(jīng)成為了圖像分類領(lǐng)域最著名的方法之一。但ViT需要進行的計算量非常大,導致其fps性能降低。
而Swin Transformer則采用了一種新的Attention方式,將Transformer的應(yīng)用擴展至視頻領(lǐng)域。視頻相較于圖片來說,增加了時間維度,所以需要進行三維計算。SwinTransformer通過將Attention分別應(yīng)用于時間和空間,可以實現(xiàn)動作識別,被廣泛應(yīng)用于動作分類等領(lǐng)域。
除了基于Transformer進行擴展外,也有AI團隊將CNN和Transformer進行組合應(yīng)用。特斯拉AI團隊就使用Transformer對矢量空間進行預測。CNN首先對車身上安裝的每個攝像頭拍攝的圖片進行特征提取,Transformer則基于這些提取特征進行預測。
蘋果于2022年初推出的MobileViT也是CNN和Transformer結(jié)合應(yīng)用的案例之一。MobileViT針對移動應(yīng)用程序的視覺分類創(chuàng)建了輕量級模型。與僅使用CNN的MobileNet相比,MobileViT使相同尺寸的模型(6M系數(shù))的準確度提高了3%。
結(jié)語
如前文所述,CNN和Transformer各有各的技術(shù)特點,未來很長一段時間內(nèi),兩者不會是取代和被取代的關(guān)系,而是互相融合、取長補短,兩者組合應(yīng)用的案例會越來越多。這種組合或許也會引領(lǐng)新一代AI的發(fā)展。
作者: 蘇嵐