0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Vision Transformers比基于CNN的模型更具有潛力

OpenCV學(xué)堂 ? 來源:OpenCV學(xué)堂 ? 作者:OpenCV學(xué)堂 ? 2022-09-08 10:37 ? 次閱讀

Vision Transformer (ViT)自發(fā)布以來獲得了巨大的人氣,并顯示出了比基于CNN的模型(如ResNet)更大的潛力。但是為什么Vision Transformer比CNN的模型更好呢?最近發(fā)表的一篇文章“Do Vision Transformers See Like Convolutional Neural Networks?”指出,ViT的優(yōu)勢來自以下幾個方面:

ViT不同層的特征更加均勻,而CNN模型不同層的特征呈網(wǎng)格狀

ViT的低層的注意力包含全局信息,而CNN的性質(zhì)在低層只關(guān)注局部

在ViT的較高層中,跳躍連接在信息傳播中發(fā)揮突出作用,而ResNet/CNN跳躍連接在較高層中傳遞的信息較少

此外,數(shù)據(jù)的規(guī)模和全局平均池化的使用都會對ViT的表示產(chǎn)生很大的影響。

8d35186e-2e99-11ed-ba43-dac502259ad0.png

ViT和CNN的主要區(qū)別

首先,讓我們看看下面的兩個架構(gòu),ViT和一個典型的CNN模型ResNet50。ResNet50接收整個狗圖像,并進行2D卷積,內(nèi)核大小為7×7,用殘差塊疊加50層,最后附加一個全局平均池化和一個dense層,將圖像分類為“狗”。ViT首先將狗圖像分解為16*16個patch,將每個patch視為一個“token”,然后將整個token序列送入transformer編碼器,該編碼器由多頭自注意力塊組成,編碼器特征隨后被發(fā)送到MLP層,用于分類“狗”類。

上: ResNet50; 下: ViT

對于兩個長度不同的特征向量,很難衡量它們的相似性。因此,作者提出了一種特殊的度量,中心核對齊(CKA),整個論文中都在使用這個。假設(shè)X和Y是m個不同樣本的特征矩陣,K=XX^T^, L=YY^T^,則利用Hilbert-Schmidt獨立準(zhǔn)則(HSIC)的定義,定義CKA如下:

8d6ab6e0-2e99-11ed-ba43-dac502259ad0.png

X和Y越相似,CKA值越高。更多的定義細節(jié)可以在論文的第3節(jié)中找到。

有了CKA的定義,一個自然的問題出現(xiàn)了:ViT和CNN的不同層的特征有多相似?作者表明,模式是相當(dāng)不同的, ViT在所有層上有一個更統(tǒng)一的特征表示,而CNN/ResNet50在較低和較高的層上有一個網(wǎng)格狀的模式。這意味著ResNet50在它的低層和高層之間學(xué)習(xí)不同的信息。

8d7622dc-2e99-11ed-ba43-dac502259ad0.png

左:ViT各層特征對之間的CKA值,右:ResNet50所有層的特性對之間的CKA值。

但是ResNet在其較低層次和較高層次學(xué)習(xí)的“不同信息”是什么呢?我們知道對于CNN模型,由于卷積核的性質(zhì),在較低的層只學(xué)習(xí)局部信息,在較高的層學(xué)習(xí)全局信息。所以在不同的層之間有一個網(wǎng)格狀的模式就不足為奇了。那么我們不禁要問,ViT怎么??ViT是否也在其底層學(xué)習(xí)局部信息?

如果我們進一步觀察自注意力頭,我們知道每個token會關(guān)注所有其他token。每個被關(guān)注的token都是一個查詢patch,并被分配一個注意力權(quán)重。由于兩個“token”代表兩個圖像patch,我們可以計算它們之間的像素距離。通過將像素距離和注意力權(quán)重相乘,定義了一個“注意力距離”。較大的注意力距離意味著大多數(shù)“遠處的patch”具有較大的注意權(quán)重——換句話說,大多數(shù)注意力是“全局的”。相反,小的注意距離意味著注意力是局部的。

8d9888e0-2e99-11ed-ba43-dac502259ad0.png

注意力距離的計算

作者進一步研究了ViT中的注意力距離。從下面的結(jié)果中,我們可以看到,雖然從較高層(block 22/23,紅色高亮顯示)的注意力距離主要包含全局信息,但是,即使是較低層(block 0/1,紅色高亮顯示)仍然包含全局信息。這和CNN的模型完全不同。

