主頁 >  其他 > 【論文筆記】An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (ViT)

【論文筆記】An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (ViT)

2021-02-18 10:35:45 其他

【論文筆記】An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale(Vision Transformer, ViT)

  • 文章題目:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
  • 作者:Dosovitskiy, A., Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, M. Dehghani, Matthias Minderer, Georg Heigold, S. Gelly, Jakob Uszkoreit and N. Houlsby
  • 時間:2020
  • 來源:ICLR 2021 / ArXiv
  • paper:http://arxiv.org/pdf/2010.11929v1
  • code:https://github.com/google-research/vision_transformer , https://github.com/lucidrains/vit-pytorch , https://github.com/likelyzhao/vit-pytorch
  • 參考:Dosovitskiy, A., Beyer, L., Kolesnikov, A., et al (2020). An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale.ArXiv, abs/2010.11929.

感性認識

  • 研究的基本問題
    將Transformer直接應用于影像領域,進行影像分類任務,而不修改Transformer架構,也不使用CNN,
  • 主要想法
    將image分割成大小一致的patch,對應于NLP中的token,再將其進行嵌入表示,成為Transformer的輸入,在patch前加入一個class表示,對應全域資訊(圖片分類),進行最終的預測,
  • 結果與結論
    在中規模資料上,表現一般,在大規模資料集預訓練下,表現優異,且節省訓練開銷,
  • 不足與展望
    1.無法保留影像的二維結構資訊(區域特性,歸納偏置),要依靠大量資料來彌補,
    2.預訓練與微調的開銷問題,如何更有效利用自監督的預訓練,
    3.將transformer應用于cv中的其他領域,

理性認識

1. 摘要(abstract)

盡管Transformer架構已經在自然語言處理領域大殺特殺,但是在計算機視覺領域只有有限的應用,在視覺領域中,注意力機制要么與卷積網路結合使用,要么在保持整體結構不變的情況下,替換卷積網路的某些組件,我們證明了,對CNN的依賴不是必要的,在圖象識別任務中,在影像塊(image patches)的序列上應用純粹的Transformer模型也可以表現得很好,當使用大量資料進行預訓練,再遷移到多個中小型圖象識別基準庫后,ViT得到了優異的結果,相比于最先進(SOTA)的卷積網路,而訓練所需要的計算資源更少,

2. 引言(INTRODUCTION)

基于Self-attention的架構,特別是Transformer,已經成為自然語言處理(NLP)的不二選擇,其主要方法是在一個大型文本語料庫上進行預訓練,然后在一個較小的特定于任務的資料集上進行微調,得益于Transformer的計算效率和可擴展性,它可以訓練具有超過100B的引數的超大模型,而且隨著模型和資料集的增長,性能仍然沒有飽和的跡象,

當然,在計算機視覺中,卷積仍然占主導地位,受NLP成功的啟發,許多作業嘗試將Self-attention融合進cnn架構,甚至一些人使用Self-attention替換卷積,后一種模型雖然理論上有效,但還沒有在現代硬體加速器上得到有效擴展,因此,在大規模影像識別中,經典的ResNet(殘差網路)式結構仍然是最先進的,

受NLP中Transformer成功的啟發,我們嘗試將一個標準Transformer直接應用到影像上,盡可能少的修改,為此,我們將影像分割成小塊,并將這些塊轉化為線性嵌入序列,作為Transformer的輸入,影像塊(image patches)就相當于NLP任務中的單詞(token)來做處理,并以有監督的方式訓練影像分類模型,

當在中等規模的資料集(如ImageNet)上進行訓練時,模型的準確率比同等規模的resnet低幾個百分點,這一看似令人沮喪的結果是意料之中的:Transformer缺乏cnn所固有的一些歸納偏置(inductive biases),如平移不變性(translation equivariance)和區域性(locality),因此在資料量不足的情況下訓練時不能很好地泛化,

然而,如果在更大的資料集(1400 -300萬張影像)上訓練模型,情況就會發生變化,我們發現大規模的訓練可以克服歸納偏置(inductive biases),當ViT在足夠的規模上進行預先訓練,并遷移到具有較少資料量的任務時,可以獲得出色的結果,

3.相關作業

Transformer是由Vaswani等人提出,應用于機器翻譯,并已成為許多自然語言處理任務中最先進的方法,基于Transformer的大型模型通常在大型語料庫上進行預先訓練,然后針對當前的任務進行微調,

