Vision Transformers 大有可為

2021年04月18日22:33:07 科技 1252

Vision Transformers 相關的研究最近非常的火,這篇文章是最近看到的,個人覺得相對講解比較通俗,以及很多圖解幫助理解。

因此,我也花了很多時間去翻譯(文章內容 6700字左右),如果對你有所幫助,歡迎給個三連。周末愉快!

Vision Transformers 大有可為 - 天天要聞

Transformers 簡介

Transformers 是一個非常強大的深度學習模型,已經能夠成為許多自然語言處理任務的標準,並準備徹底改變計算機視覺領域。

Vision Transformers 大有可為 - 天天要聞

這一切都始於2017年,谷歌大腦發表了一篇註定要改變一切的論文,Attention Is All You Need[4]。研究人員將這種新的體系結構應用於幾個自然語言處理問題,很快就可以看出,這種體系結構在多大程度上可以克服困擾RNN的一些限制,RNN通常用於從一種語言翻譯到另一種語言等任務。

這些年來,Transformers 已經成為自然語言處理領域的一個學派,谷歌大腦在2020年問道,變Transformers 在圖像上會同樣有效嗎?答案是肯定的,視覺 Transformers誕生了,經過對圖像的一些初步修改,他們成功地開發了Transformers的經典結構,並很快在這個領域的許多問題上達到了 state of the art 。

激動人心的是,幾個月後,在2021年初,Facebook的研究人員發布了一個新版本的Transformers,但是這次,特別是視頻,TimeSformers。顯然,即使在這種情況下,經過一些微小的結構變化,這種架構很快就成為視頻領域的贏家,Facebook在2021年2月宣布,它將把它與社交網站的視頻結合起來,為各種目的創建新的模型。

Why do we need transformers?

但是,讓我們退一步,探究促使谷歌研究人員尋找新的替代體系結構來解決自然語言處理任務的動機。

Vision Transformers 大有可為 - 天天要聞

傳統上,像翻譯這樣的任務是使用遞歸神經網路(Recurrent Neural Networks)來完成的,眾所周知,遞歸神經網路有很多問題。主要問題之一是它的順序操作。例如,要將一個句子從英語翻譯成義大利語,使用這種類型的網路,將要翻譯的句子的第一個單詞與初始狀態一起傳遞到編碼器,然後將下一個狀態與該句子的第二個單詞一起傳遞到第二個編碼器,依此類推直到最後一個單詞。最後一個編碼器的結果狀態隨後被傳遞給解碼器,解碼器作為輸出返回第一個翻譯的字和隨後的狀態,該狀態被傳遞給另一個解碼器,依此類推。

很明顯這裡的問題,要完成下一步,我必須有上一步的結果。這是一個很大的缺陷,因為你沒有利用現代gpu的並行化功能,因此在性能方面會有所損失。還有其他問題,如梯度爆炸,無法檢測同一句話中遠隔詞之間的依賴關係,等等。

Attention is all you need?

於是問題就出現了,有沒有一種機制可以讓我們以並行的方式計算,讓我們從句子中提取我們需要的信息?答案是肯定的,這種機制就是注意力(attention)。

Vision Transformers 大有可為 - 天天要聞

如果我們將注意力遺忘定義為任何技術和實現方面,我們將如何著手這樣做?

讓我們舉一個例句問問自己,把注意力集中在「gave」這個詞上,我應該把注意力放在這個句子中的哪些詞上,來增加這個詞的意思?我可能會問自己一系列問題,例如,誰給的?在這種情況下,我會把注意力集中在「I」這個詞上,然後我可能會問給誰了?把我的注意力放在查理這個詞上,最後,我可能會問,你給了我什麼?最後集中在食物這個詞上。

通過問我自己這些問題,也許對句子中的每個單詞都這樣做,我也許能夠理解其中的含義和方面。現在的問題是,如何在實踐中實現這個概念?

為了理解注意力的計算,我們可以將注意力的計算與資料庫世界進行比較。當我們在資料庫中進行搜索時,我們提交一個查詢(Q),並在可用數據中搜索一個或多個滿足查詢的鍵。輸出是與查詢最相關的鍵關聯的值。

Vision Transformers 大有可為 - 天天要聞


注意力計算的情況非常相似。我們首先把要計算注意力的句子看作一組向量。每個單詞,通過一個單詞嵌入機制,被編碼成一個向量。我們認為這些向量是搜索的關鍵,關於我們正在搜索的查詢,它可以是來自同一個句子(自我注意)或來自另一個句子的單詞。在這一點上,我們需要計算查詢和每個可用鍵之間的相似性,通過縮放點積進行數學計算。這個過程將返回一系列實際值,可能彼此非常不同,但是由於我們希望獲得0和1之間的權重,其和等於1,因此我們對結果應用SoftMax。一旦獲得了權重,我們就必須將每個單詞的權重以及它與查詢的相關性乘以表示它的向量。我們最終返回這些產品的組合作為注意向量。