8dbfdeb8-2e99-11ed-ba43-dac502259ad0.png

現(xiàn)在我們知道ViT甚至在它的底層也學(xué)習(xí)全局表示,下一個要問的問題是,這些全局表示會忠實地傳播到它的上層嗎?如果是這樣,是怎么實現(xiàn)的?

作者認為關(guān)鍵是ViT的跳躍連接。對于每個block,在自注意力頭和MLP頭上都存在跳躍連接。通過將跳躍連接的特征的范數(shù)除以通過長分支的特征的范數(shù),作者進一步定義了一個度量:歸一化比率(Ratio of norm, RoN)。他們發(fā)現(xiàn)了驚人的相變現(xiàn)象,在較低的層次上,分類(CLS)token的RoN值很高,而在較高的層次上則低得多。這種模式與空間token相反,其中RoN在較低的層中較低。

8dcc0a8a-2e99-11ed-ba43-dac502259ad0.png

歸一化比率:|z|/|f(z)|。其中z是通過跳躍連接的特特征。F (z)是經(jīng)過長分支的特征。

如果他們進一步刪除ViT不同層的跳躍連接,那么CKA映射將如下所示。這意味著跳躍連接是使ViT不同層之間的信息流成為可能的主要(如果不是全部的話)機制之一。

8de0c254-2e99-11ed-ba43-dac502259ad0.png

除了強大的跳躍連接機制和在較低層次學(xué)習(xí)全局特征的能力外,作者還進一步研究了ViT在較高層次學(xué)習(xí)精確位置表示的能力。這種行為與ResNet非常不同,因為全局平均池化可能會模糊位置信息。

此外,作者指出,有限的數(shù)據(jù)集可能會阻礙ViT在較低層次學(xué)習(xí)局部表示的能力。相反,更大的數(shù)據(jù)集特別有助于ViT學(xué)習(xí)高質(zhì)量的中間層表示。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編碼器
    +關(guān)注

    關(guān)注

    45

    文章

    3576

    瀏覽量

    134011
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3121

    瀏覽量

    48663
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    350

    瀏覽量

    22139

