Vision Transformer 的革命性突破
大家應該都聽過ChatGPT吧? 這麼強大的語言模型除了回答你日常問題,甚至是發想創意寫作文、寫程式碼、還會畫圖,這些任務都凸顯了AI大語言模型對文字理解的強大之處(如果對應用領域感興趣可以閱讀 ChatDev讓軟件開發像聊天一樣簡單 文章)。大型語言模型(LLM)的核心是Transformer架構,這個架構也能延伸至影像領域,這個有趣的結合成功讓Vision Transformer超越了過去影像辨識的SOTA模型,讓我們來介紹這個革命性的突破吧!
Vision Transformer是由Google的研究團隊提出的新方法,首先,讓我們先瞭解一下 Transformer 這個神奇的模型。Transformer 最初是為了處理自然語言而設計的,比如將中文翻譯成英文。它之所以強大,是因為它能夠通過自注意力機制捕捉到文本中詞與詞之間的複雜關係,即使這些詞彼此之間相隔非常遠。而且,Transformer 模型可以隨著資料集和模型大小的增加而變得更強大。
Vision Transformer (ViT) 的獨特設計:
首先將圖片切分成多個patches 如圖1,然後每個patch都會被編碼成向量X1, X2, ..., Xn。接著,這些編碼過的向量會經過一個Dense層,進行線性轉換,得到Z1, Z2, ..., Zn向量(圖2),那麼,你可能會問,圖片中的每一部分如何知道它在原始圖片中的位置呢?這就是這張圖片想要展示的核心概念——位置編碼。你可以看到有些狀如波浪的紅線(圖2上方),它們即代表位置編碼。這些位置編碼是加到每一個切割出來的小塊上的,確保模型知道每一部分在原始圖片中的確切位置。而這一步骤,對於圖像的整體語義以及物件之間的空間關係都非常關鍵。
圖1. 圖片切分成多個patches (Image Source: Shusen Wang) |
圖2. Encoder Network 運作過程圖(Image Source: Shusen Wang) |
如果不添加位置編碼,由於Transformer本身是不考慮元素的順序的,它會將打亂順序的patches視為相同的 (圖3)。因為自注意力機制(Self-attention)。但人類觀看左右兩張圖片明顯是正常的狗和打亂後的照片,所以位置資訊是必要的。
圖3. 右側為打亂順序的patches (Image Source: Shusen Wang) |
驚人的實驗結果(圖4):
Google 的研究團隊進行了針對 ViT 的大量實驗,並從結果中我們可以觀察到它在各種不同的預訓練數據集上,如 ImageNet、ImageNet-21k 和 JFT-300M 的表現。他們發現,當在大型數據集上進行預訓練後,ViT 在圖像識別任務上不僅能夠匹敌,甚至在某些情況下超越了當前最先進的卷積神經網路(CNN)。特別是當使用 JFT-300M 這樣的大型數據集時,ViT 的性能有著明顯的提升。而且,從圖中我們還可以看到,ViT 在不同模型大小和訓練樣本數量下的性能逐步增強,與此同時,某些 CNN 模型的性能似乎較快地達到了瓶頸。這些實驗數據無疑向我們展示了一個清晰的信號:ViT 在未來的圖像識別領域中將扮演一個重要角色!
圖4. 雖然大型ViT模型在小型資料集上的預訓練表現不如BiT ResNets(陰影區域),但在大型資料集上表現出色。同樣,隨著資料集的增大,較大的ViT變體超越了較小的ViT模型。(Image Source: Dosovitskiy et al., 2020) |
結尾:
透過這篇文章,我們看到了 Transformer 在圖像識別領域的巨大潛力和前景。ViT 的崛起不僅挑戰了傳統卷積神經網路的主導地位,而且還提供了一種全新的、更加有效的方式來處理和理解圖像數據。這種方法不依賴於對圖像的特殊知識或假設,只需充足的數據和適當的訓練策略。展望未來,我們有充分的理由相信 ViT 和其他類似的模型將在計算機視覺領域中發揮越來越重要的作用,帶來更多的創新和突破。
P.S.特別感謝 #ChatGPT 潤飾此篇文章。 🤖
撰文:許楷翊
參考文獻:
1. Dosovitskiy, A., Beyer, L., Kolesnikov, A., Weissenborn, D., Zhai, X., Unterthiner, T., ... & Houlsby, N. (2020). An image is worth 16x16 words: Transformers for image recognition at scale. arXiv preprint arXiv:2010.11929.
2. YouTube channel: Shusen Wang - https://www.youtube.com/watch?v=BbzOZ9THriY
留言
張貼留言