單純地對影像進行Self-attention需要每兩個像素計算attention,這是像素的平方倍的開銷,為了將Transformer應用到影像中,嘗試許多近似方法,Parmar等人對每個query像素只在區域鄰域計算Self-attention,而非全域,這種區域多頭點積Self-attention塊可以完全替代卷積,其他的,稀疏Transformer采用可擴展的近似全域Self-attention,以適用于影像,計算attentio的另一種方法是將其應用于不同大小的塊中,在極端情況下,僅沿著單個軸,這些專門的注意力架構在計算機視覺任務中表現出了很好的效果,但需要復雜的工程設計,

最為相關的是Cordonnier等人的模型,該模型從輸入影像中提取大小為2 × 2的小塊,并在之上使用完全的Self-attention,這個模型與ViT非常相似,但我們的作業進一步證明,大規模的預培訓可以使香草Transformer與最先進的cnn競爭(甚至更好),此外,Cordonnier 使用的是2 × 2像素的小塊,這使得該模型僅適用于小解析度的影像,而我們也可以處理中等解析度的影像,

最近的另一種相關模型是image GPT (iGPT),它在降低影像解析度和顏色空間后,對影像像素使用Transformer,該模型以無監督的方式作為生成模型進行訓練,然后可以對結果表示進行微調或線性探測以提高分類性能,在ImageNet上達到72%的最大精度,

4.方法(Method)

在模型設計中,盡可能地遵循原Transformer結構,這樣做的優點是可擴展性和易實作——幾乎可以開箱即用,

4.1 VIT

結構圖:
結構

標準的接受token的一維嵌入向量作為輸入,為了處理二維資料,要進行reshape,
原始影像輸入:(H,W)是圖片解析度,C是通道數 x ∈ R H × W × C \text{x\ }\in \ \mathbb{R}^{H\times W\times C} x RH×W×Creshape(分割patch):P是patch的大小,N是patch的個數 x ∈ R N × ( P 2 ? C ) , N = H W / P 2 \text{x\ }\in \ \mathbb{R}^{N\times \left( P^2\cdot C \right)} , N=HW/P^2 x RN×(P2?C)N=HW/P2flatten(拍平,映射成Transformer接受的固定大小D,映射E是可學習的): z 0 = [ x c l a s s ; x p 1 E ; x p 2 E ; ? ? ; x p N E ] + E p o s , E ∈ R ( P 2 ? C ) × D , E p o s ∈ R ( N + 1 ) × D \mathbf{z}_0=\left[ \mathbf{x}_{class};\mathbf{x}_{p}^{1}\mathbf{E;x}_{p}^{2}\mathbf{E;}\cdots ;\mathbf{x}_{p}^{N}\mathbf{E} \right] +\mathbf{E}_{pos}\ ,\ \mathbf{E}\in \mathbb{R}^{\left( P^2\cdot C \right) \times D},\ \mathbf{E}_{pos}\in \mathbb{R}^{\left( N+1 \right) \times D} z0?=[xclass?;xp1?E;xp2?E;?;xpN?E]+Epos? , ER(P2?C)×D, Epos?R(N+1)×D映射后的結果稱為 patch embeddings,
在patch前面添加一個可學習的xclass,代表著圖片的標簽資訊(全域資訊)

歸納偏置(Inductive bias):vit比cnn有更少的特定于影像的歸納偏置,在cnn中,區域性、二維鄰域結構和平移不變性貫穿整個模型的每一層,在ViT中,只有MLP層是區域和平移等變的,而Self-attention是全域的,二維鄰域結構使用地非常少:在模型開始時,將影像切割成小塊,并在微調時對不同解析度的影像進行位置嵌入調整,除此之外,初始化時的位置嵌入不包含塊的二維位置資訊,所有塊之間的空間關系都需要從頭學習,

混合結構(Hybrid Architecture):輸入序列可以由CNN的feature map組成,從而替代原始影像塊,在這個混合模型中,將patch embedding 應用于從CNN feature map中提取的patches,作為一種特殊情況,patches的尺寸可以是1x1,即簡單地將feature map平坦化,并映射到Transformer的尺寸即可得到輸入序列,如上所述添加分類輸入嵌入和位置嵌入,

