當前位置:網站首頁>CV in Transformer學習筆記(持續更新)
CV in Transformer學習筆記(持續更新)
2022-01-27 18:11:19 【ZRX_GIS】
文章目錄
為什麼在cv中研究Transformer
研究背景
Transformer在CV領域剛開始嶄露頭脚,Transformer提出後在NLP方向取得良好成果,其全Attention結構,不僅增强了特征提取的能力,還保持了並行計算的特點,可以快速的完成NLP領域內多數任務,極大推動其發展。但是,幾乎並未過多應用在CV方向。在此之前只有Obiect detection種的DETR大規模使用Transformer,其他包括Semantic Segmentation在內的領域並未實質性應用,純粹Transformer結構的網絡則是沒有。
Transformer優勢
1、並行運算;2、全局視野;3、靈活的堆疊能力
Transformer+classfiaction
ViT
原文《AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE》
ViT曆史意義
1、展示了在CV中使用純Transformer結構的可能
2、該領域開山之作
摘要
雖然Transformer體系結構已經成為自然語言處理任務的事實上的標准,但它在計算機視覺上的應用仍然有限。在視覺方面,注意力要麼與卷積網絡結合使用,要麼用於替代卷積網絡的某些組件,同時保持其整體結構不變。我們證明這種對cnn的依賴是不必要的,一個純變壓器直接應用於圖像塊序列可以很好地執行圖像分類任務。在對大量數據進行預訓練並將其傳輸到多個中小型圖像識別基准(ImageNet、CIFAR-100、VTAB等)時,與最先進的卷積網絡相比,Vision Transformer (ViT)獲得了優异的結果,而訓練所需的計算資源卻大大减少。
摘要總結:1、Transformer在NLP中已經成為經典;2,在CV中,Attention機制只是作為一個補充在使用;3、我們使用純Transformer結構就可以在圖像分類任務上取得不錯結果;4、在足够大的數據上訓練後,ViT可以拿到和CNN的SODA不相上下的結果
ViT結構
核心思想:切分重排
Attention
核心思想:加權平均(計算相似度)
優點:1、並行運算;2、全局視野
MultiHead-Attention
核心思想:相似度計算,有多少W(Q,K,A)就重複運算多少次,結果concat一下
Q:query;K:key;V:Value
輸入端適配
核心思想:直接把圖片切分,然後編號輸入網絡
為什麼有Patch0: ** 需要一個整合信息的向量**:如果只有原始輸入的向量,會產生選取量的問題,即用哪個向量來分類都不好,全用計算量又很大,所以加入一個可學習的vector也就是Patch0來整合信息。
比特置編碼(Positional Encoding)
圖像切分重排後失去了比特置信息,並且Transformer的內部運算是空間信息無關的,所以需要把比特置信息編碼重新傳進網絡,ViT使用了一個可學習的vector來編碼,編碼vector和patch vector直接相加組成輸入。
訓練方法
大規模使用Pre-Train,先在大數據集上預訓練,然後到小數據集上Fine Tune
遷移過去後,需要把原本的MLP Head換掉,換成對應類別數的FC層(和過去一樣)
處理不同尺寸輸入的時候需要對Positional Encoding的結果進行插值。
Attention距離和網絡層數的關系
Attention的距離可以等價為Conv中的感受野大小 可以看到越深的層數,Attention跨越的距離越遠 但是在最底層,也有的head可以覆蓋到很遠的距離 這說明他們確實在負責Global信息整合
論文總結
模型結構 ——Transformer Encoder
輸入端適配——切分圖片再重排
比特置編碼 ——可學習的vector來錶示
純Transformer做分類任務
簡單的輸入端適配即可使用
做了大量的實驗揭示了純
Transformer做CV的可能性。
PVT
Swin Transformer
Transformer+detection
DETR
Deformable DETR
Sparse RCNN
版權聲明
本文為[ZRX_GIS]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201271811194776.html
邊欄推薦
猜你喜歡
隨機推薦
- uniapp上傳圖片及組件傳值
- 瑞利年金險資金保障安全嗎?收益高不高啊?
- 華為手機USB連不上電腦的解决方法
- Flutter 2,移動金融應用開發
- 關於st25系列NFC標簽簡單介紹及st25TV系列用於門禁讀取時的注意事項總結
- 關於用ffmpeg轉手機視頻發現視頻長寬倒了的問題
- 函數 / 類模板--模板2
- 數組中的第k個最大的元素--優先級隊列、排序、堆、排序
- 單片機實例27——ADC0809A/D轉換器基本應用技術(硬件電路圖+匯編程序+C語言程序)
- Collection集合的學習
- 一場面試結束,某度員工從事Android 5年為何還是初級工程師?
- 3本書閱讀筆記【人月神話-Go語言實戰-研發能力持續成長路線】01
- PHP垃圾回收機制
- 【電子技術】什麼是LFSR?
- 死鎖?如何定比特到死鎖?如何修複死鎖?(jps和jstack兩個工具)
- 快樂寒假 22/01/20
- image
- 噴程序員?SURE?
- LDO分壓電阻計算小工具
- 面試之求一串字符串中每個字符的出現次數
- 【ISO15765_UDS&OBD診斷】-01-概述
- 【Mysql上分之路】第九篇:Mysql存儲引擎
- RHCE 第一次作業
- 2021.10.16我的第一篇博客:一切皆有可能!
- CTA-敏感行為-讀取IMEI
- 面試被問怎麼排查平時遇到的系統CPU飆高和頻繁GC,該怎麼回答?
- nuxt項目總結-綜合
- 自然語言處理學習筆記(一)
- C語言第一課
- 各比特大佬,Spark的重點難點系列暫時更新完畢
- 基於 esbuild 的 universal bundler 設計
- XCTFre逆向(四):insanity
- 理解什麼是真正的並發數
- JVM腦圖
- 【Pytorch(四)】學習如何使用 PyTorch 讀取並處理數據集
- 函數棧幀的創建與銷毀
- 構建神經網絡- 手寫字體識別案例
- 多模態生成模型ERNIE-VILG
- kotlin不容忽視的小細節
- 備戰一年,終於斬獲騰訊T3,我堅信成功是可以複制的