為了建立這種機制,我們使用 linear layers,從輸入向量開始,通過矩陣乘法生成鍵、查詢和值。鍵和查詢的組合將允許在這兩個集合之間獲得最正確的匹配,其結果將與值組合以獲得最相關的組合。

Vision Transformers 大有可為 - 天天要聞

但是,如果我們想把注意力集中在一個單詞上,這個機制就足夠了,但是如果我們想從幾個角度看這個句子,然後並行計算幾次注意力,會怎麼樣?我們使用所謂的多頭注意力,其結構類似,其結果在最後簡單地組合,以返回所有計算出的注意力的單一匯總向量。

Vision Transformers 大有可為 - 天天要聞


既然我們已經了解了應該使用哪種機制並確定了它的可並行性,那麼讓我們分析一下多頭部注意力embedded的結構以及構成transformer.的結構。

Vision Transformers 大有可為 - 天天要聞

考慮到總是一個翻譯任務,讓我們首先關注圖像的左邊部分,編碼部分,它將整個句子作為輸入從英語翻譯成義大利語。在這裡我們已經看到,與RNN方法相比有一個巨大的革命,因為它不是逐字處理句子,而是完全提交。在進行注意力計算之前,表示單詞的向量與基於正弦和餘弦的位置編碼機制相結合,該機制將單詞在句子中的位置信息嵌入向量中。這一點非常重要,因為我們知道,在任何語言中,單詞在句子中的位置都是非常相關的,如果我們想做出正確的評價,這是絕對不能丟失的信息。所有這些信息都被傳遞到一個多頭注意機制中,其結果被標準化並傳遞給一個前饋。編碼可以進行N次以獲得更有意義的信息。

但是要翻譯的句子不是唯一輸入transformer的,我們有第二塊,解碼器,它接收到transformer先前執行的輸出。例如,如果我們假設我們已經翻譯了前兩個單詞,並且我們想用義大利語預測句子的第三個單詞,我們將把前兩個翻譯的單詞傳給解碼器。將對這些單詞執行位置編碼和多頭部注意,結果將與編碼器結果相結合。對組合重新計算注意,結果通過linear layer和softmax,將成為潛在候選詞的向量,作為新翻譯詞,並且每個詞都有關聯的概率。在下一次迭代中,解碼器除了前面的單詞之外,還將接收這個單詞。

因此,這種結構被證明是非常有效和高性能的,這是因為它處理整個句子,而不是逐字逐句,保留有關單詞在句子中位置的信息,並利用注意力這一能夠有效表達句子內容的機制。

Vision Transformers 大有可為 - 天天要聞

在所有這些很好的解釋之後,你可能會認為transformer是完美的,沒有任何缺陷。很顯然,它不是這樣的,它的優點之一也是它的缺點,計算注意!

Vision Transformers 大有可為 - 天天要聞

為了計算每個單詞相對於所有其他單詞的注意力,我必須執行N²計算,即使部分可並行,仍然非常昂貴。有了這樣的複雜性,讓我們想像一下,在一段幾百字的文字上,多次計算注意力意味著什麼。

從圖形上你可以想像一個矩陣,它必須填充每個單詞相對於其他單詞的注意力值,這顯然是有昂貴的成本。必須指出的是,通常在解碼器上,可以計算隱藏的注意,避免計算查詢詞和所有後續詞之間的注意。

Vision Transformers 大有可為 - 天天要聞

有些人可能會爭論,但如果transformer帶來的許多好處都與注意力機制有關,那麼我們真的需要上面提到的所有結構嗎?但2017年的第一份谷歌大腦論文不是說「注意力就是你所需要的一切」嗎?[4] 當然是合法的,但在2021年3月,谷歌研究人員再次發表了一篇題為「注意力不是你所需要的全部」的論文[6]。那是什麼意思?研究人員進行了實驗,分析了在沒有transformer任何其他組件的情況下進行的自我注意機制的行為,發現它以雙指數速率收斂到秩1矩陣。這意味著這種機制本身實際上是無用的。那麼為什麼transformer如此強大呢?這是由於減少矩陣秩的自我注意機制與transformer的另外兩個組成部分跳躍連接和MLP之間的拉鋸戰。

Vision Transformers 大有可為 - 天天要聞

第一種方法允許路徑的分布多樣化,避免獲得所有相同的路徑,這大大降低了矩陣被降為秩1的概率。MLP由於其非線性,因此能夠提高生成矩陣的秩。相反,有人表明,規範化在避免這種自我注意機制的行為方面沒有作用。因此,注意力不是你所需要的全部,而是transformer架構設法利用它的優勢來取得令人印象深刻的結果。

