안녕하세요. 지난 포스팅의 [IC2D] EfficientFormer: Vision Transformer at MobileNet Speed (NIPS2022)에서는 기존의 ViT 계열 모델들이 on device 상에서의 speed bottleneck에 대한 분석을 하지 않았다는 점에 근거하여 저자들이 관찰한 결과를 기반으로 효율적인 EfficientFormer를 제안하였습니다. 오늘도 새로운 ViT 계열 모델로서 지금까지 보았던 방법론과는 조금 다른 방식으로 설계한 Mobile-Former를 소개하도록 하겠습니다.
Background
최근 CNN에 이어 Transformer는 self-attention을 통해 global dependency 또는 long-range dependency를 추출할 수 있다는 장점을 통해 엄청난 인기를 가지게 되었습니다. 특히, 영상 분류에서의 ViT (ICLR2021), Swin Transformer (ICCV2021), CSWin Transformer (CVPR2022) 그리고 객체 탐지에서의 DETR (ECCV2020), 의미론적 영상 분할에서의 SegFormer (NIPS2021), 마지막으로 비디오 처리 분야에서의 TimeSFormer (ICML2021) 등이 있었죠. 하지만 이러한 모델들은 너무나도 큰 대규모 모델 크기과 높은 사전학습 비용으로 인해 mobile이나 IoT 계열과 같이 컴퓨팅 리소스가 제한되는 경우에 활용하기 어렵다는 문제점이 있었죠.
이러한 문제를 해결하기 위해 CNN과 유사하게 효율적인 모델들이 나오기 시작하였습니다. 대표적으로 TinyViT, MobileViT, NASViT, EfficientFormer 등이 있었죠. TinyViT는 knowledge distillation, MobileViT는 새로운 DDP 학습 방법과 함께 convolution을 함께 결합, NASViT는 LeViT를 기반으로 하는 search space를 이용해서 NAS를 통해 efficient한 모델을 설계, 그리고 EfficientFormer에서는 on device에서 speed bottleneck이 발생하는 원인을 제거하여 속도를 향상시켰습니다. 하지만, 본 논문에서의 핵심적인 질문은 local processing과 global interaction을 동시에 효과적으로 달성할 수 있는 효율적인 모델을 만들고자 하는 것 입니다.

그림 1은 Mobile-Former의 전체적인 스킴을 보여주고 있습니다. 기존의 CNN-Transformer Hybrid 구조에서는 series한 방식으로 모델을 설계하였지만 Mobile-Former에서는 처음으로 서로 이질적인 구조들을 parallel하게 학습하는 방식을 도입하였습니다. 즉, 여기서 말하는 Mobile = MobileNet 그리고 Former = Transformer를 의미하며 각각 local feature과 global feature를 뽑는 역할을 수행하게 됩니다. 하지만, 단일 path로만 구성되어 있으면 local feature과 global feature를 서로 interaction을 수행할 수 없기 때문에 두 path를 연결할 수 있는 interaction 구조가 존재합니다. 이와 같은 구조를 기반으로 CNN 계열을 대표적은 light-weight 모델인 MobileNetV3와 비교했을 때 60M만큼 FLOPs가 감소하였지만 Top-1 accuracy는 약 1.3% 정도로 크게 증가한 것을 볼 수 있습니다.

Mobile-Former
1) Overall Architecture

