成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解決 NLP 任務的 Transformer 為什么可以應用于計算機視覺?

人工智能 機器視覺 架構
在這篇文章中,我們探索了兩種基礎架構,它們使Transformer能夠闖入計算機視覺的世界。

幾乎所有的自然語言處理任務,從語言建模和masked詞預測到翻譯和問答,在2017年Transformer架構首次亮相后都經歷了革命性的變化。Transformer在計算機視覺任務中也表現出色,只用了2-3年的時間。在這篇文章中,我們探索了兩種基礎架構,它們使Transformer能夠闖入計算機視覺的世界。

一、視覺Transformer

1. 主要思想

視覺Transformer的意圖是將標準變換器架構泛化,以處理和從圖像輸入中學習。關于架構的一個主要思想是作者足夠透明地強調了:

“受到NLP中Transformer擴展成功的啟發,我們嘗試直接將標準Transformer應用于圖像,盡可能少地進行修改?!?/p>

2. 操作

可以非常字面地理解“盡可能少的修改”,因為他們幾乎完全沒有修改。他們實際修改的是輸入結構:

  • 在NLP中,Transformer編碼器采用代表輸入句子/段落的獨熱向量序列(或等價的標記索引),并返回可用于進一步任務(例如,分類)的上下文embedding向量序列。
  • 為了泛化到計算機視覺,視覺Transformer采用代表輸入圖像的patch向量序列,并返回可用于進一步任務(例如,分類)的上下文embedding向量序列。

特別是,假設輸入圖像的維度為(n,n,3),要將其作為輸入傳遞給Transformer,視覺Transformer的操作如下:

  • 將其劃分為k2個patch,k為某個值(例如,k=3),如圖中所示。
  • 現在每個patch將為(n/k,n/k,3),下一步是將每個patch展平為向量。

patch向量將是維度為3*(n/k)(n/k)的向量。例如,如果圖像是(900,900,3),我們使用k=3,那么patch向量將具有維度300300*3,代表展平patch中的像素值。在論文中,作者使用k=16。因此,論文的名稱為“一幅圖像值16x16個詞:大規模圖像識別的Transformer”,而不是提供代表單詞的獨熱向量,他們代表代表圖像patch的像素向量。

其余的操作與原始Transformer編碼器保持不變:

  • 這些patch向量通過一個可訓練的embedding層傳遞
  • 向每個向量添加位置embedding,以保持圖像中的空間信息
  • 輸出是num_patches編碼器表示(每個補丁一個),可用于對補丁或圖像級別進行分類
  • 更常見的(如在論文中),在表示前添加CLS標記,相應的用于對整個圖像進行預測(類似于BERT)

Transformer解碼器呢?

記住它就像Transformer編碼器;不同之處在于它使用masked自注意而不是自注意(但相同的輸入簽名保持不變)。無論如何,你應該很少使用僅解碼器的Transformer架構,因為簡單地預測下一個patch可能不是非常感興趣的任務。

3. 混合架構

作者還提到,可以以CNN特征圖而不是圖像本身作為輸入來形成混合架構(CNN將輸出傳遞給視覺Transformer)。在這種情況下,我們將輸入視為通用的(n,n,p)特征圖,patch向量將具有維度(n/k)*(n/k)*p。

4. 結構的喪失

你可能會想到這種架構不應該這么好,因為它將圖像視為線性結構,而它并不是。作者試圖通過提到來描繪這是有意為之:

The two-dimensional neighborhood structure is used very sparingly…position embeddings at initialization time carry no information about the 2D positions of the patches and all spatial relations between the patches have to be learned from scratch

我們將看到Transformer能夠學習這一點,這在其實驗中的好表現中得到了證明,更重要的是,下一篇論文中的架構。

5. 結果

結果的主要結論是,視覺Transformer在小數據集上往往不能超越基于CNN的模型,但在大數據集上接近或超越基于CNN的模型,無論如何都需要顯著減少計算量:

在這里我們可以看到,對于JFT-300M數據集(擁有3億張圖像),在該數據集上預訓練的ViT模型超越了基于ResNet的基線,同時大大減少了預訓練所需的計算資源。可以看到,他們使用的較大的視覺Transformer(ViT-Huge,有632M參數和k=16)使用了ResNet模型所用計算量的約25%,并且仍然超越了它。性能甚至在使用僅<6.8%計算量的ViT-Large時并沒有降低那么多。

與此同時,其他人也暴露了結果,當在僅有130萬圖像的ImageNet-1K上訓練時,ResNet的表現明顯更好。

6. 通過Masking進行自監督學習

作者對自監督的  masked patch 預測進行了初步探索,模仿BERT中使用的masked語言建模任務(即 masked patch并嘗試預測它們)。

“We employ the masked patch prediction objective for preliminary self-supervision experiments. To do so we corrupt 50% of patch embeddings by either replacing their embeddings with a learnable [mask] embedding (80%), a random other patch embedding (10%) or just keeping them as is (10%).”

