在計算機視覺任務中,運用Transformer和Non local有何本質區別?

時間 2021-05-05 23:21:59

1樓:

我一直覺得深度學習這門學科被我們這幫不合格的研究者帶歪了連最基本的科學研究都不會了

Transformer和Non-local有何本質區別?那我是不是可以Transformer和Non-local和curve fitting有何區別?在座的能說出區別嗎?

那所有都深度學習都是Curve Fitting,然後呢?然後呢?

你要麼去學點有價值的數學來解釋深度學習

你要麼去做點計算機系統提公升一下利用率

你再蠢點去把ImageNet標註準確一點,(這不最近剛說ImageNet標籤6%有問題麼?)

為什麼知乎都是問來問去這點東西?能不能不要這麼浮躁。

2樓:鐵心核桃

首先是無論nlp還是cv,尤其是nlp領域,大家都意識到使用注意力機制考慮序列元素之間長程依賴關係的重要性。這才有了一系列注意力機制成果的出現,這是大背景。Transformer就是在這個大背景下產生,使用自注意力機制,摒棄了大家都在用的rnn結構,並且效果也出奇的好。

參考這篇文章:

諸如vit之類的Transformer的視覺應用又是另外一種情況:一幫人認為Transformer在序列處理上表現這麼好,不如把影象也先處理成序列(「一張圖頂16個詞」),帶進Transformer裡試試,結果發現效果還行,而且得出了「能替代cnn的結論」,這才有了現在Transformer遍地開花的局面。

3樓:沈卓然

二者的本質區別在於把注意力當作輔助模組還是核心模組。

之前一系列應用non-local模組或者各種變體(CCNet、efficient attention、A2-Nets等)工作的模式是,CNN整體上已經非常好了,但是缺乏一些長距建模的能力,所以我們在裡面稀疏地插入一些注意力模組,幫助CNN做這件事,而其他部分還是由CNN負責。

現在這一批全注意力或者類Transformer的網路,則是讓網路的主要部分都使用注意力結構。有一些做得比較極致的工作,網路全部都是注意力層。另一些則保留了少量的卷積層。

但需要注意的是,這裡卷積和注意力的地位已經顛倒過來了,是由卷積去負責一些注意力可能不擅長的事情(比如低層的特徵提取),而剩下絕大部分的建模則都交給注意力。

此外,全注意力網路的工作也可以分為兩類:

一類是保留原有CNN的訓練流程,通過修改注意力模組的結構適應CV任務,比如AAConv、SASA、GSA-Net;

另一類則保留原本的Transformer架構,通過修改訓練流程來適應CV任務,比如ViT、DETR。

這兩類工作相比,目前看來第二類工作的改動更徹底、效果也更好。第一類工作往往因為需要處理高解析度的特徵圖並且引入相對位置表徵,導致在GPU、TPU上效率不高。第二類工作遇到的主要問題則是,如果完全拋棄卷積,由於缺乏平移不變性的先驗,往往對資料量和訓練長度要求很高,不能高效地學習。

如果不使用超大規模資料進行預訓練,則一般還是需要保留一部分卷積層。

4樓:

non-local和tr裡的attention本質上都是attention,甚至可以說是gnn的變體,萬物都是gnn,意義是對長程資料進行聯絡。non-local算是乙個操作,而tr是乙個模型框架,其在self-atten外還有cross-atten。

transformer和cnn乙個比較大的區別是資訊的區別,包括影象資訊的粒度及位置資訊position的引入方式。近期比較熱門的position-based implicit function,比如sdf,nerf等(最近真的很熱門,已經連著幾片了,遙想當年coordconv被瘋狂嘲諷…),都是顯示地引入了position資訊,而tr也是,至於一般的cnn中使用attention,其position資訊一般隱含地由padding引入,這種隱含給出相比顯式給出的結果是有比較大區別的,近期一些文章也進行了研究。至於粒度上,16x16 words的粒度相比傳統cnn按stride滑動逐畫素的深入也是有一定區別的。

這兩個合一起,可以產生的新見解還是有一些的,就比如,影象是不是可以有更粗的表示,如同vit那樣乙個帶了位置資訊的大塊,是不是還可以用更少的資訊;位置資訊對於各類任務的意義有多大;除了位置資訊是不是可以更簡易地結合更多資訊到這些塊中來提公升結果。

至於為什麼熱門,一方面是一些任務的確適合tr,一方面是老的cnn的確也卷了,必須搞點新東西,結果,tr的效能的確還不錯,那就要all in,all in,all in in了。但是灌水也不能隨便套吧,個人經驗是tr不好訓練,資料少的時候收益不足,關鍵還是要根據任務特性來選擇。

5樓:曲直自知

前面大佬說得其實挺好的,我想換種簡單的方式再講講我的看法,從幾個方面來講吧

從工作的定位來講,二者還是有很大差別的。VIT是整個框架,nonlocal只是乙個可以插入任何深度網路的模組。VIT的主要創新點在於資料輸入階段的分patch,然後將每個patch經過線性對映與位置編碼後通過transformer,其亮點在於利用分patch操作將影象問題轉化為序列問題,完全脫離了CNN結構,可以認為是乙個和CNN並列的工作。

而nonlocal並沒有跳出CNN的框架,只是在CNN的框架中利用self attention的思想進行一定處理的乙個模組,該模組可以插入到常見的網路結構中去,比如resnet等等。

所以二者最大的不同在於資料的初始處理方式上,vit是將影象轉化成了序列建模,而nonlocal的物件仍然是影象。

實現上其實nonlocal相當於transformer的self attention部分,假設要對乙個大小本就只有9*9的影象做vit和nonlocal,transformer的multihead設為1的情況下,一層的self attention基本和nonlocal是等價的。

至於為什麼這麼熱.......這不是因為bert把nlp屠榜了嘛,於是就有人想把網路結構和訓練方式遷移到視覺任務上來,最近有不少這樣的工作。

6樓:

Nonlocal 和 Transformer 的關係類似於 Conv2d 跟 ResNet 的關係。

Transformer 是一套完整的 feature extraction 的 pipeline,self-attention 是其中乙個關鍵元件

計算機視覺應該怎樣入門?

永無止境 補充一點,深度學習現在已經成為了計算機視覺領域的重要方法。學習一些深度學習方法,對研究計算機視覺是有益的。卷積神經網路 卷積神經網路最開始是用在手寫數字識別上面的,後來也用於其他物體的視覺識別。卷積神經網路 深度殘差網路 殘差網路一出場,就在ImageNet影象識別競賽中奪得了冠軍。深度殘...

計算機視覺和語音識別

Reginald Lu 瀉藥。感覺剛開始的時候學習語音識別,還是很辛苦的,本科是通訊。就業應該沒啥問題,我們學長或是很多招聘,對於語音識別還是需求很大的,工資待遇的也是相當不錯。語音識別?cl false fromSearch true labelWords suginput gj xl jd hy...

計算機視覺如何規劃學習?

慧橋ICT教育 一 計算機視覺概覽 計算機視覺的定義 計算機視覺的應用 計算機視覺相關學科 計算機視覺與人工智慧的關係 二 數字影象處理基礎 人眼影象的形成 影象的感知和獲取 影象數位化 取樣與解析度 量化 灰度級 數字影象的表示 畫素 灰度圖 彩色影象RGB與HSV 顏色空間 畫素關係 連通域 影...