Mobile-Former의 전체적인 스킴은 그림 1에서도 볼 수 있었습니다. 그림 3은 이를 좀 더 자세하게 표현한 그림입니다. 일단, 전체적으로 총 4개의 핵심 모듈로 구성되어 있는 것을 관찰할 수 있습니다.
2) Parallel Structure
Mobile-Former의 가장 중요한 특징은 기존의 LeViT와 같이 Series Structure가 아닌 Parallel Structure로 모델을 설계했다는 점 입니다. 각각 MobileNet과 Transformer를 병렬화하여 구성한 것을 볼 수 있죠. 여기서 Mobile Stream에서는 입력 영상 $\mathbf{X} \in \mathbb{R}^{H \times W \times 3}$을 받아 MobileNet의 핵심 블록은 inverted bottleneck block에 넘겨주게 됩니다. 그리고 Former Stream에서는 입력 영상이 아닌 learnable token $\mathbf{Z} \in \mathbb{R}^{M \times d}$가 입력됩니다. 여기서 $M$과 $d$는 각각 토큰의 개수와 차원의 크기를 의미합니다. 이때, 기존의 ViT와는 다르게 굉장히 적인 양의 토큰을 사용하여 학습을 진행하기 때문에 해당 learnable token에 입력 영상 $\mathbf{X}$의 global prior를 효율적으로 추출할 수 있게 됩니다.
3) Low Cost Two-way Bridge
Mobile-Former의 두번째 특징은 Mobile & Former 간의 bidirectional communication이 존재하여 local feature와 global feature가 서로 fusion 된다는 점입니다. 이 과정에서 연산량의 증가를 우려하여 Light-weight cross attention module을 설계하였으며 이는 기존의 self-attention을 수행할 때 3개의 projection matrix $\mathbf{W}^{Q}, \mathbf{W}^{K}, \mathbf{W}^{V}$를 두 stream에서 동시에 쓰는 것이 아니라 Mobile $\rightarrow$ Former에서는 $\mathbf{W}^{K}, \mathbf{W}^{V}$만 사용하고 Former $\rightarrow$ Mobile에서는 $\mathbf{W}^{Q}$만 사용하는 것입니다. 이때, 각 cross-attention 시 multi-head attention까지 고려하여 다음과 같이 쓸 수 있습니다.


첫번째 수식은 Mobile $\rightarrow$ Former에서 사용하는 cross-attention이고 두번째 수식은 Former $\rightarrow$ Mobile에서 사용하는 cross-attention입니다.
4) Mobile Block and Former Block
Mobile-Former에서는 기존의 MobileNet에서 사용하는 inverted bottleneck 구조에서 ReLU가 아닌 Dynamic ReLU라는 새로운 activation function을 도입하여 학습을 진행하였습니다. 그리고 Former Block은 흔히 Transformer에서 사용되는 MHSA와 FFN으로 구성된 Block으로 사용되는 것을 볼 수 있습니다.
5) Model Specification

6) Model Variants

Efficient End-to-End Object Detection

또한, Mobile-Former를 이용해서 그림 4와 같이 Object Detection을 위한 구조도 설계하였습니다. 이는 DETR과 동일한 형태로 설계되었습니다.
Experiment Results
1) Image Classification

2) Object Detection


3) Ablation Study
3-1) Former + Dynamic ReLU

3-2) Token Dimension

3-3) Former Block

'Paper Review' 카테고리의 다른 글
안녕하세요. 지난 포스팅의 [IC2D] EfficientFormer: Vision Transformer at MobileNet Speed (NIPS2022)에서는 기존의 ViT 계열 모델들이 on device 상에서의 speed bottleneck에 대한 분석을 하지 않았다는 점에 근거하여 저자들이 관찰한 결과를 기반으로 효율적인 EfficientFormer를 제안하였습니다. 오늘도 새로운 ViT 계열 모델로서 지금까지 보았던 방법론과는 조금 다른 방식으로 설계한 Mobile-Former를 소개하도록 하겠습니다.
Background
최근 CNN에 이어 Transformer는 self-attention을 통해 global dependency 또는 long-range dependency를 추출할 수 있다는 장점을 통해 엄청난 인기를 가지게 되었습니다. 특히, 영상 분류에서의 ViT (ICLR2021), Swin Transformer (ICCV2021), CSWin Transformer (CVPR2022) 그리고 객체 탐지에서의 DETR (ECCV2020), 의미론적 영상 분할에서의 SegFormer (NIPS2021), 마지막으로 비디오 처리 분야에서의 TimeSFormer (ICML2021) 등이 있었죠. 하지만 이러한 모델들은 너무나도 큰 대규모 모델 크기과 높은 사전학습 비용으로 인해 mobile이나 IoT 계열과 같이 컴퓨팅 리소스가 제한되는 경우에 활용하기 어렵다는 문제점이 있었죠.
이러한 문제를 해결하기 위해 CNN과 유사하게 효율적인 모델들이 나오기 시작하였습니다. 대표적으로 TinyViT, MobileViT, NASViT, EfficientFormer 등이 있었죠. TinyViT는 knowledge distillation, MobileViT는 새로운 DDP 학습 방법과 함께 convolution을 함께 결합, NASViT는 LeViT를 기반으로 하는 search space를 이용해서 NAS를 통해 efficient한 모델을 설계, 그리고 EfficientFormer에서는 on device에서 speed bottleneck이 발생하는 원인을 제거하여 속도를 향상시켰습니다. 하지만, 본 논문에서의 핵심적인 질문은 local processing과 global interaction을 동시에 효과적으로 달성할 수 있는 효율적인 모델을 만들고자 하는 것 입니다.