4.2 微調和更高的解析度 (FINE-TUNING AND HIGHER RESOLUTION)

通常,在大型資料集上預訓練ViT,并微調到(較小的)下游任務,為此,我們去掉預先訓練的預測頭,并附加一個零初始化的D*K前饋層,其中K是下游類的數量,在輸入高解析度的影像時,我們保持了相同的patch大小,從而得到了更大的有效序列長度,視覺轉換器可以處理任意序列長度(達到記憶體限制),然而,預先訓練的位置嵌入不再有意義,因此,我們根據預先訓練好的位置嵌入在原始影像中的位置,對其進行二維插值,解析度調整和塊提取是唯一一處人工將影像二維結構的歸納偏置注入vit的地方,

5.實驗(EXPERIMENTS)

評估了ResNet、Vision Transformer (ViT)和hybrid的學習能力,為了了解每個模型的資料需求,對不同大小的資料集進行了預訓練,并評估了許多基準任務,在考慮模型預訓練的計算成本時,ViT表現得非常好,以較低的預訓練成本在大多數識別基準上達到了最先進的水平,

5.1 setup

資料集(datasets):各種大小的資料集以及測驗基準,
模型變體(Model Variants):基于BERT配置VIT,各種大小的VIT(base,large,huge),patch的大小P也是可調的,P越大,序列長度越小,P越小,長度越長,計算開銷越大,
尺寸

訓練和微調(Training & Fine-tuning.):模型的引數配置,見附錄,

5.2 與SOTA比

結果

6.結論(CONCLUSION)

探討了Transformer在影像識別中的直接應用,與之前在計算機視覺中使用Self-attention的作業不同,除了初始的patch提取步驟,我們不引入影像特有的歸納偏差到架構中,相反,我們將影像解釋為一系列塊,并使用NLP中使用的標準Transformer編碼器來處理它,這種簡單但可擴展的策略,在與大型資料集的預訓練相結合時,效果驚人地好,因此,視覺Transformer 在許多影像分類資料集上匹配或超過了最先進的水平,同時相對低成本地進行預訓練,

雖然這些初步結果令人鼓舞,但仍然存在許多挑戰,一種是將ViT應用于其他計算機視覺任務,如檢測和分割,我們的研究結果,以及Carion等人(2020年)的研究結果,表明了這種方法的前景,另一個挑戰是繼續探索自監督的預訓練方法,我們的初步實驗表明,自監督的預訓練有所改善,但自監督的預訓練與大規模監督的預訓練之間仍有很大的差距,最后,進一步擴展ViT可能會提高性能,

小尾巴

1.歸納偏置
2.自監督預訓練
3.像素級別的影像應用

重點相關論文

1.Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, ?ukasz Kaiser, and Illia Polosukhin. Attention is all you need. In NIPS, 2017.
Transformer 的提出,祖師爺

2.Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of deep bidirectional transformers for language understanding. In NAACL, 2019.
BERT 模型,這篇論文中大量的設計來自BERT,如xclass標志位,自監督預訓練等

3.Jean-Baptiste Cordonnier, Andreas Loukas, and Martin Jaggi. On the relationship between selfattention and convolutional layers. In ICLR, 2020.
像素級,小塊級別的attention,和vit很一致

4.Mark Chen, Alec Radford, Rewon Child, Jeff Wu, and Heewoo Jun. Generative pretraining from pixels. In ICML, 2020a.
像素級別,使用Transformer的影像生成模型

參考串列

1.https://blog.csdn.net/weixin_38443388/article/details/113059350
2.https://zhuanlan.zhihu.com/p/336911305
3.https://blog.csdn.net/qq_16236875/article/details/108964948
4.https://zhuanlan.zhihu.com/p/273652295
5.https://blog.csdn.net/weixin_44106928/article/details/110268312
6.https://blog.csdn.net/moxibingdao/article/details/109127507
7.http://www.360doc.com/content/21/0126/16/73546223_959052179.shtml
8.http://www.360doc.com/content/21/0116/16/32196507_957302113.shtml
9.https://zhuanlan.zhihu.com/p/266311690
10.https://openreview.net/forum?id=YicbFdNTTy

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/260579.html

標籤:其他

上一篇:作業系統(二)

下一篇:第八屆全國大學生光電設計競賽——賽題1:基于智能手機的蘋果糖度無損測量新手攻略指南

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more