原文標(biāo)題:Vision Transformers看到的東西是和卷積神經(jīng)網(wǎng)絡(luò)一樣的嗎?

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于數(shù)字CNN與生物視覺的仿生眼設(shè)計

    簡單的物體,完成一些簡單的視覺任務(wù)[2]。本文采用基于CNN[3-4]的數(shù)學(xué)模型以及相關(guān)的數(shù)字指令來建立一個能并行、快速處理視覺信號的數(shù)字CNN信號處理系統(tǒng)。在研究視網(wǎng)膜信號處理以及信息編碼時,把視網(wǎng)膜
    發(fā)表于 09-19 09:35

    大家是怎么壓榨CNN模型

    【技術(shù)綜述】為了壓榨CNN模型,這幾年大家都干了什么
    發(fā)表于 05-29 14:49

    Github開源的數(shù)字手勢識別CNN模型簡析

    2.概述一個簡單的AI開發(fā)sampleGithub開源的數(shù)字手勢識別CNN模型,識別數(shù)字0-10十一種手勢類LeNet-5,兩個卷積層,兩個池化層,一個全連接層,一個Softmax輸出層3.RKNN
    發(fā)表于 04-02 15:22

    如何將DS_CNN_S.pb轉(zhuǎn)換為ds_cnn_s.tflite?

    MIMRTX1064(SDK2.13.0)的KWS demo中放置了ds_cnn_s.tflite文件,提供demo中使用的模型示例。在 read.me 中,聲明我可以找到腳本,但是,該文檔中的腳本
    發(fā)表于 04-19 06:11

    為什么三相電機單相電機更具優(yōu)勢?

    單相電機和三相電機,實質(zhì)上區(qū)別,或者說為什么三相電機單相電機更具優(yōu)勢 不要百度,復(fù)制的。要能看懂的,通俗些。 就是說三相電機的優(yōu)勢在哪里。我覺著,三相電機,單相貴,一定有他的優(yōu)勢。
    發(fā)表于 11-09 07:50

    在線研討會 | 釋放 Vision Transformers、NVIDIA TAO 和最新一代 NVIDIA GPU 的潛力

    研討會時間: 2023?年?6 月 29 日(周四)上午 11:00? (北京時間 ) Vision Transformers(ViTs)正在徹底改變視覺 AI 應(yīng)用。與卷積神經(jīng)網(wǎng)絡(luò)( CNN
    的頭像 發(fā)表于 06-16 11:45 ?470次閱讀
    在線研討會 | 釋放 <b class='flag-5'>Vision</b> <b class='flag-5'>Transformers</b>、NVIDIA TAO 和最新一代 NVIDIA GPU 的<b class='flag-5'>潛力</b>

    2D Transformer 可以幫助3D表示學(xué)習(xí)嗎?

    預(yù)訓(xùn)練的2D圖像或語言Transformer:作為基礎(chǔ)Transformer模型,具有豐富的特征表示能力。作者選擇了先進的2D Transformer模型作為基礎(chǔ)模型,例如
    的頭像 發(fā)表于 07-03 10:59 ?754次閱讀
    2D Transformer 可以幫助3D表示學(xué)習(xí)嗎?

    cnn卷積神經(jīng)網(wǎng)絡(luò)模型 卷積神經(jīng)網(wǎng)絡(luò)預(yù)測模型 生成卷積神經(jīng)網(wǎng)絡(luò)模型

    cnn卷積神經(jīng)網(wǎng)絡(luò)模型 卷積神經(jīng)網(wǎng)絡(luò)預(yù)測模型 生成卷積神經(jīng)網(wǎng)絡(luò)模型? 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN
    的頭像 發(fā)表于 08-21 17:11 ?1183次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)算法 cnn卷積神經(jīng)網(wǎng)絡(luò)模型

    cnn卷積神經(jīng)網(wǎng)絡(luò)算法 cnn卷積神經(jīng)網(wǎng)絡(luò)模型 卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種特殊的神經(jīng)網(wǎng)絡(luò),具有很強的圖像識別和數(shù)據(jù)分類能力。它通過學(xué)習(xí)權(quán)重
    的頭像 發(fā)表于 08-21 17:15 ?1997次閱讀

    Transformers的功能概述

    近年來,我們聽說了很多關(guān)于Transformers的事情,并且在過去的幾年里,它們已經(jīng)在NLP領(lǐng)域取得了巨大成功。Transformers是一種使用注意力機制(Attention)顯著改進深度學(xué)習(xí)
    的頭像 發(fā)表于 01-23 10:15 ?625次閱讀
    <b class='flag-5'>Transformers</b>的功能概述

    深度神經(jīng)網(wǎng)絡(luò)模型cnn的基本概念、結(jié)構(gòu)及原理

    ,其核心是構(gòu)建具有多層結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)模型,以實現(xiàn)對復(fù)雜數(shù)據(jù)的高效表示和處理。在眾多深度學(xué)習(xí)模型中,卷積神經(jīng)網(wǎng)絡(luò)(CNN)因其在圖像識別等領(lǐng)域的卓越性能而備受關(guān)注。
    的頭像 發(fā)表于 07-02 10:11 ?9479次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)cnn模型有哪些

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識別、視頻分析、自然語言處理等領(lǐng)域。 CNN的基本概念 1.1 卷積層
    的頭像 發(fā)表于 07-02 15:24 ?638次閱讀

    CNN模型的基本原理、結(jié)構(gòu)、訓(xùn)練過程及應(yīng)用領(lǐng)域

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識別、視頻分析、自然語言處理等領(lǐng)域。CNN模型的核心是卷積層
    的頭像 發(fā)表于 07-02 15:26 ?2851次閱讀

    圖像分割與語義分割中的CNN模型綜述

    圖像分割與語義分割是計算機視覺領(lǐng)域的重要任務(wù),旨在將圖像劃分為多個具有特定語義含義的區(qū)域或?qū)ο?。卷積神經(jīng)網(wǎng)絡(luò)(CNN)作為深度學(xué)習(xí)的一種核心模型,在圖像分割與語義分割中發(fā)揮著至關(guān)重要的作用。本文將從
    的頭像 發(fā)表于 07-09 11:51 ?617次閱讀

    cnn常用的幾個模型有哪些

    CNN(卷積神經(jīng)網(wǎng)絡(luò))是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識別、自然語言處理等領(lǐng)域。以下是一些常用的CNN模型: LeNet-5:LeNet-5是最早的卷積神經(jīng)網(wǎng)絡(luò)之一,由Yann Le
    的頭像 發(fā)表于 07-11 14:58 ?571次閱讀