그림 1은 Mobile-Former의 전체적인 스킴을 보여주고 있습니다. 기존의 CNN-Transformer Hybrid 구조에서는 series한 방식으로 모델을 설계하였지만 Mobile-Former에서는 처음으로 서로 이질적인 구조들을 parallel하게 학습하는 방식을 도입하였습니다. 즉, 여기서 말하는 Mobile = MobileNet 그리고 Former = Transformer를 의미하며 각각 local feature과 global feature를 뽑는 역할을 수행하게 됩니다. 하지만, 단일 path로만 구성되어 있으면 local feature과 global feature를 서로 interaction을 수행할 수 없기 때문에 두 path를 연결할 수 있는 interaction 구조가 존재합니다. 이와 같은 구조를 기반으로 CNN 계열을 대표적은 light-weight 모델인 MobileNetV3와 비교했을 때 60M만큼 FLOPs가 감소하였지만 Top-1 accuracy는 약 1.3% 정도로 크게 증가한 것을 볼 수 있습니다.

Mobile-Former
1) Overall Architecture

Mobile-Former의 전체적인 스킴은 그림 1에서도 볼 수 있었습니다. 그림 3은 이를 좀 더 자세하게 표현한 그림입니다. 일단, 전체적으로 총 4개의 핵심 모듈로 구성되어 있는 것을 관찰할 수 있습니다.
2) Parallel Structure
Mobile-Former의 가장 중요한 특징은 기존의 LeViT와 같이 Series Structure가 아닌 Parallel Structure로 모델을 설계했다는 점 입니다. 각각 MobileNet과 Transformer를 병렬화하여 구성한 것을 볼 수 있죠. 여기서 Mobile Stream에서는 입력 영상 X∈RH×W×3을 받아 MobileNet의 핵심 블록은 inverted bottleneck block에 넘겨주게 됩니다. 그리고 Former Stream에서는 입력 영상이 아닌 learnable token Z∈RM×d가 입력됩니다. 여기서 M과 d는 각각 토큰의 개수와 차원의 크기를 의미합니다. 이때, 기존의 ViT와는 다르게 굉장히 적인 양의 토큰을 사용하여 학습을 진행하기 때문에 해당 learnable token에 입력 영상 X의 global prior를 효율적으로 추출할 수 있게 됩니다.
3) Low Cost Two-way Bridge
Mobile-Former의 두번째 특징은 Mobile & Former 간의 bidirectional communication이 존재하여 local feature와 global feature가 서로 fusion 된다는 점입니다. 이 과정에서 연산량의 증가를 우려하여 Light-weight cross attention module을 설계하였으며 이는 기존의 self-attention을 수행할 때 3개의 projection matrix WQ,WK,WV를 두 stream에서 동시에 쓰는 것이 아니라 Mobile → Former에서는 WK,WV만 사용하고 Former → Mobile에서는 WQ만 사용하는 것입니다. 이때, 각 cross-attention 시 multi-head attention까지 고려하여 다음과 같이 쓸 수 있습니다.


첫번째 수식은 Mobile → Former에서 사용하는 cross-attention이고 두번째 수식은 Former → Mobile에서 사용하는 cross-attention입니다.
4) Mobile Block and Former Block
Mobile-Former에서는 기존의 MobileNet에서 사용하는 inverted bottleneck 구조에서 ReLU가 아닌 Dynamic ReLU라는 새로운 activation function을 도입하여 학습을 진행하였습니다. 그리고 Former Block은 흔히 Transformer에서 사용되는 MHSA와 FFN으로 구성된 Block으로 사용되는 것을 볼 수 있습니다.
5) Model Specification

6) Model Variants

Efficient End-to-End Object Detection

또한, Mobile-Former를 이용해서 그림 4와 같이 Object Detection을 위한 구조도 설계하였습니다. 이는 DETR과 동일한 형태로 설계되었습니다.
Experiment Results
1) Image Classification

2) Object Detection


3) Ablation Study
3-1) Former + Dynamic ReLU

3-2) Token Dimension

3-3) Former Block
