티스토리 뷰
[논문 리뷰] UniFormer: Unifying Convolution andSelf-attention for Visual Recognition
최멋 2022. 9. 5. 17:42※ 이 리뷰는 단순 논문 번역이 아닌 저의 주관적인 해석을 통한 리뷰임을 밝힙니다. 따라서 논문에 명시되지 않은 내용에 대한 주관적 해석이 들어가 있을 수 있습니다.
Deep learning을 통한 Vision task 처리 방법으로 CNN과 ViT라는 두가지의 dominant framework가 존재합니다. 각각의 방법에 장단점이 존재하기 때문에 서로를 보완하고자 두 framework를 혼용하는 방법들이 많이 제시되었습니다. 이 논문 역시 CNN과 self attention mechanism의 결합을 통해 몇몇 문제들을 해결하고자 합니다.
Abstract / Introduction
-CNN의 문제점
작은 receptive field를 갖기 때문에 local redundancy 문제는 해결할 수 있으나, 그 작은 receptive field로부터 생기는 long range dependency 관련 문제가 발생함
-ViT의 문제점
Long range dependency 문제를 해결하지만 local redundancy가 커지는 문제가 있음
여기서 local redundancy란 무엇을 말할까요?
제가 해석하기로는, 주요 feature를 제외한 배경 등의 기타 noise를 의미하는 것 같습니다. 즉, 특정 task를 수행할 때 고려할 필요 없는 부분이 포함되어 모델이 동작하는 것이죠. 따라서 local redundancy가 작으면 image에서 주요한 부분의 feature만 사용할 수 있다는 겁니다.
CNN의 경우 대개 3x3 kernel을 이용하고, 이 kernel은 중요 부분의 feature를 잘 capture할 수 있도록 update 됩니다. 이렇게 update된 kernel은 image 전체에 동일하게 적용되며 중요한 부분을 scan할 때 더 큰 값을 출력하게 됩니다. 따라서 자연스럽게 noise의 영향을 줄일 수 있고 local redundancy가 작다고 볼 수 있습니다.
ViT의 경우 self attention mechanism을 기반으로 동작하는데요. 우선 patch 단위로 image를 분할하는 과정에서 각 patch들의 size가 16x16 (vanilla ViT 기준)으로 CNN의 kernel size보다 훨씬 크기 때문에 noise가 포함될 확률이 커집니다. 또한 self attention 과정을 생각해보면 noise patch(주요한 정보가 존재하지 않는 patch)들이 모두 동일하게 참여하기 때문에 이 과정에서 또 redundancy 문제가 생긴다고 볼 수 있습니다. 따라서 local redundancy가 상대적으로 크다고 볼 수 있겠네요.
이를 visualize해서 살펴보면 다음과 같습니다.

그림 1은 ViT기반 model인 DeiT의 layer 3에서 뽑은 output feature와 attention을 visualize한 결과입니다. Output feature 자체는 object에 잘 집중하고 있음을 볼 수 있지만, attention map을 보면 초록색 box로 표기된 anchor query가 집중하는 곳은 주변 patch에 국한되어 있음을 확인할 수 있습니다. 여러 anchor patch가 수행한 self attention 결과가 종합되어서 좋은 feature를 뽑아내긴 했으나, 각각의 anchor들이 주로 집중하는 지역은 local patches에 집중되어있습니다. 따라서 인접한 local patch에 대한 집중도가 높은 shallow layer에서의 global self attention은 효율이 떨어진다고 볼 수 있습니다. (local redundancy 큼)
따라서 이 논문에서는, CNN과 ViT를 혼합해 앞서 말씀드린 long range dependency와 local redundancy를 모두 해결할 수 있는 방법을 제시합니다.
Method
논문에서는 video input을 다루기 때문에 frame을 나타내는 차원이 존재하지만, 이 포스트에서는 image 단위의 input을 다루며 설명하도록 하겠습니다.