Vision Transformers

到了2020年,谷歌的研究人員又一次想到了這一點,「但是,如果人們發現Transformers在自然語言處理領域如此有效,它們將如何處理圖像呢?」. 有點像NLP,我們從注意力的概念開始,但這一次適用於圖像。讓我們試著通過一個例子來理解它。

Vision Transformers 大有可為 - 天天要聞

Image from 「An Image Is Worth 16x16 words」 (Dosovitskiy et al)

如果我們考慮一張狗站在牆前的照片,我們中的任何人都會說這是一張「picture of a dog」,而不是一張「picture of a wall」,這是因為我們把注意力集中在圖像的主要和有區別的主體上,而這正是應用於圖像的注意力機制所做的。

既然我們理解了注意力的概念也可以擴展到圖像上,我們只需要找到一種方法,將圖像輸入到一個經典的transformer中。

我們知道 transformer把文字作為輸入向量,那麼我們怎樣才能把圖像轉換成向量呢?當然,第一種解決方案是使用圖像的所有像素並將它們「內聯」以獲得向量。但是讓我們停一下,看看如果我們選擇這個選項會發生什麼。

Vision Transformers 大有可為 - 天天要聞

我們之前說過,注意力的計算複雜度等於O(N²),這意味著如果我們必須計算每個像素相對於所有其他像素的複雜度,那麼在像256x256像素這樣的低解析度圖像中,我們的計算量會非常大,用現在的資源絕對無法克服。所以這種方法肯定是不可行的。

解決方案非常簡單,在「一幅圖像值16x16個字」[2]一文中,提出將圖像分割成塊,然後使用線性投影將每個塊轉化為向量,將塊映射到向量空間中。

Vision Transformers 大有可為 - 天天要聞

現在我們只需要去看看Vision Transformer的架構。

Vision Transformers 大有可為 - 天天要聞

然後將圖像劃分為多個小塊(patches),這些patches通過線性投影獲得向量,這些向量與關於patches在圖像中的位置的信息耦合,並提交給經典transformer。在圖像中添加關於patches原始位置的信息是基本的,因為在線性投影過程中,即使充分理解圖像的內容非常重要,這些信息也會丟失。插入另一個向量,該向量獨立於所分析的圖像,用於獲得關於整個圖像的全局信息,實際上,與該面片對應的輸出是唯一被考慮並傳遞到MLP的輸出,MLP將返回預測類。

然而,在這個過程中,有一點是信息損失非常嚴重的。實際上,在從patch到矢量的轉換過程中,任何關於像素在patch中位置的信息都會丟失。(Transformer-in-Transformer,TnT)[3]的作者指出,這當然是一件很嚴重的事情,因為要進行質量預測,我們不希望丟失待分析圖像一部分中像素的排列。

TnT的作者接著問自己,有沒有可能找到一種更好的方法讓向量提交給Transformer?他們的建議是將圖像的每一個單獨的patch(pxp),它們本身就是3個RGB通道上的圖像,並將其轉換成一個c通道張量。然後將這個張量分成p'部分,其中p'<p,在示例p'=4中。這就產生了c維中的p'向量。這些向量現在包含關於面片內像素排列的信息。

Vision Transformers 大有可為 - 天天要聞

然後將它們串聯併線性投影,以便使它們與從原始面片的線性投影獲得並與之結合的向量大小相同。

Vision Transformers 大有可為 - 天天要聞

通過這樣做,transformer的輸入向量也會受到patch內像素排列的影響,通過這樣做,作者設法進一步提高了各種計算機視覺任務的性能。

TimeSformers

鑒於transformers在NLP中取得了巨大的成功,然後又將其應用於圖像,2021年,Facebook的研究人員試圖將這種架構應用於視頻。

直觀地說,很明顯這是可能的,因為我們都知道,視頻不過是一組幀一個接一個,幀不過是圖像。

Vision Transformers 大有可為 - 天天要聞


只有一個小細節,使他們不同於 Vision Transformers,你必須考慮到不僅是空間,而且時間。事實上,在這種情況下,當我們去計算注意力時,我們不能把這些幀看作孤立的圖像,但我們應該找到某種形式的注意力,考慮到連續幀之間發生的變化,因為它是視頻評估的中心。

為了解決這個問題,作者提出了幾種新的注意機制,從那些只關注空間的,主要用作參考點的,到那些在空間和時間之間軸向、分散或聯合計算注意的機制。

Vision Transformers 大有可為 - 天天要聞

Vision Transformers 大有可為 - 天天要聞

Image from 「An Image Is Worth 16x16 words」 (Dosovitskiy et al)

然而,取得最佳效果的方法是 Divided Space-Time Attention。它包括,給定一幀在瞬間t和它的一個patches作為一個查詢,計算整個幀上的空間注意,然後在查詢的同一patches中,但在前一幀和下一幀上的時間注意。

