暑假讀論文總結
SkyRainWind發表於2024-07-09
7.8
7.9
- MAE(Masked Autoencoders Are Scalable Vision Learners)
來源:CVPR 2022
在視覺領域應用 auto encoder 的比較早的工作了,是自監督學習。
主要內容是在原圖中選擇若干個 patch 進行遮擋(patch 通常選的很多,~75%),透過 encoder - decoder 進行復原。encoder 結構較為複雜,但是隻對未遮擋的部分進行復原,而 decoder 結構較為簡單,復原出整張圖片,總體的效率是比較高的。這樣就能利用未標註的圖片對 encoder 進行學習了。最後再在下游任務上對 decoder 進行微調,得到能符合對應任務的 decoder,從而減少了需要的對應任務有標註資料的量,但是這個過程也容易產生過擬合。
在對 decoder 進行微調的過程中,有兩種方式:linear probing 和 fine-tuning。前者是在 decoder 後面加入了幾層網路,decoder 的引數是 frozen 的,而後者則是直接對 decoder 的引數進行訓練和修改。
loss 部分如何設計?對每個 mask 掉的 patch 在復原之後做 MSE。
encoder 基於 ViT(其中有 transformer block), decoder 基於的都是若干個 transformer block,而不是直接使用 FFN
整體 pipeline:
先前的工作:ViT、transformer、BEiT
[一個不錯的總結和程式碼實現]
(https://zhuanlan.zhihu.com/p/439554945)
- transformer(Attention Is All You Need)
來源:NIPS 2017
簡要寫寫。
transformer 兩大部分:encoder、decoder,輸入的是若干個向量。對於每個向量:利用一個 FFN 求出對應的 \(q,k,v\) 向量,key-values pair 做點乘得到 attention 向量,需要 scale 一下(除以 \(\sqrt{d_k}\)),再和 \(q\) 做點乘,add&norm 之後透過 FFN。
encoder 和 decoder 中使用的部分實際上是兩種 attention 的結合:前一種