dhkim0225 / 1day_1paper

read 1 paper everyday (only weekday)
54 stars 1 forks source link

[101] SepViT: Separable Vision Transformer #131

Open dhkim0225 opened 2 years ago

dhkim0225 commented 2 years ago

paper unofficial code - lucidrains

말 그대로 attention 을 효율적으로 다루는 논문. vit 에 적용해서 swin 보다 효율적인 것을 주장. image

SepViT

image 간단하다. 말 그대로 depthwise 하게 attention 을 먼저 해주고, channel 별 중요도를 학습시켜서 attention 효율화를 수행한다. 제안하는 방식을 DSSA (Depthwise Seperable Self Attention) 이라 부른다. DSSA = DSA (Depthwise Self Attn) + PWA (PointWise Attn) 이다. image

win_tokens 는 학습 가능한 token 들이다. 요 녀석들을 learnable 하게 만들고 channel 별 중요도를 뽑아낸다는 개념.

Grouping

depthwise attention를 더 효율적으로 수행하기 위해서 window 를 설정하고 local 하게 살펴보게 된다. 근데, window 를 확 키워버리는게 생각보다 성능이 괜찮다. (물론 속도는 느려진다) 해당 방식을 GSA (Grouped Self Attention) 이라 한다.

아래 그림을 보면 더 이해가 잘 간다. image

GSA = DSA + PWA 인건 똑같은데, window size 만 차이가 있는 것으로 보인다. (워딩이 굉장히 헷갈린다.)

Results

Ablations

Throughput 말고 latency도 궁금한데 흠.. image

ImageNet (classification)

latency 는 T4 + TensorRT + 8 batch 로 쟀다. image

Settings

ADE20K (semantic segmentation)

image

COCO (detection & instance segmentation)

image