https://arxiv.org/abs/2201.00520
Abstract
- Transformer는 최근 다양한 Vision Task에서 최고의 성능을 보임
- 크고 때로는 Global 한 Receptive Field는 CNN Model보다 더 높은 Representation Power를 가진 Transformer모델을 제공
- 그럼에도 불고하고 단순히 Receptive Field를 확대하는 것은 몇 가지 문제가 존재
- ViT 같은 경우 Dense Attention을 이용하면, 과도한 Memory, Computational Cost가 존재, 또한 이미지를 Patch로 분할하고 이미지 전체(Patch)로 Self-Attention을 취하므로 관심 있는 영역을 벗어난 다른 비용에 영향을 받게 됨
- 반면 PVT 또는 Swin Transformer에서 이용된 Sparse Attention은 데이터에 적응적이지 않으며, 긴 거리에 대해 모델링하는 능력이 부족
- 해당 저자들은 이런 문제를 완화 하고자 새로운 Deformable Self-Attention Module을 제안, 해당 Module은 Query, Key Pair의 위치가 Data Dependent 하게 선택되도록 함
- 이러한 유연한 체계로 Self-Attention Module이 관련된 Region에 집중하고 더 많은 Information을 Capture 하도록 함
- 이를 바탕으로 저자들은 Deformable Attention Transformer를 제안, 해당 Deformable Attention Transformer는 Image Classification과 Dense Prediction Task에 General 하게 이용가능
- 다양한 실험으로 포괄적인 Bench Mark에서 개선된 결과를 얻음
Introduction
- Transformer는 원래 NLP Task들을 해결하기 위해 제안
- 하지만 최근에는 Vision 분야에서 높은 Potential을 증명함
- 이전의 진행되었던 ViT 같은 Model을 여러 개의 Transformer Block Stack을 만들고, Image 전체를 Non-Overlapping 되게 Patch Sequence(Visual Token)를 생성하여 Self-Attention을 진행, 이 방식은 CNN을 이용하지 않는 Image Classification Model이다
- CNN과 대응관계에 있는 Transformer Model을 넓은 Receptive Fields를 가지고, Long-Range Dependencies가 우수
- 이는 많은 양의 Training Data와 Model Parameter 체재에서 우수한 성능을 가지는 것으로 확인
- 하지만 Visual Recognition에서 불필요한 Attention은 '양날의 검'처럼 작용하고 여러 가지 결점이 존재
- 특히 Query Patch당 Self-Attention에 참여할 Key이 수가 너무 많으면 High Computational Cost를 가지고, Slow Convergence, OverFitting의 위험이 존재
- 지나친 Attention Computation을 피하기 위해 여러 방식으로 Attention을 진행
- 대표적으로 두 가지 어프로치가 있다. Swin Transformer는 Local Window에서 Attention을 제한하기 위해 Window-Based Local Attention을 진행
- Pyramid Version Transformer는 (PVT) Key와 Value Feature Map을 DownSampling 하여 계산량을 줄임
- 이러한 Hand-Craft Attention Pattern은 Data-agnostic 않으며 최적의 방식이 아님
- 관련이 있는 Key/Value은 삭제되고, 덜 중요한 Key/Value만 계속 유지될 수도 있음
- 이상적으로 하나를 기대해 볼 수 있는데, 주어진 Query에 대한 후보 Key/Value set을 Flexible 하고 각각의 개별 Input에 적응할 수 있는 능력을 생기게 해 Hand-Craft Sparse Attention Pattern의 문제를 완화 가능할 것
- 실제로 CNN의 Paper에서 Convolution Filter에 대해 Deformable Receptive Field를 학습하는 것은 Data에 대해 종속적으로 더 많은 정보가 있는 영역을 선택적으로 골라 효과적인 것인 것을 확인
- 가장 주목할 만한 연구인 Deformable Convolution Network는 다양한 Vision Task에서 인상적인 결과를 도출
- 이는 Vision Transformer또한 Deformable Attention Pattern을 적용하고자 하는 동기가 생김
- 그러나 이를 Naive하게 구현하는 것으 불합리하게 높은 Memory/Computational Cost를 초래
- Deformable Offsets에 의해 도입된 OverHead는 Patch수에 대해서 Quadratic
- 결과적으로 최근 다양한 연구에서 Transformer의 Deformable 메카니즘을 조사했지만, 높은 Computational Cost때문에 DCN과 같이 강력한 BackBone Network를 구성하기 위한 기본 요소로 선택한 사람은 없음
- 대신 Deformable Mechanism은 Detection Head에 채택되거나, 후속되는 Network에 대한 Patch를 Sampling 하기 위한 전처리 계층으로 이용
- 본 논문에서는 Image Classification 및 다양한 Dense Prediction Task을 위해 변형 가능 주의 변환기(DAT)라는 강력한 Pyramid Backbobne이 구성된 간단하고 효율적인 Deformable Attention Transformer(DAT)을 제시
- 전체 Feature Map에서 서로 다른 Pixel에 대한 서로 다른 Offset을 학습하는 DCN 방식
- 저자들은 여러 논문에 따르면 Global Attention은 일반적으로 서로 다른 Query에 대해 거의 동일한 Attention Pattern을 일으킴.
- 그러므로 Query-Agnostic offset의 몇가지 Group(모든 Query가 공유하는)을 학습하여 Key와 Value가 중요한 영역으 이동하도록함
- 이 설계는 Linear Space Complexity 유지하고 Transformer Backbone에 Deformable Attention Pattern을 도입
- 특히, 각 Attention Module에 대해 Reference Point은 먼저 Input Data 전체에서 Uniform Grid를 생성
- 그런 다음 Offset Network는 모든 Query Feature을 Input으로 사용후 모든 Reference Point에 대한 해당Offset을 생성
- 이러한 방식으로 후보 Key/Value이 중요한 Region으로 이동되므로 원래의 Self-Attention Module을 보다 높은 Flexibility와 Efficiency로 보강하여 보다 유용한 정보를 포착
- 요약하면, 저자들의 기여는 다음과 같음
- 저자들은 Visual Recognition을 위한 최초의 Deformable Self-Attention을 제안
- 여기서 Data Dependent Attention Pattern은 더 높은 Flexibility과 Efficiency을 제공
- ImageNet, ADE20K 및 COCO에 대한 광범위한 실험은 Model이 Swin-Transformer보다 훌륭하다는것을 증명
Related Work
Trasfomer Vision Backbone
- ViT가 도입된 이후에 개선 사항으로 Dense가 높은 Prediction Task와 Efficient Attention Mechanisms을 위한 Multi-Scale Feature을 학습하는 데 Focus를 맞춤
- 이러한 Attention Mechanisms은 보통 Window Attention, Global Token, Focal Attention, Dynamic Token Size등 다양
- 그 중에서도 추가적인 Inductive bias를 도입하기 위해 Convolution 연산을 Transformer model을 보완하는데 초점을 맞춘 연구들이 존재
- CvT같은 경우 Token Process에 Convolution을 채택하고, Stride Convolution을 이용하여 Self-Attention의 Computational Cost를 낮춤
- Convolution Stem(입력 이미지를 아주 aggressively하게 다운샘플링 하는 역할을 수행하는 네트워크)가 있는 ViT는 안정적인 Training을 위해 초기 단계에 Convolution을 추가
- CSwin Transformer는 Convolution Base로 Positional Encoding 기술을 채택하고 Downstream Task에 대한 개선 사항을 보여줌
- 이러한 Convolution Base 기술 중 많은 것이 잠재적으로 DAT 위에 적용되어 추가적인 성능 향상이 가능함
Deformable CNN and attention
- Deformable CNN은 Input Data에 따라 Flexible Spatial Location에 주의를 기울이는 메커니즘
- 최근에는 다양한 Vision Transformer에도 적용함
- Deformable DETR은 CNN Backbone 상단에 각 Query에 대해 적은 수의 Key를 선택하여 DETR의 Convergence 개선
- Key가 부족하면 Representaton Power가 제한되기 때문에 Deformable DETR 방식은 Vision에서 적합하지 않음
- 또한 Deformable DETR의 Attention는 단순히 학습된 Linear Projection에서 비롯되며 Key는 Query Token 간에 공유되지 않음
- DPT 및 PS-ViT는 Deformable Moduel을 구축하여 Visual Token을 세분화
- 구체적으로 DPT는 단계별로 Patch를 세분화하기 위해 Deformable Patch Embedding을 제안하고 PS-ViT는 Visual Token을 개선하기 위해 ViT Backbone 이전에 Spatial Sampling Module을 도입
- 하지만 위에 어느 것도 Deformable Attention을 Visual Backbone에 통합하지 않음
- 하지만 저자들의 Deformable Attention는 Visual Token 간에 공유된 일련의 Global Key를 학습하기 위해 강력하면서도 간단한 설계를 사용하며, 다양한 Vision Task을 위한 일반적인 Backbone로 채택될 수 있음
- 저자들의 방법은 또한 다양한 연구에서 효과적인 것으로 입증된 spatial adaptive mechanism으로 볼 수 있음
Deformable Attention Transformer
Preliminaries
- 먼저 최근에 Vision Transformer의 Attention Mechanism을 확인
- Feature Map을 Flattend하므로 x ∈ R N×C, MHSA Multi-Head Self Attetion, M Head개수, d = C/M
- σ(·) SoftMax, z (m) embedding output from the m-th attention head, q (m) , k(m) , v(m) ∈ R N×d
- Wq, Wk, Wv, Wo ∈ R C×C are the projection matrices
- Transformer block에는 MLP block with two linear transformation, 그리고 GELU Activation
- normalization layers and identity shortcuts, the l-th Transformer block is formulated
- LN is Layer Normalization
Deformable Attention
- Hierarchical Vision Transformer인 PVT, Swin Transformer는 과도하게 Attention을 하는것을 막기위해 노력
- 하지만 PVT의 Downsampling Technique은 Information loss를 일으키고, Swin Transformer의 Shift Window Attention은 Receptive Field가 순차적으로 느리게 커지는데, 큰 물체를 Modeling하는데 제약이 생김
- 따라서 관련 기능을 유연하게 Modeling 하기 위해 Data-Dependent Sparse Attention 필요하며, 이는 DCN에서 처음 제안된 Deformable Mechanism으로 이어짐
- 하지만 DCN의 방법을 Transformer Model에게 그대로 적용하는것은 어렵다
- DCN은 각 Feature Map의 각 요소는 Offset을 개별적으로 학습하여 HxWxC의 Feature Map의 3x3 Deformable Convolution은 3x3xHxWxC의 Space Complexity를 가진다
- Attention에 동일한 Mechanism을 직접 적용하면 Space Complexity가 Nq x Nk x C로 급격히 증가할 것이며, 여기서 Nq, Nk는 Query 및 Key의 수이며 일반적으로 Feature 크기 H W와 동일한 규모를 가지며 대략 Biquadratic Complexity
- Deformable DETR는 각 척도에서 Nk = 4로 더 적은 수의 Key를 설정하여 이러한 Overhead를 줄일 수 있었지만, 허용할 수 없는 Information loss 때문에 Backbone Network에서 그렇게 적은 Key를 관리하는 것은 안좋음
- 연구에 따르면 Visual Attention Model에서 서로 다른 Query가 유사한 Attention Map을 가지고 있다.
- 저자들은 효율을 위해 각 Query에 대해 Shared Shift Key와 Value을 가진 더 간단한 Solution을 선택
- 저자들은 구체적으로 Feature Map의 중요안 Region에 Guidance에 따라 Token간의 Relation을 효과적으로 Modeling하기 위해 Deformable Attention은 제안
- 이러한 Focused Region은 Offset Network에 의해 Query에서 학습된 Deformed Sampling Point의 Multiple Group에 의해 결정
- 그런 다음 Sampling된 Feature가 Key 및 Value Projection에 입력되어 Deformed Key 및 Value를 생성
- 마지막으로 Standard Multi-Head Attention는 Sampling된 Key에 대한 Query에 attend하고 Deformed된 Value에서 Feature을 집계하기 위해 적용
- 또한 Deformed Loaction의 Position은 Deformable Attention의 학습을 용이하게 하기 위해 보다 강력한 Relative Position Bias을 제공함(다음 Section)
Deformable Attention Module
- Input Feature Map : x ∈ R H×W×C
- Uniform Grid Point : p ∈ R HG×WG×2, HG = H/r, WG = W/r. r = Factor
- values of reference points are linearly spaced 2D coordinates {(0, 0), . . . ,(HG − 1, WG − 1)}, And Normalize [−1, +1]
따라서 HG X WG Grid Size가 (-1,1)이됨, (−1, −1) indicates the top-left, (+1, +1) indicates the bottom-right corner. - Reference Point를 대한 Offset을 얻기 위해 Feature Map은 Linear로 Projected된다. q = xWq, 그리고 θoffset(·)이란 가벼운 Sub-Layer에 공급되어 ∆p = θoffset(q)가 생성
- Training 과정에서 Offset이 너무 커지는것을 방지하기 위해 미리 정의된 Factor s로 Amplitude를 조정, 즉
∆p ← s tanh (∆p). - 그런 다음 Feature이 Key 및 Value으로 Deformed Point의 Location에서 Sampling되고 Projection Matrics이 이어짐
- k˜ and v˜ represent the deformed key and value embeddings
- 그 뒤에 8번 수식을 이용하여 Bilinear Interpolation
- g(a, b) = max(0, 1 − |a − b|)
- (rx, ry) indexes all the locations on z ∈R H×W×C
- g would be non-zero only on the 4 integral points closest to (px, py),
- it simplifies Eq.(8) to a weighted average on 4 locations.
Experiments
- AdamW, 300Epochs, Cosine Learning Rate Decay
- RandAugment, Mixup, CutMix
- Tiny, Small, Base에서 모두 기존 ViT 모델보다 좋은 성능을 확인
- 같은 Scale의 Swin Transformer보다 FLOPs가 약간 증가
- DAT를 BackBone으로 하여 RetinaNet에서 Object Detection 성능 확인
- ImageNet 으로 Pretrained(300Epochs)
- 최종 결과로 Tiny, Scale, Base에서 다른 PVT, Swin보다 좋은 결과를 얻음
- 같은 Scale의 Swin Transformer보다 FLOPs약간 증가
- DAT를 이용하면 Small, Large Object Detection 성능이 향상
- DAT를 BackBone으로 하여 Semantic Segmentation 성능 확인
- SemanticFPN, UperNet
- PVT, Swin Transformer 보다 약간 증가한 Flops에서 mIoU
- DAT와 Swin Transformer을 BackBone으로 하는 Mask, Cascade Mask R-CNN 결과 비교
- 모든 경우에서 개선된 결과를 얻었고, BackBone으로 가치가 큼
Ablation Study
Visualization
- COCO Validation Set에서 Attention Score가 높은 Key Feature을 시각화( Score가 높을수록 원이 커지게됨
- Object Detection에서 중요한 부분과 경계에 대해 Score가 높게 나옴(얼굴, 동물, 손)
- 빨간색 Query Point에 대해 Attention Score가 높은 Key를 시각화
- Swin-Transformer의 경우 고정된 Key Point가 나오는 반면, DAT는 Object의 주요 위치로 이동