Uniformer는 transformer의 문제점인 computational redundancy (local redundancy)를 해결하면서 long range dependancy 해결 능력은 유지 혹은 향상 시키는 방법을 제시합니다. 이 방법에서는 3개의 key module로써 그림 2와 같이 Dynamic Positional Embedding(DPE), Multi-Head Relation Aggregator(MHRA), Feed-Forward Network(FFN)을 순서대로 사용합니다. 다음 모듈들에 대해서 각각 자세히 알아보겠습니다. (FFN 제외)
-Dynamic Positional Embedding (DPE)
말 그대로 dynamic하게 input adaptive한 positional embedding을 생성하는 method입니다. 기존 ViT에서는 pretrain시 사용된 data와 크기가 다를 경우 position 정보를 간접적으로 반영할 수 밖에 없었는데요. 이를 해결하고 recognition performance도 향상시키기 위해서 input adaptive한 DPE를 제안합니다. $$DPE(X_{in}) = DWConv(X_{in})$$ 위 식처럼 depthwise convoution을 통해서 input adaptive한 positional encoding을 수행합니다. 이 내용은 사실 추후에 리뷰 예정인 "Do We Really Need Explicit Position Encodings for Vision Transformers? " 논문에서 가져온 idea이기 때문에 해당 논문을 읽어보시면 좋을 것 같습니다.
-Multi Head Relation Aggregator(MHRA)
Multi-head self attention(MSA) mechanism은 query와 key의 유사도를 기반으로 동작하는데요. 이 유사도를 의미하는 attention matrix A를 생성하는 과정에서 patch 개수에 quadratic한 complexity를 갖습니다. 이런 높은 복잡도를 가짐에도, 그림 1에서 확인했듯이 shallow layer에서는 주변 patch들에만 주로 집중함을 확인했습니다. 이를 보완하기 위해서 shallow layer에서는 Local MHRA를 제안하는데요.

바로 Attention matrix를 위 식과 같이 변형하는 방법을 사용합니다. ($i-j$)는 anchor patch와 other patch의 relative position을 의미하고, $\Omega$은 논문에 small neighborhood라고 되어있습니다. 어디서 많이 본 것 같은 모양인데요. 바로 Relative Positional Encoding 방법과 동일하죠. $a_n$이 learnable paramter, 즉 realtive position matrix가 되겠구요. i와 j patch(token)의 상대적 위치에 의해 attention matrix가 결정됩니다.
그렇다면 이렇게 결정한 논리적 근거가 무엇일까요?
논문에서는 shallow layer에서는 어짜피 인접한 token간에 별 차이가 없고, 그렇기에 query와 key의 유사도 정보가 사실은 계산해봤자 별 의미가 없다는거죠. 그래서 상대적인 위치 정보를 attention matrix로 사용해도 충분하다는 겁니다. 이를 통해 query-key 내적 연산을 생략할 수 있어 연산 이득이 존재하구요. 앞서 문제로 제기했던 '주변 token에만 집중하는데도 큰 연산량을 가진다' 라는 문제점을 receptive field의 증가로 해결하기보다는, 다른 정보를 이용해 연산량 문제 자체를 해결해버린거죠.
Results

성능표를 확인해보면, UniFormer가 여타 SOTA model보다 좋은 성능을 보임을 확인할 수 있네요. 효율적인 모델 동작에 초점을 맞춘 논문이기 때문에 비교는 비슷한 parameter 수를 가진 상태에서 진행했습니다. 십자가 표시가 붙어있는 것은 patch sliding을 overlapping하며 진행한 것이구요. 224 size로 train하고 test를 384 size로 했음에도 좋은 성능을 내는것을 보면 capacity가 아주 좋은 model로 생각되어집니다. Video가 아닌 Image에 대해서 다룬 결과만 확인하려니 이정도만 분석되어있네요.
이상
Li, Kunchang, et al. "Uniformer: Unifying convolution and self-attention for visual recognition." arXiv preprint arXiv:2201.09450 (2022).
리뷰였습니다.
'Vision Transformer > 기타' 카테고리의 다른 글
- Total
- Today
- Yesterday
- AdaViT
- Transformer Meets Part Model #ViT #Vision transformer #컴퓨터비전 #논문 리뷰 #딥러닝
- Uniformer #ViT #Vision transformer #비전트랜스포머 #컴퓨터비전 #딥러닝 #transformer #논문리뷰
- Beyond Self-attention
- Vision transformer #컴퓨터비전 #딥러닝 #ViT #transformer #T2T #tokens to token ViT #논문리뷰
- ReID #컴퓨터비전 #딥러닝 #머신러닝 #Person Re-identification #Re-identification
- CPE #컴퓨터비전 #딥러닝 #머신러닝 #Transformer #Vision transformer #ViT #Positional encoding
- ReID #ViT #Transformer #Person re-identification #Human parsing #SSl #Self supervised learning
- Vision transformer #ViT #transformer #computer vision #deep learning #컴퓨터비전 #딥러닝 #트랜스포머 #비전트랜스포머
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