但為什麼這種方法如此有效呢?原因是它比其他方法學習更多獨立的特徵,因此能夠更好地理解不同類別的視頻。我們可以在下面的可視化中看到這一點,其中每個視頻都由空間中的一個點表示,其顏色表示它所屬的類別。

Vision Transformers 大有可為 - 天天要聞

Image from 「An Image Is Worth 16x16 words」 (Dosovitskiy et al)

作者還質疑了視頻解析度和視頻幀數的相關性,發現解析度越高,模型的準確性就越好。至於幀數,同樣隨著幀數的增加,精確度也會增加。有趣的是,不可能用比圖中顯示的幀數更多的幀數進行測試,因此潛在的精確度仍然可以提高,我們還沒有找到這種提高的上限。

Vision Transformers 大有可為 - 天天要聞

在Vision Transformers中,一個較大的訓練數據集通常會導致更好的精確度。作者也在TimeSformers上檢查了這一點,而且隨著所考慮的訓練視頻數量的增加,準確率也會增加。

Vision Transformers 大有可為 - 天天要聞

Conclusions

現在該怎麼辦?Transformers剛剛登陸計算機視覺領域,似乎下定決心要取代傳統的卷積網路,或者至少在這一領域為自己開闢一個重要的角色。因此,科學界正處於混亂之中,試圖進一步改進Transformers,將其與各種技術結合起來,並將其應用於實際問題,最終能夠做一些直到最近才可能做到的事情。像Facebook和Google這樣的大公司正在積極開發和應用Transformers,我們可能還只是觸及了表面。

References and insights

[1] 」Gedas Bertasius, Heng Wang, and Lorenzo Torresani」. 」Is Space-Time Attention All You Need for Video Understanding?」.

[2] 」Alexey Dosovitskiy et al.」. 」An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale」.

[3] 」Kai Han et al.」. 」Transformer in Transformer」.

[4] 」Ashish Vaswani et al.」. 」Attention Is All You Need」.

[5] 」Qizhe Xie et al.」. 」Self-training with Noisy Student improves ImageNet classification」.

[6] 「Yihe Dong et al.」, 「Attention is Not All You Need: Pure Attention Loses Rank Doubly Exponentially with Depth」

[7] 「Nicola Messina et al.」, 「Transformer Reasoning Network for Image-Text Matching and Retrieval」

[8] 「Nicola Messina et al.」, 「Fine-grained Visual Textual Alignment for Cross-Modal Retrieval using Transformer Encoders」

[9] 「Davide Coccomini」, 「TimeSformer for video classification with training code」

科技分類資訊推薦

長安與東風重組新進展:朱華榮稱不會改變長安既定戰略 - 天天要聞

長安與東風重組新進展:朱華榮稱不會改變長安既定戰略

2月9日,長安汽車和東風集團股份(00489.HK)同步發布了控股股東「正在與其他國資央企集團籌劃重組事項」的信息。長安汽車的控股股東是兵裝集團,而東風集團股份的控股股東是東風公司。隨即,長安汽車和東風集團這兩家汽車央企將合併重組,成為業內關注的焦點。
公安部出手了!年齡限制放寬10年、送考下鄉,2025年考駕照不難了 - 天天要聞

公安部出手了!年齡限制放寬10年、送考下鄉,2025年考駕照不難了

電動車加強管理以後,要求機動車類型的車輛需要持證上路,但是老年人考駕照卻受阻,一方面有年齡的限制,另一方面偏遠山區考駕照不方便,所以在2025年公安部出手了,年齡限制放寬10年,同時推出送考下鄉服務,還進一步的降低考駕照的費用,2025年起考摩托車駕照不難了。
從「星靈安全守護體系」到昊鉑HL,看懂廣汽科技日 - 天天要聞

從「星靈安全守護體系」到昊鉑HL,看懂廣汽科技日

發布會以技術切入,並全程圍繞安全展開。廣汽集團董事長、總經理馮興亞率先登場,宣布2025年四季度將正式上市支持L3級智能駕駛的車型,他同時強調面向自動駕駛時代對智能駕駛技術、整車安全架構以及突發風險處理能力的要求更高。如何才能滿足更高的要求?馮興亞提到了「廣汽
關稅大棒下,最受傷的車企出現了 - 天天要聞

關稅大棒下,最受傷的車企出現了

特朗普的關稅大棒剛揮出,尚未嚇退「外敵」,卻先刺痛了自己。近日,擁有瑪莎拉蒂、Jeep等14個品牌的全球第四大車企斯泰蘭蒂斯突然宣布裁撤900名美國工人,關閉加拿大和墨西哥兩家工廠,北美生產線陷入癱瘓。幾乎同一時間,捷豹路虎宣布暫停對美出口一個月,奧迪更是直接