Motivation
비전 태스크에서 셀프 어텐션의 계산이, 즉 공간적인 위치에서 Q, K가 서로 independent하게 계산이 되어지는 것이 단점 → context가 필요
Related Works
- CNN의 receptive field를 넓히는 것 → context를 잘 보긴 하지만, long range dependecy를 보지 못함
- ViT, long range dependency를 보기는 하지만, independent한 Q, K의 interaction을 계산
Contribution
기존의 conventional self-attention은 서로 다른 위치간의 interaction을 잘 계산. 그러나 모든 pairwise Q-K relation은 independent함 → 풍부한 context를 보지 못함, 따라서 Conetxt Transformer 구조를 제안.
- K=X, Q=X, V=XWv로 K, Q, V를 계산
- K를 1x1로 임베딩하는 대신에, kxk group conv로 임베딩 → context 정보를 추출 K1= Conv(K)
- K1와 Q를 concat 한 후, 1x1 컨볼루션을 두 번 수행 (활성함수는 마지막에만 씌움), A = [K1, Q]WW
- 마지막으로 Value stream을 통해 V와 계산한 어텐션 맵 A를 가지고, 어텐션 스코어 K2 = V*A 계산
이전의 비전 backbone과의 연결성
- kxk를 하고 1x1를 하는 것은 depth-wise separable convolution과 비슷한 동작을 함
- 2개의 1x1 컨볼루션 구성은 Dynamic Region-aware convolutioution에 소개된 동작
- Bottleneck Transformer는 3x3 컨불루션으로 트랜스포머 스타일 모듈로 적용하여, self-attention 표현력을 높이는 방법
Experiemnets
- 이미지넷 인식 태스크에서 여러가지 주요한 비전 백본 모델과 비교 → 성능이 우수함을 보임 (특히 비교의 효율성을 위해 depth를 같게 설정)
- 이미지넷 인식 태스크의 TOP-1, TOP-5 지표
- 여러가지 비전 백본 모델들을 두고 디텍션 태스크와 세그멘테이션 태스크에 대한 결과 수록
Conclusion
ResNet50과 비교하여, CoT의 끝 레이어부터 CoT로 교체하면, 계속 param이 적어지고 acc는 상승 → 더 다양한 모델에서 실험을 했다면 어떨까