通過自監督預訓練,他們較小的ViT-Base/16模型在ImageNet上達到了79.9%的準確率,比從頭開始訓練有2%的顯著提高。但仍然比有監督預訓練落后4%。

二、Masked 自編碼視覺Transformer

1. 主要思想

正如我們從視覺Transformer論文中看到的,通過masked輸入圖像中的patch進行預訓練所獲得的收益并不像在普通的NLP中那樣顯著,那里masked預訓練可以在一些微調任務中取得最先進的結果。

這篇論文提出了一種涉及編碼器和解碼器的視覺Transformer架構,當使用masked進行預訓練時,與基礎視覺Transformer模型相比,可以獲得顯著的改進(與以有監督方式訓練基礎尺寸視覺Transformer相比,改進高達6%)。

這是一些示例(輸入,輸出,真實標簽)。從某種意義上說,它是一個自編碼器,因為它試圖在填充缺失patch的同時重建輸入。

2. 架構

他們的編碼器只是我們前面解釋的普通視覺Transformer編碼器。在訓練和推理中,它只采用“觀察到”的patch。與此同時,他們的解碼器也是普通的視覺Transformer編碼器,但它采用:

  • 缺失patch的masked標記向量
  • 已知patch的編碼器輸出向量

所以對于圖像[[A, B, X], [C, X, X], [X, D, E]],其中X表示缺失的patch,解碼器將采用補丁向量序列[Enc(A), Enc(B), Vec(X), Vec(X), Vec(X), Enc(D), Enc(E)]。Enc返回給定patch向量的編碼器輸出向量,X是表示缺失標記的向量。

解碼器中的最后一層是一個線性層,它將上下文embedding(由解碼器中的視覺Transformer編碼器產生)映射到與patch大小相等長度的向量。損失函數是均方誤差,它計算原始patch向量和這一層預測的向量之間的差異的平方。在損失函數中,我們只關注由于masked標記而進行的解碼器預測,并忽略對應于存在的預測(即,Dec(A),Dec(B),Dec(C)等)。

3. 最后評論和示例

作者建議在圖像中masked大約75%的patch,這可能令人驚訝;BERT只會masked大約15%的單詞。他們這樣解釋:

“Images,are natural signals with heavy spatial redundancy — e.g., a missing patch can be recovered from neighboring patches with little high-level understanding of parts, objects, and scenes. To overcome this difference and encourage learning useful features, we mask a very high portion of random patches.”

責任編輯:趙寧寧 來源: 小白玩轉Python
相關推薦

2011-11-07 14:52:14

AMDInterlagos超級計算機

2023-07-07 10:53:08

2021-05-21 09:29:57

計算機互聯網技術

2023-02-10 11:46:26

2023-09-04 15:15:17

計算機視覺人工智能

2025-05-26 08:36:25

Gemini模型聊天機器人Gemini

2020-12-21 14:40:10

Java技術開發

2023-11-01 14:51:21

邊緣計算云計算

2011-12-01 10:55:16

超級計算機高性能計算Top500

2023-09-20 16:31:03

人工智能

2021-08-30 09:00:00

人工智能計算機視覺機器學習

2018-03-13 15:31:09

區塊鏈

2023-11-24 16:38:38

無人機計算機視覺

2020-12-16 19:28:07

深度學習計算機視覺Python庫

2020-12-15 15:40:18

深度學習Python人工智能

2021-05-19 09:00:00

人工智能機器學習技術

2023-04-04 08:25:31

計算機視覺圖片

2023-10-30 00:14:34

Agent提示工程LLM

2020-12-14 08:00:31

計算機計數程序

2012-12-16 15:26:49

超級計算機LinuxHPC
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人精品 | 日韩免费毛片视频 | 欧美一区二区三区在线观看 | 国产成人精品久久二区二区91 | 亚洲精品久久久久中文字幕欢迎你 | 免费高清av| 欧美在线一区二区三区 | 精品视频免费 | 日韩欧美精品在线 | 久久99精品国产 | 欧美一二三 | 韩国久久| 国产精品一区二区三区久久 | 欧美成人自拍 | 91社影院在线观看 | 日日日日日日bbbbb视频 | 中文字幕第90页 | 成人在线视频网 | 久久久网 | 三级黄视频在线观看 | 久久久久久久久综合 | av毛片| 日韩一级在线 | 99reav | 亚洲视频精品在线 | 81精品国产乱码久久久久久 | 国产精品一区二区三区四区 | 日本一区二区视频 | 男人天堂久久久 | 日韩精品久久久 | 国产黄色大片在线观看 | 国产一区二区在线91 | 91国在线视频 | 黄色小视频大全 | 亚洲欧美一区二区三区国产精品 | 日韩国产精品一区二区三区 | 欧美日韩亚洲视频 | 91精品国产综合久久香蕉922 | 欧美jizzhd精品欧美巨大免费 | 午夜av在线| 国产精品久久久久久久久久久久久 |